Cascading Style Sheets | |
---|---|
Utvidelse | .css |
MIME-type | text/css |
Utviklet av | W3C |
1. utgivelse | 17. desember 1996 |
Nettsted | www.w3.org/TR/CSS |
CSS (akronym for Cascading Style Sheets ) , i informatikk , er et språk som brukes til å definere formateringen av HTML- , XHTML- og XML -dokumenter , for eksempel nettsteder og relaterte nettsider . Reglene for å lage CSS finnes i et sett med direktiver ( anbefalinger ) utstedt siden 1996 av W3C .
Innføringen av CSS var nødvendig for å skille innholdet på HTML-sider fra deres formatering eller layout og for å tillate klarere og enklere å bruke programmering , både for forfatterne av sidene selv og for brukerne, samtidig som man garanterer gjenbruk av kode og det er lettere vedlikehold.
For å la forfattere fritt kunne forme utseendet til nettsider , presenterte Netscape Navigator og Internet Explorer , de to navigasjonsprogramvarene som brukere bestred i den velkjente nettleserkrigen , fra 1993 og fremover proprietære tagger , dvs. at de ikke fulgte standarder. kompatibel med konkurrerende nettlesere. Et eksempel på disse kodene var <font>at de definerte fonten til tegnene.
Disse proprietære formateringskodene var den eneste måten for forfattere å definere formatering på, så bruken ble veldig intensiv. Disse taggene hadde imidlertid tre problemer:
Et annet problem var, på ikke-standardiserte nettsider, bruken av taggen <table>( tabellene ) for å lage layouten til nettsidene. Tabelllayout anses foraktelig av purister, ettersom tabeller er designet for å layoute tabelldata og ikke weboppsett . I tillegg til dette har bruken av tabeller også praktiske ulemper: øke vekten på sidene, som allerede indikert i oppgave 1, og forverret tilgjengelighet, da den logiske rekkefølgen av dataene kan måtte ofres av layouthensyn.
En annen måte å lage nettsteder på på 90- og 2000-tallet (inntil den ble forlatt 31. desember 2020 av Adobe [1] ) var Adobe Flash som tillot (på en vektoriell måte) å lage animasjoner, transformasjoner og generelt en veldig mer iøynefallende enn HTML og CSS. Dessuten tillot det å integrere hvilken som helst skrift selv om brukeren ikke hadde den på enheten sin. Disse problemene ble løst med HTML5 og CSS3.
Et annet problem var å lage formateringen av HTML-sidene ved å bygge inn stilene i kodene og skrifttypen i (nå avviklet) "font"-taggen. Dette gjorde koden komplisert og ofte rotete. For eksempel:
< p style = "farge: blå; skriftstørrelse: 46px;" > Wikipedia er et leksikon </ p >For å prøve å løse denne situasjonen ga W3C ut spesifikasjonen CSS 1 i 1996. CSS 1 var en interessant måte å skille innhold fra formatering på . Grunnlaget for dette språket besto faktisk i det faktum at innholdet alltid ville bli definert av (X) HTML-koden, mens formateringen ville bli overført til en helt egen kode , CSS. Referansene mellom de to kodene ble gjort gjennom to spesielle attributter: klasse og ID . Disse spesifikasjonene:
CSS utviklet en enkel, men effektiv idé, men til tross for deres store potensial var de mislykkede på grunn av mangelen på nettlesere som kunne støtte dem.
For å inkludere de nye funksjonene og gjøre CSS til et godt støttet språk, ga W3C ut CSS 2-spesifikasjonen i 1998. I 2004 begynte arbeidet med den oppdaterte CSS 2.1-spesifikasjonen som ble en offisiell anbefaling 7. juni 2011. CSS 2 er naturlig utvikling av CSS 1 og tilbyr kraftige løsninger for å løse fremfor alt det tredje problemet, med muligheten for å lage separate stilark for bærbare enheter. Til og med det andre problemet er nå fullt løsbart, ved å skrive en (X) HTML-side eksklusivt adressert til strukturen og innholdet og deretter manipulere den utelukkende med CSS for å layoute den.
Fra og med Internet Explorer 5 , Firefox og Opera 7 , har CSS 2 vært i stand til å bruke nettlesere som er i stand til å tolke dem og har derfor blitt en del av koden til mange nettsteder.
De første typene oppsett uten tabeller (vanligvis en, to eller tre kolonner) begynte å bli opprettet [2] [3] :
I motsetning til CSS 2-spesifikasjonen, som består av en enkelt spesifikasjon, består CSS3-spesifikasjonen av separate seksjoner kalt "moduler". På grunn av denne modulariseringen har CSS3-spesifikasjonene forskjellige tilstander for fremgang og stabilitet. [4] Fra november 2014 ble fem moduler formelt publisert av W3C som anbefalinger :
HTML og CSS3 utgjør et komplett turing -språk [5] [6] , en tilstrekkelig betingelse for at et språk kan anses som et programmeringsspråk .
CSS3 presenterer nye muligheter og egenskaper sammenlignet med CSS2 [7] [8] . De viktigste er:
EIENDOM CSS3 | TYPER | EKSEMPEL |
---|---|---|
Velgere | ||
Grunnleggende velgere |
|
* {fargen rød}
h1 {farge: rød} .title {farge: rød} #tittel {farge: rød} |
Kombinatoriske eller relasjonsvelgere |
|
div # container p {farge: rød}
body> p {farge: rød} h1 + h2 {farge: rød} h1 ~ h2 {farge: rød} |
Attributtvelgere |
|
en [tittel] {farge: blå}
a [tittel = "Lorem"] {farge: blå} a [tittel ~ = "dolor"] {farge: blå} a [tittel ^ = "Lorem"] {farge: blå} a [tittel $ = "amet"] {farge: blå} a [tittel * = "dolor"] {farge: blå} |
Strukturelle pseudo-klasser og pseudo-klasser |
|
: rot {bakgrunnsfarge: rød} |
Andre pseudo-klasser |
|
div: mål {border: 3px}
div: ikke (.black) {farge: rød} input: aktivert {farge: rød} |
Pseudo-klasser for validering |
|
: standard {bakgrunn: rød} |
Pseudo-elementer |
|
:: første bokstav {farge: rød} |
Farge | ||
Opasitet | opasitet | div {bakgrunn: hvit; farge svart; opasitet: 0,5} |
RGBa farge | rgb
rgba |
body {bakgrunnsfarge: rgb (100%, 100%, 100%)}
_____________________ body {bakgrunnsfarge: rgb (255, 255, 255)} _____________________ body {bakgrunnsfarge: rgba (255, 255, 255, 0.5)} |
HSLa farge | hsl
hsla |
body {bakgrunnsfarge: hsl (0, 100%, 50%)}
__________________ # box1 {bakgrunnsfarge: hsla (0,100 %, 100 %, 0,5); } |
Kanter | ||
Avrundede hjørner |
|
# box1 {border-top-left-radius: 20px} |
Dekorerte kanter | grense-bilde | #border {border-image: url (border.png) 27 27 27 27 runde runde; } |
Skygger av beholderne | boks-skygge | box-shadow: 5px 5px 10px 2px # 333333; |
Bakgrunner | ||
Flere bakgrunner | url ( første bilde ), url ( andre bilde ), ... | bakgrunnsbilde: url (image1.png), url (image2.png); |
Klipp av bakgrunnsbildet |
|
#box {background-clip: border-box}
#box {background-clip: padding-box} #boks {bakgrunnsklipp: innholdsboks} |
Plassering av bakgrunnsbildet |
|
bakgrunn-opprinnelse: polstring-boks; |
Bakgrunnsstørrelse |
|
bakgrunnsstørrelse: 50 % 50 %;
bakgrunnsstørrelse: 200px 50px; bakgrunnsstørrelse: cover; bakgrunnsstørrelse: inneholde; |
Gradienter som bakgrunnsbilder | lineær gradient | bakgrunnsbilde: lineær gradient (øverst til høyre, #FFFFFF 0%, #AACFEF 100%); |
Tekst og font | ||
Nettfonter
(alternativ til Google-fonter ) |
@ font-face | @ font-face {
font-family: myFirstFont;
src: url (sansation_light.woff);
} |
Tekstpause | ordomslag: | #boks {ord-wrap: break-word; } |
Skygge under teksten | tekst-skygge: | p {tekstskygge: 2px 2px 3px # 333;} |
Tekstorientering (for eksempel for språk der teksten er vertikal) [12] [13] [14] | skrivemodus: "verdi" ;
tekstorientering: "verdi" ; |
tekstorientering: blandet;
oppreist; sideveis-høyre; sidelengs; bruk-glyph-orientering; arve; første; første; ett sett; skrive-modus: horisontal-tb;vertikal-rl; vertikal-lr; arve; førstegangs; gå tilbake; ett sett; |
Spesielle karakterer | innhold: " spesialtegn "; | h1: etter {
innhold: '\ 00A7';
} |
Tekstens retning | horisontal-tb;
vertikal-rl; |
s. innhold1 {
skrive-modus: horisontal-tb;
} |
Tekstoversikt | bredde:
farge: |
h1 {tekststrek: 1px svart;} |
Tekstpause | tekst-overflyt: klipp;
tekst-overløp: ellips ellipsis; tekst-overflyt: ellipsis "[..]"; Globale verdier:
|
.overflow-clip-clip
{text-overflow: clip clip;} .overflow-clip-ellipsis {text-overflow: clip ellipsis;} .overflow-ellipsis-ellipsis {text-overflow: ellipsis ellipsis;} |
Layout og boksmodell | ||
Overskudd | overløp-x:
overløp-y: |
# box2 {overflow-x: skjult; } |
Plassering av containere | boksstørrelse: | # boks1 {boksstørrelse: innholdsboks; } |
Oppsett med flere kolonner |
|
#container {bredde: 750px; margin: 20px auto; kolonnebredde: 350px; kolonne-gap: 25px; } |
Fleksibel bokslayout |
|
display: boks;
boks-orientert: vertikal; box-align: center; box-pack: rettferdiggjøre; box-flex: 1; |
Gjennomsnittlig søk |
|
@medieskjerm og (farge) { css-regler } |
Overganger, transformasjoner og animasjoner | ||
Overganger |
|
div {transition-property: bakgrunnsfarge; overgang-varighet: 2s; } |
Transformasjoner |
|
transformere: rotere (40 grader);
transform-origin: venstre bunn; matrise (a, b, c, d, tx, ty); transform: translate (10px, 10px); transform: skala (0,5); transformere: rotere (180 grader); transform: skjevt (15 grader, 20 grader); transformere: rotere (180 grader) skjevt (20 grader, 30 grader) skala (2); |
Animasjoner | @keyframe
|
@keyframes 'puls' {fra {bakgrunnsfarge: rød; opasitet: 1,0; -transform: skala (1.0) rotere (0grader); } |
Grafikk | ||
Filtre | filter: ingen | uskarphet () | lysstyrke () | kontrast () | drop-shadow () | gråtoner () | fargetone-rotere () | inverter () | opasitet () | mettet () | sepia () | url (); | img {
filter: uskarphet (5px);
} |
Masker |
|
mask: url(masks.svg#star) luminance; |
Å sette inn CSS-kode på nettsider kan gjøres på tre forskjellige måter:
denne løsningen garanterer maksimalt mulig gjenbruk av kode siden den kan kalles opp på hver av de ønskede HTML-nettsidene.
Denne løsningen garanterer mindre gjenbruk av kode enn den forrige siden den kun kan brukes på HTML-siden der den er deklarert.
Denne løsningen garanterer enda mindre gjenbruk av kode enn den forrige.
Et CSS-stilark er syntaktisk strukturert som en sekvens av regler , som er par som består av en velger og en blokk med deklarasjoner , omsluttet av krøllede parenteser. En velger er et predikat som identifiserer visse elementer i HTML-dokumentet; en erklæring, atskilt med semikolon fra de andre, består i sin tur av en egenskap , det vil si en stilstrek (som fargen på teksten) og en verdi som skal tildeles sistnevnte (for eksempel blå). atskilt med et kolon.
selector1 { property1 : value1 ; eiendom2 : verdi2 ; } velger2 { egenskap3 : verdi3 }Noen av hovedtypene velgere er beskrevet nedenfor.
TypevelgereTypevelgere bruker regelen på alle sideelementer av den gitte typen. Eksempler:
kropp { [...] }eller
p { [...] } KlassevelgereKlasser bruker regelen på alle elementer på siden som har egenskapen class="nome_classe". CSS-syntaksen er som følger:
. klassenavn { [...] } IdentifikatorvelgereIdentifikatorer (vanligvis ID -er ) bruker regelen på det elementet på siden som har egenskapen id="nome_identificatore". IDer skiller unike elementer . CSS-syntaksen er som følger:
# identifier_name { [...] } PseudoklassevelgerePseudoklasser identifiserer elementer basert på egenskapene deres.
den finner bare det første avsnittet i (X) HTML-koden nedenfor.
< body > < p > Lorem ipsum </ p > < p > Lorem ipsum </ p > < p > Lorem ipsum </ p > </ body >den vil bare gjelde hvis musepekeren går over et avsnitt og bare for tiden som blir værende der.
Pseudo-elementer identifiserer bare en del av et element, uten behov for å bruke (X) HTML-markering.
De identifiserer bare elementer som finnes i et bestemt forhold som stammer fra trestrukturen til (X) HTML-dokumentet, for eksempel avstamning, avkom, brorskap.
identifiserer bare elementene <span>i elementene <p>.
finner bare <p>innhold direkte i en <div>.
identifiserer bare den første <p>broren til<h1>
AttributtvelgereAttributtvelgeren tillater, gjennom følgende syntaks, å identifisere (X) HTML-elementer basert på deres attributter.
a [ tittel = Eksempel ] { [...] }Denne regelen gjelder bare for elementer <a>som har attributtet title="Esempio". Attributtvelgerne er mange og vil tillate utmerket kontroll over siden, men Internet Explorer støtter dem ikke og bruken er derfor svært begrenset.
CSS Grids er et todimensjonalt layoutsystem, noe som betyr at det kan håndtere både kolonner og rader, i motsetning til flexbox som stort sett er et endimensjonalt system. CSS-regler gjelder både for et overordnet element (som blir Grid Container) og underordnede av det elementet (som blir Grid Items) [15] .
CSS .grid-container { display: rutenett; rutenett-mal-kolonner: auto auto auto; bakgrunnsfarge: # 2196F3; polstring: 10px; } .grid-item { bakgrunnsfarge: rgba (255, 255, 255, 0,8); kantlinje: 1px solid rgba (0, 0, 0, 0,8); polstring: 20px; skriftstørrelse: 30px; tekst-align: center; } -------------------------------------------- HTML < div class = "grid-container" > < div class = "grid-item" > 1 </ div > < div class = "grid-item" > 2 </ div > </ div >Med CSS kan du sørge for at brukeren, hvis han skriver ut en nettside, bare skriver ut enkelte elementer på siden og ikke alle. Vanligvis fjernes menyen, bakgrunnsbildet og reklamebannerne fra den trykte siden. Hvis nettsiden er spesielt rik på grafikk og paginert på en kreativ og ikke-standard måte, har den en tendens til å bli skrevet ut på en mer klassisk og standard måte [16] [17] . Et alternativ til CSS for utskrift er noen nettleserplugins som lar brukeren fjerne visse elementer på nettsiden fra utskrift [18] .
Eksempel på ekstern CSS for utskrift koblet til en HTML-webside:
< link rel = "stylesheet" href = "main.css" /> < link rel = "stylesheet" media = "print" href = "print.css" />Eksempel på ekstern CSS for utskrift:
/ * main.css * / body { margin : 2 em ; farge : #fff ; bakgrunnsfarge : # 000 ; } / * print.css * / @ media print { body { margin : 0 ; farge : # 000 ; bakgrunnsfarge : #fff ; } }Nettfarger er farger som brukes til å vise nettsider på World Wide Web og i metodene for å beskrive og spesifisere disse fargene. Farger kan spesifiseres som en RGB -triplett eller i hex -format (en hex-triplett ) eller i noen tilfeller med deres vanlige engelske navn. Et fargevelgerverktøy eller annen grafikkprogramvare brukes ofte til å generere fargeverdier. Et eksempel: #0099CC(en type blå som også kan skrives Pacific Blue).
Endre navnet på fargeneCSS3 lar deg endre navn på farger som du vil og huske dem senere [19] :
$ farge-donau : # 668DD1 ; / * RECALL * / $ farge-alfa : $ farge-donau ;Sass ( Syntactically A wesome Style Sheets ) er en utvidelse av CSS-språket som lar deg bruke variabler , lage funksjoner og organisere stilarket i flere filer .
Less ( LESS ) er en CSS- forprosessor som utvider det vanlige CSS-språket som tillater (i tillegg til den normale syntaksen for stilark) også bruk av funksjoner , operatorer og variabler , nesting av instruksjoner, opprettelse av "mixins" og en rekke andre funksjoner som gjør koden enklere å skrive, vedlikeholde og forstå.
CSS-egenskapene er mange. De mest brukte er:
Hvis det ikke er spesifisert, antar en egenskap standardverdiene for hver nettleser, eller for det andre den valgte brukerstilen, ellers kan den anta ett av følgende:
Arvstrengen spesifiserer at egenskapen må arve verdien fra elementene som elementet stammer fra. Auto- strengen har svært forskjellige betydninger avhengig av egenskapen den er tilordnet.
Hvis tall er merket med en måleenhet, må denne enheten uttrykkes (unntatt når det gjelder null). Det må ikke være mellomrom mellom tallet og enheten, som i følgende eksempel:
p { margin : 5 px ; kantlinje : 1 em ; polstring : 0 ; }Farger kan angis med mer enn ett system. For eksempel kan fargen oransje angis med:
oransje / * standardfarge * / rgb ( 255 , 165 , 0 ) / * rgb-format 0 til 255 * / rgb ( 100 %, 64 %, 0 %) / * du kan bruke prosenter * / rgba ( 255 , 165 , 0 , 1 ) / * du kan spesifisere alfa fra 0 til 1 * / hsl ( 39 , 100 %, 50 %) / * notasjon fargetone metning lyshet * / hsla ( 39 , 100 %, 50 %, 1 ) / * alfa kan spesifiseres * / # ffa600 / * heksadesimalt format RRGGBB * / # ffa600ff / * heksadesimalt format RRGGBBAA * / # fa0 / * heksadesimalt format RGB-tilnærming av startverdien * / # fa0f / * heksadesimalt format RGBA-tilnærming av startverdien * /URL - en er angitt i skjemaene
url ( http : // eksempel . it / fil . html ) url ( "http://example.it/file.html" )CSS lar deg indikere i fontfamilieegenskapen mer enn én font, eller en familie av fonter (serif og sans). På denne måten vil nettleseren bruke den første den finner installert på operativsystemet . Deklarasjonen bruker denne syntaksen:
p { font-family : "Arial" , "Verdana" , serif ; } CSS for SVGDu kan bruke CSS til å endre stilene til SVG (del av HTML5) [20] . Eksempel:
svg { bakgrunnsfarge : beige ; }CSS for HTML5 Canvas
<! DOCTYPE html> < html > < head > < title > Lerretselementstørrelse: 600 x 300, Lerrets tegningsoverflatestørrelse: 300 x 150 </ title > < style > body { background : #dddddd ; } # canvas { margin : 20 px ; polstring : 20 px ; bakgrunn : #ffffff ; kantlinje : tynn innfelt #aaaaaa ; bredde : 600 px ; høyde : 300 px ; } </ style > </ head > < body > < canvas id = "canvas" > Lerret støttes ikke </ canvas > </ body > </ html > Automatisk CSS-opprettingMed grafikk- og bilderedigeringsprogrammer som Photshop er det mulig å konvertere lag til CSS-stiler [21] .
Bruke 3DCSS3 introduserte egenskapen "3D Transform" som lar deg lage noen animasjoner og former i 3D, men som ikke kan sette likhetstegn mellom mulighetene til WebGL [22] [23] .
Følgende liste er over gjengivelsesmotorer fordi de er tildelt oppgaven med å formatere siden i henhold til CSS-instruksjonene.
Gecko ( Mozilla Firefox og Netscape Navigator ) Gecko har utmerket støtte for CSS 1,2 og 3 og brukes derfor ofte til å sjekke ytelsen til nettsider. Gecko og Mozilla Firefox er gratis programvare . Netscape Navigator (foreldet fra 1. mars 2008 [24] ) ble også distribuert under en gratis lisens . Trident ( Internet Explorer og AOL Explorer ) Internet Explorer (foreldet fra august 2020 [25] til fordel for Edge ), fra versjon 9 støttet den CSS 3. En særegenhet ved Internet Explorer var de såkalte betingede kommentarene som tillot deg å bruke CSS-regler bare på en viss versjon av Internett Utforsker . Denne funksjonen ble mye brukt der det ble antatt en bruker som fortsatt brukte gamle versjoner av Internet Explorer og derfor ofte krevde noen ekstra CSS-regler for riktig visning av nettsiden. [26] I mange tilfeller var det nødvendig å bruke ad-hoc CSS-stilregler utelukkende for Internet Explorer på grunn av betydelige forskjeller i måten enkelte versjoner av Internet Explorer avviker fra standardene, for eksempel " box modelikke-standarden" som brukes av noen versjoner av Internet Explorer og som skilte seg vesentlig fra det som ble pålagt av standardene til World Wide Web Consortium. [27] [28] Syntaksen for betingede kommentarer var som følger: <! - '' '[if IE]>' '' '' ad-hoc CSS-regler for Internet Explorer '' '' '<! [endif]' '' -> siden den <!--vanligvis introduserte en kommentar, tolket ikke andre nettlesere enn Explorer 5.0 eller høyere koden. Betingede kommentarer tillot deg å spesifisere et Internet Explorer-spesifikt stilark som følger: <! - [if IE]> <link rel = "stylesheet" type = "text / css" href = "'' 'ad-hoc_stylesheet_for_IE.css' ''"> <! [endif] ->Trident og Internet Explorer er proprietær programvare .
Snart ( opera ) Presto tilbyr utmerket støtte for CSS 1,2 og 3. Opera tilbyr også et alternativ som lar brukeren deaktivere stilark eller bruke sine egne. Presto og Opera er proprietær programvare . KHTML og WebKit ( Safari , Google Chrome og Konqueror ) KHTML er for tiden motoren som tilbyr størst støtte for CSS, og tilbyr en nesten total tolkning av CSS 3. KHTML og WebKit er gratis programvare ; Safari og Google Chrome er proprietær programvare (vedlikeholdes av henholdsvis Apple og Google ), mens Konqueror er fri programvare ( lisensiert under GPL , vedlikeholdt av KDE -fellesskapet ).I tillegg til kompatibilitetsforskjeller, legger hver gjengivelsesmotor til noen nye elementer eller egenskaper til standard CSS.
Vanligvis starter slike egenskaper med et prefiks som endres av nettleseren, for eksempel -webkitsom indikerer at egenskapen er for WebKit-gjengivelsesmotoren, for eksempel -webkit-appearance. Alle disse egenskapene bør imidlertid bare brukes når du bare vil bruke den nettleseren med den bestemte gjengivelsesmotoren, da alle disse egenskapene er tilleggsfunksjoner som kun er gyldige for den bestemte gjengivelsesmotoren og ikke er standardegenskaper definert av World Wide Web Consortium.
EdgeHTML støtter CSS godt, inkludert CSS3. EdgeHTML og Microsoft Edge er proprietær programvare .
Før ankomsten av CSS3 laget CSS2 flere CSS-filer for det samme nettstedet som lastet CSS-filen som tilsvarer enheten som brukes av brukeren. I HTML ble følgende syntaks spesifisert:
<link rel = "stylesheet" type = "text / css" href = "sheet.css" media = "skjerm" />Den foregående koden tilordner kun stilarket til standard nettlesere for stasjonære og bærbare datamaskiner. Verdiene til "media"-attributtet er de samme som " media queries " CSS-regelen . Selv om det fortsatt er mulig å lage flere stilark for forskjellige medier og spesifisere dette i "link rel"-taggen, siden mediespørringer støttes av alle moderne nettlesere, bruker de fleste utviklere dem ettersom de tillater i et enkelt CSS-ark å tilpasse den relaterte HTML-en side til alle enheter som bruker langt færre kodelinjer [29] .
Hver separat serverforespørsel ( tid til første byte eller TTFB) påvirker hastigheten (når du påkaller bilder, fonter, videoer, JS-elementer ... i koden). Med CSS kan du øke ytelsen til en side betraktelig ved å redusere antallet forespørsler.
Bruk CSS3 for å unngå å bruke bilder (jpg, png, ...) for eksempel for avrundede hjørner, skygger, gradienter og transparenter.
Bruk CSS Sprites , foreta et enkelt anrop til serveren ved å bruke et enkelt bilde som inneholder mange for flere deler av nettsiden (eller hele nettsiden).
Komprimer CSS-filer med " minify "-metoden for å redusere vekten av CSS-filen og dermed båndbredden som brukes til å hente denne filen fra serveren. Dette kan også gjøres med HTML- og JavaScript -sider [30] . På denne måten vil imidlertid koden være fri for mellomrom og modifikasjonen blir mer kompleks.
Det er også flere måter å oppnå samme resultat med CSS. Metoden du bør velge er den som lar deg skrive så lite kode som mulig for å minimere vekten av ".css"-filen. For eksempel:
. foo { farge : # ff0000 ; } . bar { farge : rgba ( 255 , 0 , 0 , 1 ); } /* TILSVARENDE */ . bar ,. _ foo { farge : rød }Ikke bruk for mange innebygde skrifter ( @ font-face og Google Fonts ).
Minimer antallet CSS-filer og antallet filer generelt. Tilpass for eksempel oppsettet av nettsider til ulike enheter og medier, ikke bruk flere stilark for hver enhet, men bare ett som tilpasser siden til alle mediespørringer . På denne måten vil serveren kalle kun ett CSS-ark.
Erstatt JavaScript med CSS for å lage verktøytips , bildegallerier og mer [9] [10] [11] . Faktisk krever CSS færre ressurser enn JS.
Som beskrevet kan flere stilark kobles til hver side. Det er imidlertid også mulig for brukeren å velge hvilke som skal søkes. For å gjøre dette må du først definere de permanente stilarkene, det vil si at de ikke kan deaktiveres, i henhold til syntaksen som allerede er sett. Deretter er de foretrukne arkene definert, dvs. aktive når siden er lastet inn, men kan deaktiveres ved å legge til attributtet <title>som i følgende eksempel:
<link rel = "stylesheet" type = "text / css" href = "favorite_sheet.css" title = "Eksempel1" />På dette tidspunktet er det mulig å spesifisere alternative stilark, dvs. ikke aktive ved lasting, men som kan aktiveres av brukeren, som i følgende eksempel:
<link rel = " alternativt stilark" type = "tekst / css" href = "alternate_sheet.css" title = "Eksempel2" />For å aktivere og deaktivere stilarkene kan brukeren bruke den aktuelle menyen i nettleseren, men Internet Explorer tilbød ikke denne muligheten, så det var nødvendig å lage et JavaScript -skript som utførte funksjonen til å erstatte arkene. Koden ble først publisert på A List Apart . Men selv om dette skriptet var enkelt for utviklere å implementere, krevde det en oppdatert nettleser med god DOM -støtte , i tillegg til å ha både JavaScript og informasjonskapsler aktivert . Et mer komplekst, men mye mer robust system kan være et serversideskript som PHP . Et eksempel er alltid tilgjengelig på samme side .
Mønstre er uendelige gjentakende modulære figurer som vanligvis danner bakgrunnen til HTML-elementer som DIV-beholdere, knapper, nettsidebakgrunn, avsnitt. Du kan lage dem direkte i CSS, med bilder eller ved å slå sammen begge metodene, dvs. lage et basisbilde og gjenta det med bakgrunns-repeat- regelen [31] . I disse tre tilfellene er det ikke nødvendig å lage et bakgrunnsbilde av størrelsen på beholderen som ville veie mye mer.
Acid3 er en test som det er mulig å verifisere at en nettleser følger med visse nettstandarder inkludert CSS3 [32] .
Stylus er et dynamisk stilark-preprosessorspråk kompilert i Cascading Style Sheets (CSS). Designet er påvirket av Sass og LESS . Det regnes som den fjerde mest brukte CSS-forprosessorsyntaksen [33] . Det ble laget av TJ Holowaychuk, en tidligere Node.js-programmerer og skaper av Luna-språket. Det er skrevet i JADE og Node.js.
I motsetning til CSS, som bruker krøllete parenteser for å åpne og lukke deklarasjonsblokker, brukes innrykk. Dessuten er semikolon (;) valgfritt utelatt. Så, følgende CSS:
kroppsfarge : hvit ; _ }kan forkortes til:
kroppsfarge : hvit ; _I tillegg er kolon (:) og komma (,) også valgfrie; dette betyr at ovenstående kan skrives som følger:
kroppsfarge hvit _Stylus lar deg definere variabler, men i motsetning til LESS og Sass, bruker den ikke et symbol for å definere variabler. I tillegg gjøres tilordningen av variabler automatisk ved å skille egenskapen og nøkkelordene. På denne måten ligner variabler på variabler i Python.
melding = 'Hei, verden!' div :: før innhold melding farge # ffffffStylus-kompilatoren vil oversette eksemplet ovenfor til:
div :: før { innhold : "Hei, verden!" ; farge : #ffffff ; }Både blandinger og funksjoner er definert på samme måte, men brukes på forskjellige måter.
For eksempel:
border-radius ( n ) -webkit-border-radius n -moz-border-radius n border-radius nså, for å inkludere det som en blanding:
div . kant-radius rektangel ( 10px )som vil bli satt sammen til:
div . rektangel { -webkit- border-radius : 10 px ; -moz- kantradius : 10 px ; border-radius : 10 px ; }For å inkludere variabler i argumenter og identifikatorer, er det krøllete parenteser rundt variablene. For eksempel,
-webkit- { 'border' + '-radius' }tilsvarer
-webkit-border-radiusDynamisk CSS, eller DCSS, er et begrep som omfatter et sett med teknologier som brukes sammen for å lage dynamiske stilark, ved å bruke en kombinasjon av et hvilket som helst server - side programmeringsspråk (som PHP / ASP / Perl / JSP ) og CSS ) [34] . Den første ideen til DCSS ble skrevet i juli 2002 av Jori Koolstra , en nederlandsk programmerer [35] .
DCSS lar deg jobbe med variabler i CSS og med dynamisk omskriving av CSS-kildekoden. Mange CMS -er har laget tilleggsmoduler, for eksempel Drupal .
Eksempel:
$ persistent = [ 'bgmast' => 'bbd9ee' , / * list * / 'fgmast' => '4d4d4d' , 'bgmenu' => 'e7e4d3' , / * menu * / 'fgmenu' => '444' , 'bgcont' => 'fff' , / * content * / 'fgcont' => '444' ];CSS kan generere en rekke forskjellige musepekere som brukeren vil se når de kommer til HTML -siden som inneholder dem [36] [37] :
W3C utvikler noen CSS3-spesifikasjoner for å lage layouter som ligner de for magasiner og ukeblader, med muligheten til å kjøre tekst rundt bilder uten bakgrunn (PNG og GIF) og geometriske former [38] [39] [40] [41] .
Innebygd CSS
< div id = ”circle” style = "ekskluderingsform: poly (x1, y1, .., xN, yN)" > </ div > < div style = "region-tråd: innhold; ekskluderinger: #sirkel;" > </ div >Ekstern CSS
. ekskludering { wrap-flow : begge ; posisjon : absolutt ; bredde : 200 px ; } . region { flyt-fra : artikkel ; boksstørrelse : border-box ; posisjon : absolutt ; bredde : 200 px ; høyde : 200 px ; polstring : 10 px ; }Sammenligning av CSS3-logo laget med CSS, med SVG og med HTML5 Canvas
Sammenligning av noen CSS3-filtre og tilsvarende Gimp-filtre
Før CSS3 ble flere <p> brukt til å distribuere tekst over flere avsnitt. Bare én <p> kan brukes med CSS3.
Sammenligning av flere CSS2- og CSS3-bakgrunner. I det første tilfellet var det nødvendig med flere <img>-tagger, hver med en bakgrunn og en z-indeks, i det andre en enkelt <img> med flere bakgrunner
Sammenligning av GIMP, CSS3 og SVG maske
CSS-rammeverk er forhåndsforberedte biblioteker som er ment å muliggjøre enklere, standardkompatibel styling av nettsider ved å bruke språket Cascading Style Sheets. CSS-rammeverk inkluderer Blueprint, Bootstrap , Cascade Framework, Foundation, MDBootstrap og Materialize. I likhet med biblioteker med programmerings- og skriptspråk, er CSS-rammeverk vanligvis innebygd som eksterne .css-ark som refereres til i HTML <head>. De gir en rekke ferdige alternativer for nettsidedesign og layout. Selv om mange av disse rammeverkene er publisert, bruker noen forfattere dem først og fremst for rask prototyping, eller for å lære av, og foretrekker å "manuelt lage" passende CSS for hvert publisert nettsted uten utforming, vedlikehold og nedlasting av mange ubrukte funksjoner. stilen på nettstedet.
Etter hvert som størrelsen på CSS-ressurser som brukes i et prosjekt øker, må et utviklingsteam ofte bestemme seg for en felles designmetodikk for å holde dem organisert. Målene er enkel utvikling, enkel samarbeid under utvikling og ytelse av distribuerte stilark i nettleseren. Populære metoder inkluderer OOCSS (Object Oriented CSS), ACSS (Atomic CSS), oCSS (Organic Cascade Style Sheet), SMACSS (Scalable and Modular Architecture for CSS) og BEM (Block, Element, Modifier)