CSS før og CSS etter - Hvordan bruke innholdselementet
Den content
egenskap i CSS definerer innholdet av et element. Du har kanskje hørt at denne egenskapen bare gjelder for ::before
og ::after
pseudo-elementene. I denne artikkelen vil vi utforske ulike brukssaker for content
eiendommen, inkludert utenfor pseudoelementer.
Forutsetning
Siden de fleste brukssakene for content
eiendommen involverer pseudo-elementer, vil jeg foreslå at du blir kjent med hvordan ::before
og ::after
pseudo-elementene fungerer. Her er en flott artikkel for å få deg opp i fart:
- CSS Pseudo-Elements - Før og etter velgere forklart
Aksepterte verdier
La oss først se på alle de aksepterte verdiene til content
eiendommen.
normal
: Dette er standardverdien. Regner mednone
når det brukes med pseudoelementer.none
: Et pseudo-element blir ikke generert.: Angir innholdet til den angitte strengen. Denne strengen kan inneholde Unicode escape-sekvenser. For eksempel, rettighets symbol:
\\000A9
.: Angir innholdet til et bilde eller en gradering ved hjelp av
url()
ellerlinear-gradient()
.open-quote
|close-quote
: Angir innholdet til riktig tilbudstegn som det refereres til fraquotes
eiendommen.no-open-quote
|no-close-quote
: Fjerner et sitat fra det valgte elementet, men fremdeles øker eller dekker nestingsnivået det er referert til fraquotes
eiendommen.attr(*attribute*)
: Angir innholdet som strengverdien for de valgte elementene valgte attributtet.counter()
: Angir innholdet som verdien av acounter
, vanligvis et tall.
String
Et av de mest grunnleggende eksemplene vil være bruken av å legge til strenginnhold før eller etter et element. I dette eksemplet legger vi til et lenkesymbol før en lenke og legger til URL-en for lenken etter den.
a::before { content: "\\1F517 "; } a::after { content: " (" attr(href) ")"; }
Legg merke til mellomrommet etter Unicode-tegnet i ::before
pseudo-elementet og før den første parentesen i ::after
pseudo-elementet. Dette vil skape rom mellom disse og foreldreelementet.
Alternativt kan du legge til padding
eller margin
til pseudoelementene for å legge til separasjon.
Grunnleggende sitater
Med content
eiendommen kan du legge til anførselstegn før og / eller etter elementer. Nå, i HTML, har vi taggen. Dette vil også legge til sitater rundt innholdet. Imidlertid, med
content
eiendommen, kan vi ha mer kontroll over implementeringen.
Her er det mest grunnleggende eksemplet på å legge til tilbud:
Du kan også oppnå dette ved å bruke HTML-koden . Men kanskje vi ønsker å utforme sitatet annerledes. Så la oss bare legge til åpningstilbudet og ikke slutttilbudet. Og la oss også style åpningstilbudet.
p { position: relative; font-size: 3rem; margin: 4rem; } p::before { content: open-quote; position: absolute; left: -3.5rem; top: -2rem; font-size: 8rem; color: rgba(0, 0, 0, 0.5) }
Resultatet:

Avanserte tilbud
Vi kan også spesifisere hvor vi ikke vil ha tilbud. For eksempel kan du sitere noen som siterer en annen person. Så du vil ha sitater innenfor anførselstegn, noe som kan bli forvirrende for leseren.
I CodePen nedenfor bruker vi HTML- koder, og spesifiserer deretter hvilke tagger som ikke skal vise anførselstegnene.
Ved første øyekast tror du kanskje at vi bare burde fjerne taggen der det er nødvendig. Men ved å spesifisere hvor et tilbud ikke fremdeles skal være trinn eller reduksjon, hekker nivået det er referert til fra
quotes
eiendommen.
For å forklare dette, må vi forstå quotes
eiendommen. Dette er ganske enkelt et "utvalg" av tegn som skal brukes når du siterer. Her er et eksempel:
q { quotes: '“' '”' '‘' '’' '“' '”'; }
Dette er sett med sitater. Det første settet vil bli brukt til det øverste nivået på tilbud. Det andre settet vil bli brukt til det første nestede tilbudet. Og det tredje settet vil bli brukt til det andre nestede sitatet. Og så videre, hvis det var flere sett inkludert.
Nå som vi forstår quotes
egenskapen, kan jeg forklare hvordan egenskapene no-open-quote
og no-close-quote
egenskapene fungerer.
For hvert sitatnivå kan vi tilordne forskjellige sett med tegn som skal brukes til anførselstegnene. Ved å spesifisere hvor et tilbud ikke fremdeles skal være inkrement eller reduksjon, hekker nivået det er referert til fra quotes
eiendommen.
Ta en titt på eksemplet nedenfor. Du vil se at det andre nivået på sitater blir hoppet over.
Egenskaper
Attributter kan brukes til å overføre innhold fra HTML til CSS- content
egenskapen. Vi brukte dette allerede i lenkeeksemplet der vi brukte href
attributtet til å inkludere URL-strengen som en del av innholdet vårt.
Et perfekt bruksområde for dette er en verktøytips. Du kan legge til et title
attributt til et element i HTML for å ha en enkel, innebygd verktøytips. Men for å tilpasse dette kan vi bruke et dataattributt på HTML-koden vår og deretter bruke content
egenskapen til å legge til en verktøytips.
In this example, we use the attribute data-tooltip
from our HTML element to pass the value into our tooltip. For the pointer of the tooltip, we set the content
to ""
, as content
is required to render a ::before
or ::after
pseudo-element.
Counters
The counter()
CSS function returns a string representing the current value of the named counter. In the following example we have an ordered list that we will add content using a counter
.
ol { counter-reset: exampleCounter; } li { counter-increment: exampleCounter; } li::after { content: "[" counter(exampleCounter) "] == [" counter(exampleCounter, upper-roman) "]"; }
Without getting too in-depth on the counter
function, we have to first initiate the counter on the ol
element. We can name this whatever we would like. Then we tell the counter to increment on each li
element. And lastly, we set the content
of the li::after
.
Here's the result:

Du kan bruke dette til å tilpasse innhold i hvert listeelement som trenger et tilsvarende nummer. Eller du kan bruke dette til å tilpasse selve listen. For eksempel kan du fjerne standardnummereringen og implementere et tilpasset nummereringssystem.
Bilder
Bilder og stigninger kan brukes med content
eiendommen. Dette er ganske rett frem. Her er et eksempel som bruker begge:
For tilgjengelighet er det også et alternativ å legge til alternativ tekst for bildet. Denne funksjonen støttes ikke fullt ut.
content: url(//unsplash.it/200/200) / "Alternative Text Here";
Merk: Dette støttes ikke i Firefox, IE og Safari. Gradienten fungerer heller ikke i Firefox.
Utenfor Pseudo Elements
Det er riktig! Du kan bruke content
eiendommen utenfor pseudoelementene ::before
og ::after
. Selv om bruken er begrenset og ikke fullt kompatibel i alle nettlesere.
Den mest kompatible brukssaken ville være å erstatte et element.
codeSTACKr
#replace { content: url(""); width: 100%; }
Merk: Erstatning støttes ikke i IE.
Konklusjon
De fleste ganger vil du se content: ""
funnet i ::before
og ::after
pseudo-elementene. Men content
eiendommen har mange nyttige applikasjoner.
Den beste bruken etter min mening er å bruke den til å oppdatere bulkelementer. Hvis du vil legge til et ikon før hver lenke på nettstedet ditt, ville det være mye lettere å legge det til gjennom content
eiendommen enn å legge det til hvert element i HTML-dokumentet.
Takk for at du leste!
Takk for at du leser denne artikkelen. Forhåpentligvis har det hjulpet deg til bedre å forstå hvordan content
eiendommen fungerer i CSS.
Jeg er Jesse fra Texas. Ta en titt på det andre innholdet mitt og gi meg beskjed om hvordan jeg kan hjelpe deg på reisen din til å bli webutvikler.
- Abonner på YouTube
- Si hei! Instagram | Twitter
- Registrer deg for mitt nyhetsbrev