CSS-specifikationen er evigt udviklet. Processen til implementering af nye funktioner i CSS er kompliceret, men den forenklede version er, at CSS-arbejdsgruppen beslutter sig for de nye elementer, der skal tilføjes til specifikationen. Det er så op til browserne for at gennemføre disse nye elementer, og browserne vælger i hvilken rækkefølge at implementere dem, hvorfor vi nu har en mismatch af støtte til nye funktioner. Selvom dette kan være irriterende til tider, er det en meget bedre måde at gøre det på end browserne, der implementerer den fulde specifikation, som vi så i de tidlige dage af internettet. Hvis du er bekymret for dit websted, der arbejder på sin fulde kapacitet, skal du gøre støtte fra en støttende Web Hosting. service.
Alt dette lyder som for meget arbejde? Hold tingene enkle med a Website Builder. .
CSS-arbejdsgruppen består af medlemmer fra alle større browserleverandører og andre teknologiselskaber som Apple og Adobe. Apple, der for nylig har lanceret sin nye version af MacOS, ønskede en måde at opdage sin snazzy nye mørke tilstand i browseren. For at gøre dette skubbede Apple en anbefaling til specifikationen for et nyt niveau 5 medie forespørgsel.
@media (foretrækker-farveskema: lys | mørk)
{...}
Ved hjælp af denne medie forespørgsel kan vi registrere, om brugeren aktuelt bruger lys eller mørk tilstand i operativsystemet. I øjeblikket understøttes det kun af Safari Technology Preview 69 og derover, men de andre browsere bør ikke være langt bagud.
For at teste dette skal du opgraderes til Mojave 10.14 (MacOS) og har valgt mørkt udseende i systemindstillinger. Der er et par måder, vi kan bruge denne nye medieforespørgsel til at implementere forskellige temaer. Vi vil undersøge nogle få af dem nu i denne vejledning.
For at begynde, skal vi oprette nogle HTML-elementer til Style, så vi starter med at oprette en ny pen på CodePen og tilføje nogle elementer. Vi tilføjer en beholder til vores indhold, for at centrere det og nogle overskrifter og tekst. Vi sætter CSS'en til at bruge SASS for at kunne bruge nestning i CSS.
& lt; div klasse = "indholdsbeholder" & gt;
& lt; H1 & GT; overskrift en & lt; / h1 & gt;
& lt; H2 & GT; overskrift to & lt; / h2 & gt;
& lt; hr & gt;
& lt; p & gt; ... & lt; / p & gt;
& lt; p & gt; ... & lt; / p & gt;
& lt; / div & gt;
Derefter tilføjer vi nogle grundlæggende stilarter og indeholder nogle skrifttyper fra Google for at gøre vores side til at se lidt pænere ud. Vi stiller alle vores grundlæggende elementer, der anvender nye skrifttypestørrelser, farver og skrifttyper.
krop {
Font-familie: 'Merriweather', Serif;
Baggrundsfarve: #Ededed;
Farve: # 212121;
Padding: 1.618rem;
Line-Heund: 1.618;
Font-størrelse: 16px;
}
Derefter stiver vi vores beholder til at gøre indholdet til en behagelig linjelængde til læsning. Vi vil også tilføje en baggrundsfarve og drop skygge. For at centrere indholdsboksen på siden bruger vi søgeordet 'Auto' på margenegenskaberne 'venstre og højre værdier.
.Content-container {
PADDING: 1.618REM 3.236REM;
Max-bredde: 48.54rem;
Margin: 3.236rem Auto;
Baggrundsfarve: #fff;
Box-Shadow: 0 0 12px 6px RGBA (0,0,0,0,05);
Border-radius: .269666667rem;
}
De fleste websites gør brug af farve et eller andet sted, og i øjeblikket har vi kun hvide og grays, så nu, lad os vælge en fremhævning farve og skabe en stil til at anvende denne farve. Vi vil anvende farven ved hjælp af en spændingsmærke, og vil bruge det til at fremhæve noget i vores indhold.
& lt; span klasse = "tekst - alfa" & gt; lorem ipsum & lt; / span & gt;
.TEXT - ALPHA {
Farve: # C3423F;
}
Nu har vi en side med nogle grundlæggende stilarter, lad os se på måder, vi kan implementere medieforespørgslen på. Lad os inkludere det og begynde at overstyrke nogle af vores stilarter. Vi starter med kroppens stilarter.
@media (foretrækker-farveskema: mørk)
{
krop {
Baggrundsfarve: # 111;
}
}
Nu hvor vi kan se medieforespørgslen virker, og vores krops baggrundsfarve er ændret, skal vi tilsidesætte alle vores resterende stilarter.
.Content-beholder
{
Farve: Hvid;
Baggrundsfarve: # 212121;
}
.TEXT - ALPHA {
Farve: # 50a8d8;
}
Mens det, vi netop har gjort, fungerer helt godt for vores demo og kunne opretholdes på mindre hjemmesider, ville denne metode være et mareridt at klare et større projekt med mange forskellige elementer, der alle har brug for overordnet. Vi gør også tung brug af kaskaden i vores eksempel ovenfor, mens et stort system kan kræve mere specificitet for at målrette alle elementer.
Så hvordan ellers kan vi tackle problemet? Lad os se på CSS-filtre. En af de værdier, vi kan bruge på CSS-filtre, er 'Invert', så vi kunne bare anvende dette til HTML'en og invertere alle farverne, hvilket giver os en "mørk tilstand".
@media (foretrækker-farveskema: mørk) {
html {
Filter: Invert (100%);
}
}
Mens filtermetoden fungerer sammen med det indhold, vi har i vores dokument, ser det stadig ikke godt ud - vores kasse skygge, for eksempel, har også inverteret, hvilket ser ganske mærkeligt ud. Vi har mistet kontrol over stilarterne, som bliver et endnu større problem, når du har farvede baggrunde. Vi har også et helt nyt problem at overveje, når billeder er involveret. Lad os se, hvad der sker, når vi tilføjer et billede til vores side.
De metoder, vi har udforsket hidtil, får os til at miste kontrollen over stilarterne eller kræver en masse vedligeholdelse for at sikre, at alt er opdateret i mørk tilstand. Der er en anden måde, vi kan henvende os til: Vi kan bruge brugerdefinerede egenskaber for at definere vores farver og derefter tilsidesætte dem ved hjælp af medieforespørgslen.
For at kunne bruge brugerdefinerede egenskaber definerer vi dem på toppen af vores CSS inde i ' :rod 'element. Rotelementet har det samme omfang som HTML, så vil være tilgængeligt globalt. Vi skal beslutte om de variable navne og definere deres værdier.
: Root {
--Background-Farve: #Ededed;
- PAGE-BAGGRUND: #FFF;
--Text-farve: # 212121;
- Color-Alpha: # C3423f;
}
Nu har vi nogle brugerdefinerede ejendomme defineret, vi kan bruge dem i vores CSS. Vi starter med kroppen og anvender baggrunds- og tekstfarverne. For at kunne bruge en brugerdefineret ejendom bruger vi ' Var (- Brugerdefineret ejendomsnavn) 'Syntaks.
krop {
baggrundsfarve: var (- baggrundsfarve);
Farve: Var (- Tekstfarve);
}
Ved hjælp af den samme metode kan vi også opdatere 'Baggrundsfarven' i vores Container og 'Farve' af vores ' tekst-alfa. 'klasse for at bruge vores brugerdefinerede egenskaber. Alle farverne på vores side styres nu ved hjælp af brugerdefinerede egenskaber.
.Content-container {
BAGGRUND-FARVE: VAR (- SIDE-BAGGRUND);
}
.TEXT - ALPHA {
Farve: VAR (- Color-Alpha);
}
Nu kan vi igen tilføje medieforespørgslen, men denne gang kan vi tilsidesætte de brugerdefinerede ejendomsværdier, der er inde i den. Vi vil placere dette lige efter den oprindelige roddefinition, og inde i medieforespørgslen kan vi nu blot vælge nye værdier for alle vores farve brugerdefinerede egenskaber.
@media (foretrækker-farveskema: mørk) {
: rod {
--Background-farve: # 111;
- Page-Background: # 212121;
--TEXT-FARVE: #Ededed;
- Color-Alpha: # 50a8d8;
}
}
Brugerdefinerede ejendomme giver os fuld kontrol for at vælge hvilke farver og andre egenskaber vi ændrer og bruger. Lad os opdatere bokseskyggen på vores sidebeholder for at gøre den mindre gennemsigtig, når du bruger mørk tilstand. For at gøre dette skal vi oprette en ny brugerdefineret ejendom til sideskyggen.
: Root {
...
- Page-Shadow: 0 0 12px 6px rgba
(0,0,0,0,05);
}
Nu har vi lavet en anden brugerdefineret ejendom, vi skal anvende det på det rigtige element på siden. Vi kan derefter tilsidesætte værdien inde i vores rodelement for at reducere gennemsigtigheden.
@media (foretrækker-farveskema: mørk) {
: rod {
...
- Page-Shadow:
0 0 12PX 6PX RGBA (0,0,0,0,33)
;
}
}
.Content-container {
...
Box-Shadow: Var (- side-skygge);
}
Lad os nu tilføje et billede tilbage i vores indhold, og så kan vi tilføje nogle grundlæggende stilarter for at flyde billedet ved siden af indholdet.
img {
Bredde: 100%;
Højde: Auto;
Float: Venstre;
Max-bredde: 300px;
Margin-højre: 1.618rem;
Margin-bottom: 1.618rem;
}
Som vi kan se, da vi ikke bruger nogen filtre, ændres billedet ikke mellem de to temaer.
Nu har vi vores brugerdefinerede egenskaber, vi kan fortsætte med at tilføje elementer til siden og styles dem med vores variabler. Lad os oprette en knapklasse og tilføje en knap til vores side.
. Button {
Display: Inline-Flex;
Font-familie: arve;
Baggrundsfarve: Var (- Color-Alpha);
Farve: Var (- Tekstfarve);
PADDING: 1.618REM 3.236REM;
Border: 0 Ingen;
Border-radius: 0.25rem;
Tekst-dekoration: Ingen;
}
Ved hjælp af de samme variabler kan vi også oprette en svæverestil, der kan bruges til begge temaer. For at opnå dette vil vi omdanne farverne, når brugeren svæver over knappen og overgang de egenskaber for at gøre oplevelsen mindre spaltning.
. Button {
...
Overgang: Baggrundsfarve 150ms,
farve 150ms;
& Amp;: Hover {
Baggrundsfarve: VAR (- Tekstfarve);
Farve: VAR (- Color-Alpha);
}
}
Brugerdefinerede egenskaber har samme omfang som almindelige CSS-elementer; Det betyder, at vi kan tilsidesætte dem ved hjælp af en mere specifik vælger. Vi kan drage fordel af dette og oprette nogle variabler, der scoped til vores knap.
. Button {
- Button-Baggrund: VAR (- Color-Alpha);
- Button-tekst: Var (- Baggrundsfarve);
Baggrundsfarve: Var (- Button-Background);
Farve: VAR (- Button-Text);
...
}
Vi kan udnytte dette omfang for at skabe forskellige stilarter og svæve interaktioner for vores knap i mørke og lette temaer. Vi kan ændre værdien af vores variabler baseret på medieforespørgslen eller elementets tilstand, i stedet for at gentage ejendommen med en ny værdi, som vi normalt ville.
. Button {
...
& Amp;: Hover {
- Button-Baggrund: # AE3937;
@media (foretrækker-farveskema: mørk) {
- Button-Baggrund: # 2E98D1;
- Button-tekst: VAR (- BAGGRUND-
farve);
}
}
}
Arbejder på en bygning med et hold? Hold din proces sammenhængende med anstændigt Sky lagring .
Denne artikel blev oprindeligt offentliggjort i udstedelse 283 af Creative Web Design Magazine Webdesigner . Køb problem 283. eller Abonner på Web Designer her .
Relaterede artikler:
(Billedkredit: Mabel Wynne) At lære at redigere en video på Tiktok, ville sandsynligvis ikke have været noget, du ..
(Billedkredit: Getty billeder) Brain.js er en fantastisk måde at bygge et neuralt netværk på. Simpelthen sagt, et ..
(Billedkredit: Phil Nolan) Virkelighedsfangst er en fantastisk måde at lave dine egne 3D-scanninger på. Alt du beh�..
Skabe et stykke af 3D Art. Med et naturligt udseende landskab kan virke som en udfordring, men hvis du bruger de r..
Jeg har altid troet, at originaliteten findes et sted mellem, hvad du kan lide, og hvad du observerer. Jeg elsker at blande sci-f..
Skitserbar er en maleri app til Windows 10. Det giver dig mulighed for at male store slagtilfælde på store billeder uden forsinkelse. Billeder er oprettet i 'tidsskrifter', hvor..
Adobe InDesign er et godt program at bruge, når du designer alt, der bruger typen stærkt. I hele denne InDesign-vejledning løb..
Westerns er noget, jeg altid har elsket. I denne vejledning opretter jeg et billede i den typiske manga-stil, men ligger i en vil..