css | |
---|---|
Förlängning | .css |
MIME -typ | text/css |
Utvecklaren | CSS-arbetsgrupp [d] |
publiceras | 17 december 1996 |
Formattyp | Stilmallsspråk |
Standard(er) |
Nivå 1 (Rekommendation) Nivå 2 (Rekommendation) Nivå 2 Revision 1 (Rekommendation) |
Hemsida |
w3.org/Style/CSS/drafts.csswg.org _ |
CSS ( /siːɛsɛs/ engelska Cascading Style Sheets ) är ett formellt språk för att beskriva utseendet på ett dokument ( webbsida ) skrivet med ett märkningsspråk (oftast HTML eller XHTML ). Det kan också tillämpas på alla XML-dokument , som SVG eller XUL .
CSS används av webbsidors skapare för att definiera färger , typsnitt , stilar, placering av enskilda block och andra presentationsaspekter av utseendet på dessa webbsidor. Det huvudsakliga designmålet med CSS är att avskärma och separera beskrivningen av den logiska strukturen på en webbsida (vilket görs med HTML eller andra märkningsspråk ) från beskrivningen av webbsidans utseende (vilket nu görs med den formella CSS :en) språk). Denna separation kan öka tillgängligheten för ett dokument, ge större flexibilitet och kontroll över presentationen och minska komplexiteten och repetitiviteten i det strukturella innehållet.
Dessutom tillåter CSS att samma dokument presenteras i olika stilar eller utdatametoder , såsom skärmpresentation, tryckt presentation, röstläsning (med en dedikerad röstwebbläsare eller skärmläsare), eller när det visas av punktskriftsenheter . .
CSS-regler kan finnas både i själva webbdokumentet , vars utseende de beskriver, och i externa filer som har tillägget .css . CSS-formatet är en textfil som innehåller en lista med CSS-regler och deras kommentarer.
CSS-stilar kan inkluderas eller bäddas in i webbdokumentet som de beskriver på fyra sätt:
I de två första fallen tillämpas externa formatmallar på dokumentet och i det andra tillämpas interna formatmallar .
För att lägga till CSS till ett XML-dokument måste det senare innehålla en speciell länk till stilfilen:
<?xml-stylesheet type="text/css" href="style.css"?>I de första tre fallen av att lägga till CSS-stilar till ett dokument (se ovan), har varje CSS-regel från filen två huvuddelar - en väljare och ett deklarationsblock . Väljaren , placerad på vänster sida av regeln före "{", bestämmer vilka delar av dokumentet (eventuellt speciellt märkta) regeln gäller. Annonsblocket finns till höger om regeln. Den är placerad inom parentes och består i sin tur av en eller flera deklarationer separerade med ";". Varje deklaration är en kombination av en CSS-egenskap och ett värde separerat av ett ":". Väljare kan grupperas på samma rad avgränsade med kommatecken. I detta fall tillämpas egendomen på var och en av dem.
väljare , väljare { egenskap: värde ; egenskap: värde ; egenskap: värde ; }I det fjärde fallet med att ansluta CSS till ett dokument (se lista), är CSS-regeln, som är värdet på stilattributet för elementet det gäller, en lista med deklarationer (" CSS-egenskap : värde ") separerade med " ;".
Typer av väljare Universalväljare * { marginal : 0 ; stoppning : 0 _ } Taggväljare p { font- family : arial , helvetica , sans-serif ; } Klassväljare . notera { färg : röd ; bakgrundsfärg : gul _ font-weight : fet ; } Identifierare väljare # paragraph1 { margin : 0 ; } Attributväljare a [ href = "http://www.somesite.com" ] { font-weight : bold ; } Descendant selector (kontextväljare) div # stycke1 sid . notera { färg : blå ; } Barnväljare sid . note > b { färg : grön ; } . div { border : 1 px solid red ; stoppning - vänster : 20px } . title { font-size : 20 px ; bakgrundsfärg : röd _ } Syskonelementväljaren h1 + p { font-size : 24 px ; } Pseudo-klassväljare a : active { color : blue ; } Pseudoelementväljare p :: första bokstaven { font-size : 32 px ; }En klass eller identifierare kan tilldelas ett HTML-element genom elementets klass- eller id-attribut:
<!DOCTYPE html> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" > < title > Klass- och ID-väljare </ title > < style > sid . stor { font- family : arial , helvetica , sans-serif ; färg : röd _ } div # first { bakgrundsfärg : silver ; } </ style > </ head > < body > < div id = "first" > <!-- Detta är en grå bakgrunds-div stilad av id --> </ div > < p class = "big" > <! -- Detta är röd text --> </ p > </ body > </ html >Huvudskillnaden mellan elementklasser och elementidentifierare är att en identifierare är för ett enda element, medan en klass vanligtvis tilldelas flera element samtidigt. Men moderna webbläsare tenderar att korrekt rendera flera element med samma ID. Skillnaden är också att flera klasser kan existera (när ett elements klass består av flera ord separerade med mellanslag). Detta är inte möjligt för identifierare.
Det är viktigt att notera följande skillnad mellan en identifierare och en klass: identifierare används ofta i JavaScript för att hitta ett unikt element i ett dokument.
Namnen på klasser och identifierare är, till skillnad från namnen på taggar och deras attribut, skiftlägeskänsliga.
Egenskaperna för klasser och identifierare ställs in med hjälp av lämpliga väljare. Dessutom kan den ställas in som en egenskap för klassen som helhet (i det här fallet börjar väljaren med ".", till exempel ".big") eller som en egenskap för själva identifieraren (i detta fall, selector börjar med "#", till exempel "#first" ), och egenskapen för något element i denna klass eller med denna identifierare.
I CSS, utöver klasserna som definierats av sidans författare, finns det också en begränsad uppsättning så kallade pseudo -klasser som beskriver utseendet på hyperlänkar med ett visst tillstånd i dokumentet, utseendet på det element på vilket inmatningen är fokuserad, och utseendet på element som är de första barnen till andra element. Det finns också fyra så kallade pseudoelement i CSS : den första bokstaven, den första raden, med speciella stilar före och efter elementet.
Att tillämpa CSS på HTML-dokument är baserat på principerna för arv och kaskad . Arvsprincipen är att CSS-egenskaper som deklareras på förfäderelement nästan alltid ärvs av efterkommande element.
Principen för kaskadkoppling används när mer än en CSS-regel är associerad med något HTML- element samtidigt, det vill säga när det finns en konflikt mellan värdena för dessa regler. För att lösa sådana konflikter införs företrädesregler.
Väljare | a, b, c, d | siffra |
---|---|---|
spänna | 0, 0, 0, 1 | ett |
div.klass | 0, 0, 1, 1 | elva |
#id .klass | 0, 1, 1, 0 | 110 |
div span | 0, 0, 0, 2 | 2 |
.klass | 0, 0, 1, 0 | tio |
#id span | 0, 1, 0, 1 | 101 |
Ett exempel på en stilmall (i den här formen kan den antingen placeras i en separat .css-fil eller ramas in med taggar <style>och placeras i "huvudet" på själva webbsidan som den verkar på):
p { font- family : arial , helvetica , sans-serif ; } h2 { font-size : 20 pt ; färg : röd _ bakgrund : vit _ } . notera { färg : röd ; bakgrundsfärg : gul _ font-weight : fet ; } p # paragraph1 { padding-left : 10 px ; } a : hover { text-decoration : none ; } # nyheter p { färg : blå ; } [ typ = "knapp" ] { bakgrundsfärg : grön ; }Här är sju CSS-regler med väljarna p, h2, .note, p#paragraph1, a:hoveroch . #news p[type="button"]
Innan tillkomsten av CSS gjordes webbsidestilen uteslutande i HTML , direkt i innehållet i ett dokument. Men med tillkomsten av CSS blev det möjligt att i grunden separera innehållet och presentationen av ett dokument. På grund av denna innovation blev det möjligt att enkelt tillämpa en enda designstil för en massa liknande dokument, samt snabbt ändra denna design.
Fördelar:
Brister:
CSS är en av ett brett spektrum av teknologier som stöds av W3C och som gemensamt kallas "webstandarder" [2] . På 1990-talet blev behovet av att standardisera webben tydligt, att skapa någon form av enhetliga regler som programmerare och webbdesigners skulle designa sajter efter. Så här dök HTML 4.01 och XHTML- språken ut och CSS-standarden.
I början av 1990-talet hade olika webbläsare sina egna stilar för att visa webbsidor. HTML utvecklades mycket snabbt och kunde tillfredsställa alla behov av informationsdesign som fanns på den tiden, så CSS fick inte bred acceptans vid den tiden.
Termen Cascading Style Sheets myntades av Haakon Lee 1994. Tillsammans med Bert Bos började han utveckla CSS.
Till skillnad från många stilspråk som fanns vid den tiden, använder CSS förälder-till-barn-arv, så en utvecklare kan definiera olika stilar baserat på redan definierade stilar.
I mitten av 1990-talet började World Wide Web Consortium ( W3C ) visa intresse för CSS, och i december 1996 utfärdades CSS1-rekommendationen.
W3C-rekommendation, antagen 17 december 1996 , ändrad 11 januari 1999 [3] . Bland funktionerna i denna rekommendation:
W3C-rekommendation, antagen 12 maj 1998 [4] . Baserat på CSS1 med bibehållen bakåtkompatibilitet med några få undantag. Lägger till funktionalitet:
W3C stöder inte längre CSS2 och rekommenderar att du använder CSS2.1
Nivå 2 revision 1 (CSS2.1)W3C-rekommendation, antagen 7 juni 2011 .
CSS2.1 är baserad på CSS2. Förutom att fixa buggar har vissa delar av specifikationen ändrats i den nya versionen, och en del[ vad? ] och helt borttagen. De borttagna delarna kan komma att läggas till CSS3 i framtiden.
CSS3 ( Engelska Cascading Style Sheets 3 - cascading style sheets av tredje generationen ) är en aktivt utvecklad CSS- specifikation . Det är ett formellt språk som implementeras med ett märkningsspråk . Den största revisionen jämfört med CSS1, CSS2 och CSS2.1. Huvudfunktionen hos CSS3 är möjligheten att skapa animerade element utan användning av JS [5] , stöd för linjära och radiella gradienter, skuggor, utjämning och mer.
Det används främst som ett sätt att beskriva och utforma utseendet på webbsidor som är skrivna med HTML- och XHTML -markeringsspråken , men kan också användas på alla XML-dokument , som SVG eller XUL .
Utvecklingsversion (lista över alla moduler) [6] .
Till skillnad från tidigare versioner är specifikationen uppdelad i moduler, vars utveckling och utveckling utförs oberoende. CSS3 bygger på CSS2.1, utökar befintliga egenskaper och värden och lägger till nya.
Innovationer, som börjar med små, som rundade hörn av blocken, slutar med transformation ( animation ) och, möjligen, införandet av variabler [7] [8] .
Utvecklat av W3C sedan 29 september 2011 [9] [10] .
CSS4-moduler bygger på CSS3 och lägger till nya egenskaper och värden till dem. Samtliga finns hittills i form av utkast (arbetsutkast).
Till exempel:
De mest fullständiga stöd för CSS-standarden är webbläsare som körs på Gecko ( Mozilla Firefox , etc.), WebKit ( Safari , Arora , Google Chrome ) och Presto (Opera) [11] -motorer.
Den tidigare mest använda webbläsaren [12] Internet Explorer 6 stöder inte fullt ut CSS [13] .
Släppt sju år senare förbättrade Internet Explorer 7 avsevärt nivån av CSS-stöd [14] [15] , men innehöll fortfarande ett betydande antal buggar [16] .
Internet Explorer 8 använder en ny motor som fullt ut stöder CSS 2.1 och delvis stöder CSS 3 [17] .
För att testa webbläsarstöd för webbstandarder, inklusive olika delar av CSS-standarden, utvecklades Acid -testet .
CSS-standarderna från W3C använder en modell där en egenskap widthdefinierar bredden på lådans innehåll utan att inkludera utfyllnad eller kanter. Tidiga versioner av Internet Explorer (4 och 5) implementerade sin egen modell där bredd definierar avståndet mellan boxkanter, inklusive utfyllnad ( padding) och kanter ( border). Förutom Internet Explorer 5 förstås denna modell även av webbläsarna Netscape 4 och Opera 7. Stöd för standardmodellen W3C dök endast upp i IE i den sjätte versionen.
Den kommande CSS3-standarden introducerade en egenskap box-sizingmed värden content-boxför att indikera användningen av W3C-standardmodellen och border-boxför att använda IE 5-modellen för att lösa detta problem.
I Mozilla- webbläsaren , med stöd av den här egenskapen, under sitt eget "arbetande" namn -moz-box-sizing, introducerades ett annat värde - padding-box, vilket skapade en tredje boxmodell, där width storleken på innehållet och indragen i blocket är, inte inklusive ram.
Skillnader i implementeringen av CSS av olika webbläsare tvingar webbutvecklare att leta efter lösningar på hur man får alla webbläsare att rendera sidan på samma sätt. CSS-filter (även ofta kallade CSS-hack) låter dig selektivt tillämpa stilar på olika element. Till exempel är Internet Explorer 6 känt för att genomdriva regler som använder vyväljare (ett filter känt som " star html bug "). För att W3C- och IE-boxmodellen som körs i Quirks-läge ska visa en 100px bred ruta med 10px-utfyllnad, kan du skriva kod så här: * html селектор#someblock
/* W3C-modell - 80px innehållsbredd och 10px stoppning på varje sida */ # someblock { width : 80 px ; stoppning : 10px _ _ } /* Följande regel kommer endast att gälla för IE6. */ * html # someblock { bredd : 100 px ; stoppning : 10px _ _ }Ett annat sätt att selektivt genomdriva regler för Internet Explorer är villkorliga kommentarer .
Alla versioner av Internet Explorer som stöddes 2010 var sårbara: när webbläsaren bearbetar cascading styles (CSS) kan oinitierat minne dyka upp, som sedan används för att fjärrstarta skadlig kod på användarens dator [18] .
CSS Framework (även webbdesignramverk ) är ett förberett CSS-bibliotek skapat för att förenkla arbetet för layoutdesignern, påskynda utvecklingen och eliminera maximalt möjliga antal layoutfel (kompatibilitetsproblem mellan olika webbläsarversioner etc.). Precis som bibliotek med programmeringsspråk för skript, är CSS-ramverk, vanligtvis i form av en extern .css-fil, "anslutna" till projektet (läggs till i rubriken på webbsidan), vilket tillåter en programmerare eller designer som är oerfaren i krångligheterna med layout för att skapa en html-layout korrekt.
När du lägger ut sidor behöver du ofta använda samma värde många gånger: samma färg, samma typsnitt. Och om detta värde behöver ändras, då måste det ändras på många ställen.
För att lösa dessa problem och påskynda utvecklingen finns det flera tillägg (förprocessorer) av CSS-språket. Tillägg i den meningen att CSS-koden är giltig kod för ett tillägg, men inte vice versa. För att den "utökade CSS"-koden ska förvandlas till en vanlig CSS-fil som uppfattas av webbläsaren måste du kompilera den. Sammanställning kan vara av flera typer:
Exempel på CSS-tillägg (förprocessorer):
Stilmallsspråk ( jämför , list ) | |
---|---|
Lägen |
|
Standard | |
icke-standard |
|
World Wide Web Consortium (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Produkter och standarder |
| ||||||||||||||
Organisationer |
| ||||||||||||||
PÅ |
| ||||||||||||||
Konferenser |
|
Webb och hemsidor | |
---|---|
globalt | |
Lokalt | |
Typer av webbplatser och tjänster |
|
Skapande och underhåll | |
Typer av layouter, sidor, webbplatser | |
Teknisk | |
Marknadsföring | |
Samhälle och kultur |
Cascading Style Sheets | |
---|---|
css |
|
Jämförelse |
|
webbdesign |
|
Cascading Style Sheets |