Style tekstfelt og tekstområder
Bruk kantlinje-, utfyllings-, ring- og fokusverktøy på tekstfelt og tekstområder for å lage rene og tilgjengelige skjemafelt.
Style tekstfelt og tekstområder er en gratis leksjon i Tailwind CSS Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Tailwind CSS Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Tailwind CSS Academy inneholder totalt 4 leksjoner.
Problemet med ustilte inndatafelt
Nettlesere gjengir tekstfelt og tekstområder med sine egne standardstiler – forskjellige i hvert operativsystem og hver nettleser. I Chrome har standardfeltet en blå ring ved fokus, mens det kan se helt annerledes ut i Firefox.
Tailwind tilbakestiller skjemaelementer med basisstilene sine i preflight, slik at du får et rent utgangspunkt. Deretter bruker du egne stiler for kantlinje, innvendig marg, bakgrunn og fokus eksplisitt, og skaper en konsistent opplevelse i alle nettlesere.
<!-- Without styling: browser-dependent appearance -->
<input type="text" placeholder="Enter name" />
<!-- With Tailwind: consistent, styled input -->
<input
type="text"
placeholder="Enter name"
class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>Grunnstruktur for inndatafelt
Et godt utformet tekstfelt kombinerer verktøyklasser for størrelse, kantlinje, bakgrunn og fokus. Grunnmønsteret for standardtilstanden er w-full px-3 py-2 text-sm bg-white border border-gray-300 rounded-lg.
Legg til placeholder:text-gray-400 for å tone ned plassholderteksten og text-gray-900 for å sikre at den faktiske inndatateksten er mørk og lett å lese. Verktøyklassen w-full sørger for at feltet fyller beholderen, slik det forventes for skjemafelt.
<input
type="text"
placeholder="Full name"
class="w-full px-3 py-2 text-sm text-gray-900 bg-white
border border-gray-300 rounded-lg
placeholder:text-gray-400"
/>Fokusring og omriss
Fokustilstanden er den viktigste interaktive stilen for et inndatafelt. Brukere som navigerer med tastaturet, trenger en tydelig visuell indikator på hvilket felt som er aktivt. Bruk focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent for å erstatte nettleserens standardomriss med en Tailwind-ring.
focus:border-transparent fjerner den grå kantlinjen ved fokus, slik at den blå ringen ikke konkurrerer visuelt med den. Legg til transition-shadow duration-150 for at ringen skal vises jevnt.
<input
type="email"
placeholder="you@example.com"
class="w-full px-3 py-2 text-sm text-gray-900 bg-white
border border-gray-300 rounded-lg
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent
transition-shadow duration-150"
/>Sammenkobling av etikett og inndatafelt
Alle inndatafelt må ha en tilknyttet etikett av hensyn til tilgjengeligheten. Legg etiketten og inndatafeltet i en beholder med flex flex-col gap-1, slik at de stables ryddig. Etiketten bruker text-sm font-medium text-gray-700 og kobles til inndatafeltet med samsvarende for- og id-attributter.
Stol aldri bare på plassholdertekst som erstatning for en etikett – plassholdere forsvinner når brukeren begynner å skrive, og feltet mister da konteksten sin.
<div class="flex flex-col gap-1">
<label for="email" class="text-sm font-medium text-gray-700">
Email address
</label>
<input
id="email"
type="email"
placeholder="you@example.com"
class="w-full px-3 py-2 text-sm text-gray-900 bg-white
border border-gray-300 rounded-lg
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>
</div>Inndatafelt med ikonprefiks
Mange inndatafelt har nytte av et prefiksikon som formidler hvilken type inndata som forventes – et forstørrelsesglass for søk, en konvolutt for e-post eller en lås for passord. Bruk relative på omslaget, absolute left-3 top-1/2 -translate-y-1/2 på ikonet og pl-10 på inndatafeltet for å forskyve teksten forbi ikonet.
Denne teknikken holder ikonet og inndatafeltet pent justert uten ekstra omslagselementer som påvirker oppsettet.
<div class="relative">
<svg class="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"
fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
</svg>
<input
type="email"
placeholder="you@example.com"
class="w-full pl-10 pr-3 py-2 text-sm text-gray-900 bg-white
border border-gray-300 rounded-lg
focus:outline-none focus:ring-2 focus:ring-blue-500"
/>
</div>Inndatafelt med suffiksknapp
En suffiksknapp sitter festet til høyre kant av et inndatafelt – vanlig i passordfelt (vis/skjul-veksling) eller søkefelt (send-knapp). Bruk et flex-omslag med overflow-hidden rounded-lg border border-gray-300 flex, sett inndatafeltet til flex-1 border-0 focus:ring-0, og style knappen med en venstre kantlinje som skille.
border-0 på inndatafeltet fjerner kantlinjen, siden det ytre flex-omslaget leverer den felles kantlinjen.
<div class="flex overflow-hidden rounded-lg border border-gray-300 focus-within:ring-2 focus-within:ring-blue-500">
<input
type="text"
placeholder="Search..."
class="flex-1 px-3 py-2 text-sm text-gray-900 border-0 focus:ring-0 focus:outline-none"
/>
<button class="px-4 py-2 bg-blue-600 text-white text-sm font-semibold
border-l border-gray-300 hover:bg-blue-700 transition-colors">
Search
</button>
</div>Stilsetting av tekstområder
Tekstområder bruker de samme verktøyklassene som tekstfelt. Angi en minimumshøyde med min-h-24 eller en fast høyde med h-32, og legg til resize-none eller resize-y for å styre om brukeren kan endre størrelsen på elementet.
Bruk resize-y for å tillate endring av høyden (den mest naturlige oppførselen for tekstområder), og hindre vannrett endring som kan ødelegge oppsettet. leading-relaxed gjør det lettere å lese når brukere skriver innhold over flere linjer.
<div class="flex flex-col gap-1">
<label for="message" class="text-sm font-medium text-gray-700">Message</label>
<textarea
id="message"
rows="4"
placeholder="Write your message here..."
class="w-full px-3 py-2 text-sm text-gray-900 bg-white
border border-gray-300 rounded-lg
resize-y leading-relaxed
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"
></textarea>
</div>Stilsetting av deaktiverte inndatafelt
Deaktiverte inndatafelt bør skille seg visuelt fra aktive felt. Bruk disabled:bg-gray-50 disabled:text-gray-400 disabled:cursor-not-allowed for å gi dem et lysere, uttonet utseende. Legg også til disabled:border-gray-200 for å tone ned kantlinjen.
Ta alltid med HTML-attributtet disabled – Tailwinds disabled:-variant leser dette attributtet, slik at stilene bare brukes når attributtet er til stede.
<input
type="text"
value="Cannot edit this"
disabled
class="w-full px-3 py-2 text-sm border border-gray-300 rounded-lg
disabled:bg-gray-50 disabled:text-gray-400
disabled:cursor-not-allowed disabled:border-gray-200"
/>Stil for skrivebeskyttede inndatafelt
Et readonly-felt viser en verdi som brukerne kan lese og kopiere, men ikke endre. I motsetning til deaktiverte felt kan skrivebeskyttede felt fortsatt få fokus og navigeres med tastaturet. Style dem med read-only:bg-gray-50 read-only:text-gray-600 for å antyde på en diskret måte at de ikke kan redigeres.
Skrivebeskyttede felt brukes for beregnede verdier, bekreftelsesfelt eller referansedata som brukerne må se, men ikke bør endre.
<div class="flex flex-col gap-1">
<label for="ref" class="text-sm font-medium text-gray-700">Reference ID</label>
<input
id="ref"
type="text"
value="ORD-2026-00847"
readonly
class="w-full px-3 py-2 text-sm border border-gray-300 rounded-lg
read-only:bg-gray-50 read-only:text-gray-600
focus:outline-none focus:ring-2 focus:ring-gray-400"
/>
</div>Varianter av inndatafeltstørrelse
Skjemaer i ulike sammenhenger trenger inndatafelt i forskjellige størrelser. Definer en liten, middels og stor variant ved å endre innvendig marg og tekststørrelse. Et lite inndatafelt passer godt for innebygde filtre, mens et stort inndatafelt passer til fremtredende søkefelt.
- Liten:
px-2.5 py-1.5 text-xs - Middels:
px-3 py-2 text-sm(standard) - Stor:
px-4 py-3 text-base
<!-- Small -->
<input type="text" placeholder="Small" class="w-full px-2.5 py-1.5 text-xs border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500" />
<!-- Medium (default) -->
<input type="text" placeholder="Medium" class="w-full px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" />
<!-- Large -->
<input type="text" placeholder="Large" class="w-full px-4 py-3 text-base border border-gray-300 rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500" />Hjelpetekst med tegntelling
Tekstområder for brukergenerert innhold har ofte en tegntelling som vises under feltet. Bruk en flex-rad med flex items-center justify-between mt-1 for å plassere hjelpeteksten til venstre og telleren til høyre.
Style hjelpeteksten med text-xs text-gray-500 og telleren med tilsvarende liten, grå tekst. JavaScript oppdaterer telleren ved hver input-hendelse. Når grensen nærmer seg, bytter du tellerens farge til text-red-600 som en advarsel.
<div class="flex flex-col gap-1">
<label for="bio" class="text-sm font-medium text-gray-700">Bio</label>
<textarea
id="bio"
maxlength="160"
rows="3"
oninput="document.getElementById('count').textContent = this.value.length"
class="w-full px-3 py-2 text-sm border border-gray-300 rounded-lg resize-none
focus:outline-none focus:ring-2 focus:ring-blue-500"
></textarea>
<div class="flex items-center justify-between">
<span class="text-xs text-gray-500">Tell us about yourself</span>
<span class="text-xs text-gray-400"><span id="count">0</span>/160</span>
</div>
</div>Hurtigsjekk
Test forståelsen din av konseptene i Tailwind CSS Mastery fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte du grunnleggende stilsetting av inndatafelt med border border-gray-300 rounded-lg px-3 py-2; fokusringer som erstatter nettleserens omriss ved hjelp av focus:outline-none focus:ring-2 focus:ring-blue-500; og spesielle inndatamønstre som ikonprefikser med absolutt posisjonering, suffiksknapper med flex-oppsett og varianter for deaktiverte og skrivebeskyttede felt. Neste gang skal vi style nedtrekkslister og avmerkingsbokser.
Lær deg HTML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Style tekstfelt og tekstområder» gratis?
Ja – hele teksten i «Style tekstfelt og tekstområder» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Tailwind CSS Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Tailwind CSS Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Style tekstfelt og tekstområder»?
Bruk kantlinje-, utfyllings-, ring- og fokusverktøy på tekstfelt og tekstområder for å lage rene og tilgjengelige skjemafelt. Du øver på Tailwind CSS Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Tailwind CSS Academy?
Ingen tidligere erfaring er nødvendig. Tailwind CSS Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Style tekstfelt og tekstområder»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Tailwind CSS Academy-leksjonen?
Ja. Alle Tailwind CSS Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Style tekstfelt og tekstområder
- Valgmenyer og avkrysningsbokser
- Mønstre for skjemalayout
- Validerings- og feiltilstander