Boksmodellen: CSS kant

Elementets kant (border) er en eller flere linjer omkring elementets indhold og indrykning.

CSS border egenskab tillader dig at specificere elementets kantstil, bredde og farve.

CSS kant

I HTML bruger vi tabeller til at skabe kanter omkring tekst, men ved hjælp af CSS kantegenskaber kan vi skabe fremragende kanter og anvende dem på ethvert element.

Elementets kant (border) er inden for elementets kant (border). Elementets kant er en eller flere linjer omkring elementets indhold og indrykning.

Hver kant har tre aspekter: bredde, stil og farve. I de følgende afsnit vil vi give dig en detaljeret forklaring af disse tre aspekter.

Kant og baggrund

CSS-standarden pointerer på, at kant tegnes over 'elementets baggrund'. Dette er vigtigt, fordi nogle kanter er 'brudte' (f.eks. prikket kant eller tom kant), og elementets baggrund skal være synlig mellem kantens synlige dele.

CSS2 pointerer på, at baggrunden kun strækker sig til indrykning, ikke til kant. Senere blev CSS2.1 rettet: elementets baggrund er indhold, indrykning og kantområdet. De fleste browsere følger CSS2.1 definitionen, men nogle ældre browsere kan have forskellig adfærd.

Kantstil

Stil er den vigtigste side af kant, ikke fordi stil kontrollerer kantens visning (selvfølgelig, stil kontrollerer faktisk kantens visning), men fordi uden stil vil der ikke være nogen kant.

CSS border-style egenskabDefineret 10 forskellige ikke-inherit stilarter, herunder none.

For eksempel kan du definere en kant for et billede som outset, så det ser ud som en 'hævet knap':

a:link img {border-style: outset;}

Definer flere stilarter

Du kan definere flere stilarter for en kant, for eksempel:

p.aside {border-style: solid dotted dashed double;}

Reglen ovenfor definerer fire kantstilarter for afsnit med klassen aside: en solid øverste kant, en prikket højre kant, en tom under kant og en dobbelt venstre kant.

Vi har set her, at værdien følger rækkefølgen top-right-bottom-left, og vi har også set denne rækkefølge, når vi diskuterer at sætte flere værdier for forskellige indrykning.

Definer en kantstyle

Hvis du ønsker at sætte skrifttypen på en side af elementboksen, i stedet for at sætte skrifttypen på alle 4 kanter, kan du bruge de følgende en-sidede kantstilarter:

Derfor er begge metoder ekvivalente:

p {border-style: solid solid solid none;}
p {border-style: solid; border-left-style: none;}

Bemærk:Hvis du skal bruge den anden metode, skal du placere den enkle egenskab efter den korte egenskab. Fordi hvis du placerer den enkle egenskab før border-style, vil værdien af den korte egenskab overskrive den enkle værdi none.

Kantens bredde

Du kan bruge border-width egenskabenSpecificer kantens bredde.

Der er to måder at specificere kantens bredde på: du kan specificere en længdeværdi, f.eks. 2px eller 0.1em; eller bruge et af de 3 nøgleord, der er thin, medium (standardværdi) og thick.

Bemærk:CSS definerer ikke de præcise bredder for de 3 nøgleord, så en brugeragent kan sætte thin, medium (standardværdi) og thick til henholdsvis 5px, 3px og 2px, mens en anden brugeragent sætter dem til henholdsvis 3px, 2px og 1px.

Så kan vi indstille kantens bredde på denne måde:

p {border-style: solid; border-width: 5px;}

eller:

p {border-style: solid; border-width: thick;}

Definer ens bredde

Du kan indstille kantene for elementet i rækkefølgen top-right-bottom-left:

p {border-style: solid; border-width: 15px 5px 15px 5px;}

De ovenstående eksempler kan også skrives som (dette skrivemåde kaldesVærdi kopiering):

p {border-style: solid; border-width: 15px 5px;}

Du kan også bruge følgende egenskaber til at sætte kantens bredde for hver kant separat:

Derfor er nedenstående regler ekvivalente med de ovenstående eksempler:

p {
  border-style: solid;
  border-top-width: 15px;
  border-right-width: 5px;
  border-bottom-width: 15px;
  border-left-width: 5px;
  }

Ingen kantlinje

I de tidligere eksempler har du set, at for at vise en kantlinje, skal du sætte kantstilen, f.eks. solid eller outset.

Så hvad sker der, hvis du sætter border-style til none?

p {border-style: none; border-width: 50px;}

Selvom kantbredden er 50px, er kantstilen sat til none. I dette tilfælde forsvinder ikke kun kantstilen, men også bredden bliver 0. Kanterne forsvinder, hvorfor?

Dette skyldes, at hvis kantstilen er none, hvilket betyder, at kanterne ikke eksisterer, har kanterne ingen bredde, og dermed sættes kantbredden automatisk til 0, uanset hvad du oprindeligt definerede.

Det er meget vigtigt at huske dette. Faktisk er det at glemme at deklarere en kantstil en almindelig fejl. Ifølge følgende regler vil alle h1-elementer ikke have nogen kanter, endnu mindre 20 pixels bredde:

h1 {border-width: 20px;}

Da standardværdien for border-style er none, betyder det, at hvis der ikke er deklareret en stil, er det lig med border-style: none.Derfor, hvis du ønsker, at kanterne skal vises, skal du deklarere en kantstil.

Kantfarve

At sætte kantfarve er meget simpelt. CSS bruger en enkel border-color-egenskaben,den kan modtage op til 4 farveværdier ad gangen.

Man kan bruge enhver type farveværdi, for eksempel kan det være et navngivet farve, en hexadecimal eller en RGB-værdi:

p {
  border-style: solid;
  border-color: blue rgb(25%,35%,45%) #909090 red;
  }

Hvis farveværdien er mindre end 4, vil værdikopiering have virkning. For eksempel er nedenstående regelklause, der specificerer, at afsnittets øverste og nedre kanter er blå, og venstre og højre kanter er røde:

p {
  border-style: solid;
  border-color: blue red;
  }

Bemærk:Standardkantfarven er elementets egen forgrundsfarve. Hvis der ikke er deklareret en kantfarve, vil den være den samme som elementets tekstfarve. På den anden side, hvis elementet ikke har nogen tekst, antages det, at det er en tabel, der kun indeholder billeder, så tabellens kantfarve er dens forældres tekstfarve (da color kan arves). Denne forælder er sandsynligvis body, div eller en anden tabel.

Definer enkelt kantfarve

Der er også enkeltkanthjælpere til farve. Deres princip er det samme som enkeltstilar og breddeegenskaber:

For at specificere en solid sort kant for h1-elementet og en solid rød kant til højre, kan du specificere det på denne måde:

h1 {
  border-style: solid;
  border-color: black;
  border-right-color: red;
  }

Gennemsigtig kant

Vi har netop diskuteret, at hvis kanterne ikke har en stil, har de ingen bredde. Men i nogle tilfælde kan du måske ønske at oprette en usynlig kant.

CSS2 introducerede farveværdien transparent for kanter. Denne værdi bruges til at oprette usynlige kanter med bredde. Se nedenstående eksempel:

<a href="#">AAA</a>
<a href="#">BBB</a>
<a href="#">CCC</a>

Vi har defineret følgende stil for de ovennævnte links:

a:link, a:visited {
  border-style: solid;
  border-width: 5px;
  border-color: transparent;
  }
a:hover {border-color: gray;}

Prøv det selv

På en vis måde fungerer transparent som ekstra indrykning af kantene; derudover har det også fordele, at det kan gøres synligt, når det er nødvendigt. Denne transparente kant svarer til indrykning, fordi elementets baggrund strækker sig til kantområdet (hvis der er en synlig baggrund).

Vigtigt:Før IE7, tilbydede IE/WIN ikke understøttelse af transparent. I tidligere versioner ville IE indstille kantfarven baseret på elementets farveværdi.

CSS kanteksempel:

Alle kantegenskaber i én deklaration
Dette eksempel viser, hvordan man bruger forkortelsesegenskaber til at sætte alle fire kantegenskaber i én deklaration.
Indstil stilen for de fire kanter
Dette eksempel viser, hvordan man indstiller stilen for de fire kanter.
Indstil forskellige kanter på hver kant
Dette eksempel viser, hvordan man indstiller forskellige kanter på elementets kanter.
Alle kantbredder i én deklaration
Dette eksempel viser, hvordan man bruger forkortelsesegenskaber til at sætte alle kantbredder i én deklaration.
Indstil farven på de fire kanter
Dette eksempel viser, hvordan man indstiller farven på de fire kanter. Man kan indstille én til fire farver.
Alle nederste kantegenskaber i én deklaration
Dette eksempel viser, hvordan man bruger forkortelsesegenskaber til at sætte alle nederste kantegenskaber i én deklaration.
Indstil farven på den nederste kant
Dette eksempel viser, hvordan man indstiller farven på den nederste kant.
Indstil stilen for den nederste kant
Dette eksempel viser, hvordan man indstiller stilen for den nederste kant.
Indstil bredden af den nederste kant
Dette eksempel viser, hvordan man indstiller bredden af den nederste kant.
Alle venstre kantegenskaber i én deklaration
Alle venstre kantegenskaber i én deklaration
Indstil farven på den venstre kant
Dette eksempel viser, hvordan man indstiller farven på den venstre kant.
Indstil stilen for den venstre kant
Dette eksempel viser, hvordan man indstiller stilen for den venstre kant.
Indstil bredden af den venstre kant
Dette eksempel viser, hvordan man indstiller bredden af den venstre kant.
Alle højre kantegenskaber i én deklaration
Dette eksempel viser en forkortelsesegenskab, der bruges til at sætte alle højre kantegenskaber i én deklaration.
Indstil farven på den højre kant
Dette eksempel viser, hvordan man indstiller farven på den højre kant.
Indstil stilen for den højre kant
Dette eksempel viser, hvordan man indstiller stilen for den højre kant.
Indstil bredden af den højre kant
Dette eksempel viser, hvordan man indstiller bredden af den højre kant.
Alle øverste kantegenskaber i én deklaration
Dette eksempel viser, hvordan man bruger forkortelsesegenskaber til at sætte alle øverste kantegenskaber i én deklaration.
Indstil farven på øverste kant
Dette eksempel viser, hvordan du indstiller farven på øverste kant.
Indstil stilen på øverste kant
Dette eksempel viser, hvordan du indstiller stilen på øverste kant.
Indstil bredden af øverste kant
Dette eksempel viser, hvordan du indstiller bredden af øverste kant.

CSS-kantegenskaber

Egenskab Beskrivelse
border Kortegenskab, brugt til at sætte egenskaberne for de fire kanter i én deklaration.
border-style Brugt til at sætte stilen på elementets alle kanter, eller at sætte stilen for hver af de fire kanter.
border-width Kortegenskab, brugt til at sætte bredden af elementets alle kanter, eller at sætte bredden for hver af de fire kanter.
border-color Kortegenskab, brugt til at sætte farven på det synlige af elementets alle kanter, eller at sætte farve for hver af de fire kanter.
border-bottom Kortegenskab, brugt til at sætte alle egenskaber for nederste kant i én deklaration.
border-bottom-color Indstil farven på elementets nederste kant.
border-bottom-style Indstil stilen på elementets nederste kant.
border-bottom-width Indstil bredden af elementets nederste kant.
border-left Kortegenskab, brugt til at sætte alle egenskaber for venstre kant i én deklaration.
border-left-color Indstil farven på elementets venstre kant.
border-left-style Indstil stilen på elementets venstre kant.
border-left-width Indstil bredden af elementets venstre kant.
border-right Kortegenskab, brugt til at sætte alle egenskaber for højre kant i én deklaration.
border-right-color Indstil farven på elementets højre kant.
border-right-style Indstil stilen på elementets højre kant.
border-right-width Indstil bredden af elementets højre kant.
border-top Kortegenskab, brugt til at sætte alle egenskaber for øverste kant i én deklaration.
border-top-color Indstil farven på elementets øverste kant.
border-top-style Indstil stilen på elementets øverste kant.
border-top-width Indstil bredden af elementets øverste kant.