Trapsgewijze stijlbladen

Van Wikipedia, de gratis encyclopedie
Spring naar navigatie Spring naar zoeken
Trapsgewijze stijlbladen
CSS3-logo en woordmerk.svg
Bestandsextensie : .css
MIME-type : tekst / css
Ontwikkeld door: Wereldwijde web consortium
Type: Stijlbladtaal
Standaard(en) : Niveau 1 (aanbeveling)
Niveau 2 (aanbeveling)
Niveau 2 Revisie 1 (aanbeveling)
Niveau 2 Revisie 2 (aanbeveling)
Website : https://www.w3.org/Style/CSS/

Cascading Style Sheets ( Engelse uitspraak [ kæsˌkeɪdɪŋˈstaɪlʃiːts ]; voor 'stepped design sheets'; kortom: CSS ) is een stylesheettaal voor elektronische documenten en, samen met HTML en JavaScript, een van de kerntalen van het World Wide Web . [1] Het is een zogenaamde levensstandaard, levensstandaard' en het World Wide Web Consortium blijft evolueren (W3C). CSS wordt gebruikt om ontwerpinstructies te maken die voornamelijk worden gebruikt in combinatie met de opmaaktalen HTML en XML (bijvoorbeeld in SVG ).

Basis

CSS is ontworpen om presentatievereisten grotendeels te scheiden van inhoud. Als deze scheiding consequent wordt uitgevoerd, worden alleen de inhoudsstructuur van een document en de betekenis van de onderdelen ervan beschreven in HTML of XML, terwijl bij CSS de presentatie van de inhoud afzonderlijk wordt gespecificeerd, bij voorkeur in afzonderlijke CSS-bestanden (bijv. Lay-out, kleuren en typografie). In het begin waren er alleen eenvoudige display-instructies, in de loop daarvan werden complexere modules toegevoegd. B. animaties en verschillende representaties kunnen worden gedefinieerd voor verschillende uitvoermedia.

Elementen van een document kunnen worden geïdentificeerd op basis van verschillende eigenschappen. Naast de elementnaam (bijv. a voor alle hyperlinks ), hun ID en hun positie binnen het document (bijv. alle afbeeldingselementen binnen linkelementen), omvat dit ook details zoals attributen (bijv. alle linkelementen waarvan href - Attribute begint met www.example.com ) of de positie in een reeks elementen (bijvoorbeeld elk oneven element in een lijst). CSS-instructies kunnen worden gebruikt om specificaties voor de weergave voor elke dergelijke elementgroep te definiëren. Deze specificaties kunnen centraal worden gemaakt, ook in aparte bestanden, zodat ze makkelijker kunnen worden hergebruikt voor andere documenten. CSS bevat ook een overervingsmodel voor opmaakkenmerken dat het aantal vereiste definities vermindert.

Met CSS kunnen verschillende representaties worden gespecificeerd voor verschillende uitvoermedia ( scherm , papier , projectie , taal ). Dit is handig om b.v. B. om de referentieadressen van hyperlinks te vermelden bij het afdrukken, en om weergaven te bieden voor apparaten zoals PDA's en mobiele telefoons met een klein beeldscherm of een lage beeldresolutie die smal genoeg en niet te hoog zijn om leesbaar te blijven op dergelijke apparaten.

CSS is de standaard stylesheettaal op het World Wide Web . Eerder gebruikelijke, presentatie-georiënteerde HTML-elementen, zoals font of center als "verouderd" ( Engels achterhaald) beschouwd, dat wil zeggen dat ze in de toekomst uit de HTML-standaard moeten worden verwijderd. [2] Zo zijn deze oa sinds HTML 4 (1997) als "ongewenst" en met HTML5 als afgekeurd ( Engels afgekeurd). [3]

Geschiedenis en versies

begin

Er was een eerste voorstel voor webstijlbladen in 1993, verscheidene anderen volgden tot 1995. Op 10 oktober 1994 publiceerde Håkon Wium Lie , een collega van Tim Berners-Lee bij CERN , het eerste voorstel voor "Cascading HTML-stijlbladen", [4] die hij later in het kort "CHSS" noemde. [5] Bert Bos werkte destijds aan de implementatie van een browser genaamd Argo , die een eigen stylesheet-taal gebruikte. De twee besloten samen CSS te ontwikkelen. In die tijd waren er ook andere talen met hetzelfde doel, maar de uitvinders van CSS waren de eersten die op het idee kwamen om regels te definiëren die over meerdere stylesheets en binnen één stylesheet beslissen welke CSS-opmaak van toepassing is op het betreffende element moet worden toegepast.

Nadat Lie CSS presenteerde op de " Mozaïek en het Web"-conferentie in Chicago in 1994 en later met Bos in 1995, werd het World Wide Web Consortium (W3C) zich bewust van CSS. Lie en Bos werkten in deze context samen met andere leden aan CSS. In december 1996 werd de CSS Level 1-aanbeveling gepubliceerd.

CSS2

CSS Level 2 (CSS2) werd in mei 1998 gepubliceerd. Tot begin 2010 werd deze aanbeveling echter door geen enkele populaire webbrowser volledig geïmplementeerd. Al in 2002 heeft het W3C gewerkt aan de herziene versie CSS Level 2 Revision 1 (CSS 2.1). [6] De ervaringen met CSS2 zijn hier opgenomen, inconsistenties zijn gecorrigeerd en enkele subtechnieken die in verschillende browsers niet correct waren geïmplementeerd, zijn verwijderd. Fundamenteel nieuwe vaardigheden werden niet opgenomen. 7 juni 2011 CSS 2.1 werd gepubliceerd als een volledige aanbeveling (Aanbeveling). [7] In 2014 verwerkten de meeste webbrowsers CSS 2.1 grotendeels correct, slechts enkele gedeeltelijke technologieën werden niet volledig ondersteund. Het eerste openbare werkconcept van CSS 2.2 werd in april 2016 gepubliceerd. [8e]

CSS3

CSS Level 3 is in ontwikkeling sinds 2000. [9] Dit is waar de ontwikkelingen die al zijn begonnen met CSS2 verder worden geduwd. In tegenstelling tot zijn voorgangers zal CSS3 een modulaire structuur hebben, waarmee individuele subtechnologieën (bijvoorbeeld aansturing van spraakoutput of selectors) in afzonderlijke versiestappen kunnen worden ontwikkeld. CSS ligt qua mogelijkheden dichter bij de gevestigde DSSSL (voor SGML ) en zal in de toekomst waarschijnlijk een alternatief blijven voor op XML gebaseerde stylesheettalen zoals XSL-FO . Standaarden die momenteel zijn gepubliceerd en breed worden ondersteund, zijn onder meer CSS Color Level 3 , CSS Namespaces , Selectors Level 3 en Media Queries . Naast deze modules komen ook andere elementen aan bod, zoals een opmaakmodule en diverse grafische filters . [10] Moderne browsers ondersteunden in 2014 al veel CSS3-modules, [11] hoewel er al een aanbeveling (aanbeveling) was ingediend door het W3C voor slechts een paar onderdelen. [10] In de loop van de tijd kwamen er steeds meer functies voor CSS, evenals aanbevelingen van het W3C.

In het voorjaar van 2012 werd gemeld dat het W3C al werkte aan een opvolger van CSS3, die met versienummer 4 zou moeten verschijnen. [12] In september 2012 maakten vertegenwoordigers van de CSS-werkgroep van het W3C duidelijk dat er geen versienummer 4 zou moeten zijn: “ Er zal nooit een CSS4 zijn ”. [13] Het is veeleer voor de toekomstige ontwikkeling van standaarden dat de afzonderlijke CSS-modules verder kunnen worden ontwikkeld onder eigen versienummers, terwijl de algemene standaard bedoeld is om de naam of alleen CSS3 CSS te behouden. [13]

syntaxis

De structuur van CSS-instructies

 Kiezer1 [, Kiezer2 [, ... ] ] {
    Eigenschap-1 : waarde-1 ;
    ...
    Eigenschap-n : waarde-n [; ]
}
/ * Commentaar * /
/ * Tussen vierkante haken staat optionele informatie * /

Een CSS-statement ( Engelse regel ) specificeert dat een combinatie van bepaalde eigenschappen van toepassing moet zijn op bepaalde delen van een document. Het wordt geschreven als een door komma's gescheiden lijst van selectors ("Voor dit soort onderdelen ...") , gevolgd tussen accolades door een door puntkomma's gescheiden lijst van eigenschapdeclaraties ("... gebruik de volgende eigenschappen!") . Elke eigenschapsdeclaratie bestaat uit de naam van de eigenschap, een dubbele punt en de waarde die deze moet aannemen. Na de laatste eigenschapsdeclaratie is een afsluitende puntkomma toegestaan ​​voor de afsluitende accolade, maar dit is niet noodzakelijk.

Rond deze delen van een instructie kan vrij worden gebruikgemaakt van witruimte . Vaak schrijft men de dubbele punt zonder spatie achter de eigenschapsnaam, elke eigenschapsdeclaratie in een aparte regel en sluit ook de laatste eigenschap af met een puntkomma. Dit betekent dat syntaxisfouten minder snel optreden als er later wijzigingen worden aangebracht. Mochten er echter syntaxisfouten optreden, dan kan een CSS-validator worden gebruikt om fouten te corrigeren. [14]

Een stylesheet kan een willekeurig aantal van dergelijke uitspraken bevatten. Onderstaande tabel bevat een compleet overzicht van alle selectors waarmee elementen (veelal HTML- elementen) geselecteerd kunnen worden.

Selectors

Een selector specificeert de voorwaarden die van toepassing moeten zijn op een element, zodat de volgende set CSS-declaraties en de bijbehorende presentatiespecificaties op het element worden toegepast. Dergelijke voorwaarden beschrijven duidelijk welke eigenschappen (type, klasse, ID, attribuut of attribuutwaarde) elementen moeten hebben of de context waarin ze in het document moeten staan ​​(bestaan ​​van een bepaald bovenliggend element of een voorgaand element van een bepaald type) zodat de beeldschermspecificaties moeten hierop van toepassing zijn. In een selector kunnen meerdere selectiecriteria worden gekoppeld.

sjabloon Betekenis: geselecteerd ... Versie definitie Uitleg
eenvoudige selectors
* elk element CSS2 Universele selector Universele selector
E elk element van het type E CSS1 Typekiezers Typekiezer
.c elk element van klasse c

(analoog aan [class~='c'] , in die zin dat klasse "c" wordt vermeld in de - andere klassen die ook de letter "c" in hun naam hebben, maar niet -)

CSS1 Klassenkiezers Klassenkiezer
#myid het element met de ID "myid"

(analoog aan [id='myid'] )

CSS1 en ID-kiezer
[foo] Elementen waarvan het attribuut "foo" is ingesteld

(ongeacht de waarde)

CSS2 Kenmerkkiezers Attribuut aanwezigheid
[foo=bar] Elementen waarvan het attribuut "foo" de waarde "bar" heeft gekregen CSS2 Attribuutwaarden
[foo~=bar] Elementen waarvan het attribuut "foo" het woord "bar" bevat

(bijv. "bar" of "bar quz", maar niet "barquz")

CSS2
[foo|=bar] Elementen waarvan het attribuut "foo" de tekenreeks "bar" is of begint met de tekenreeks "bar-" CSS2
[foo^=bar] Elementen waarvan het attribuut "foo" begint met de tekenreeks "bar" CSS3 Subtekenreeks overeenkomende kenmerkselectors Gedeeltelijke overeenkomsten
[foo$=bar] Elementen waarvan het attribuut "foo" eindigt met de tekenreeks "bar" CSS3
[foo*=bar] Elementen waarvan het attribuut "foo" de tekenreeks "bar" bevat CSS3
Combineren
EF alle elementen F die afstammelingen zijn van een element E. CSS1 Afstammeling selectors Afstammeling selector
E > F alle elementen F die een kind zijn van een element E. CSS2 Kindkiezers Kinderkiezer
E ~ F alle elementen F die een voorganger E op hetzelfde niveau hebben CSS3 Algemene broer/zus combinator Broer/zus selector
E + F alle elementen F die een directe voorganger E op hetzelfde niveau hebben CSS2 Aangrenzende combinator voor broers en zussen Burenkiezer
Pseudo-lessen
:link referenties nog niet bezocht CSS1 link pseudo-klassen Pseudo-lessen: link en: bezocht
:visited referenties al bezocht CSS1
:active het item waarop momenteel wordt geklikt CSS1 dynamische pseudo-klassen Pseudo-klassen: hover,: active en: focus
:hover het element waarop de muisaanwijzer zich bevindt CSS2
:focus het element dat de focus heeft gekregen (bijvoorbeeld door op de tab-toets te drukken) CSS2
:lang() Elementen waarvan de taal is opgegeven met het kenmerk "lang" CSS2 taal pseudo-klasse Pseudo-klasse: lang ()
:target het element dat het doel is van de link waarop u zojuist hebt geklikt CSS3 doel pseudo-klasse Pseudoklasse: doel
:enabled Elementen in gebruikersinterfaces die selecteerbaar zijn CSS3: ingeschakeld en: uitgeschakeld pseudo-klassen Pseudo-klassen: ingeschakeld,: uitgeschakeld en: aangevinkt
:disabled Interface-elementen die zijn vergrendeld CSS3
:checked Elementen van gebruikersinterfaces die zijn geselecteerd CSS3 : gecontroleerd pseudo-klasse
:not(foo) Items waarvoor "foo" niet van toepassing is CSS3 negatie pseudo-klasse Pseudo-klasse: niet ()
structurele pseudo-klassen
:first-child Elementen die het eerste onderliggende element zijn van hun bovenliggende element CSS2: eerste kind pseudo-klas Pseudoklasse: eerste kind
:last-child Elementen die het laatste onderliggende element zijn van hun bovenliggende element CSS3 : pseudo-klas van het laatste kind Pseudoklasse: laatste kind
:nth-child(…) Elementen die bijvoorbeeld het zoveelste kind zijn van hun bovenliggende element CSS3 : n-de-kind () pseudo-klasse Pseudo-klas: n-de kind ()
:nth-last-child(…) Elementen die bijvoorbeeld het n t laatste kind zijn van hun bovenliggende element CSS3 : n-de-laatste-kind () pseudo-klasse Pseudoklasse: n-de-laatste-kind ()
:only-child Elementen die het enige onderliggende element zijn van hun bovenliggende element CSS3 : enig-kind pseudo-klasse Pseudoklasse: enig kind
:first-of-type Elementen die het eerste element zijn van dit type van hun bovenliggende element CSS3 : first-of-type pseudo-klasse Pseudo-klasse: first-of-type
:last-of-type Elementen die het laatste element zijn van dit type van hun bovenliggende element CSS3 : first-of-type pseudo-klasse Pseudo-klasse: laatste-van-type
:nth-of-type(…) Elementen die het nde element zijn van dit type van hun bovenliggende element CSS3 : n-de-van-type () pseudo-klasse Pseudo-klasse: n-de-type ()
:nth-last-of-type(…) Elementen die het n t-laatste element zijn van dit type van hun bovenliggende element CSS3 : n-de-laatste-van-type () pseudo-klasse Pseudoklasse: n-de-laatste-van-type ()
:only-of-type Elementen die het enige element zijn van dit type van hun bovenliggende element CSS3 : alleen-van-type pseudo-klasse Pseudo-klasse: alleen-van-type
:root Wortelelement CSS3 : root pseudo-klasse Pseudoklasse: root
:empty Items die geen kinderen hebben CSS3 : lege pseudo-klasse Pseudo-klasse: leeg
Pseudo-elementen
::first-line eerste regel opgemaakte tekst CSS1 :: eerste regel pseudo-element Pseudo-element :: eerste regel
::first-letter eerste teken van de opgemaakte tekst CSS1 :: eerste letter pseudo-element Pseudo-element :: eerste letter
foo::before maakt een element aan het begin van het element "foo" (en selecteert het) CSS2 :: voor en :: na pseudo-elementen Pseudo-elementen :: voor en :: na
foo::after maakt een element aan het einde van het element "foo" (en selecteert het) CSS2

voorbeeld

Het CSS-boxmodel

CSS-code:

 blz . informatie {
	font-familie : arial , schreefloos ;
	lijnhoogte : 150 % ;
	marge-links : 2 em ;
	opvulling : 1 em ;
	rand : 3 px effen rood ;
	achtergrondkleur : # f89 ;
	weergave : inline-blok ;
}
blz . info span {
	lettergewicht : vet ;
}
blz . info span :: na {
	inhoud : ":" ;
}

HTML code:

 < p class = "info" >
	< span > opmerking </ span >
	Je bent succesvol ingelogd.
</ p >

De HTML- tags <p> en </p> definiëren de tekst ertussen als een alinea. Dit krijgt de klasse "info" toegewezen met zijn CSS-weergavespecificaties voor lettertype, frame, enz. Vanuit een CSS-compatibele browser wordt de alinea daarom als volgt weergegeven:

Alinea van tekst die is opgemaakt zoals gespecificeerd in de CSS hierboven.

Hier worden de declaraties toegewezen aan alle p elementen die het class attribuut met de waarde info . Zonder de p in de selector zouden alle elementen van de info klasse worden beïnvloed, zonder de .info zouden alle p elementen worden beïnvloed. span elementen binnen dergelijke paragrafen worden vet weergegeven; daarachter wordt een dubbele punt gegenereerd met het pseudo-element ::after .

Een belangrijk principe van CSS is de overerving van eigenschapswaarden aan ondergeschikte elementen en de combinatie van verschillende stylesheets, waarbij de laatste eigenschapdeclaratie voor een element eerdere declaraties van dezelfde eigenschap overschrijft met een andere waarde voor dit element. Deze kunnen uit verschillende bronnen komen: van de auteur van de stylesheet, van de browser ( user agent ) of van de gebruiker. De informatie van de browser wordt eerst geïmplementeerd, vervolgens de informatie die door de gebruiker wordt verstrekt en ten slotte de informatie die door de auteur wordt verstrekt.

Lay-outs maken met CSS

Voorheen werden elementen gerangschikt met behulp van het <table> -element. Hiervoor is de gehele website als tabel ingericht zodat de verschillende elementen geordend kunnen worden. Dit komt omdat CSS nog niet over de juiste eigenschappen beschikte om lay-outs te maken. Dit had veel nadelen, zoals een rigide website die niet responsive is .

Tegenwoordig zijn er verschillende manieren om lay-outs te maken:

  • Float is een CSS-eigenschap waarbij elementen andere elementen om hen heen laten stromen . [15]
  • Met Flexbox kunnen elementen naar wens worden opgesteld in een flexibele container. Een flexcontainer dient als basis. [16]
  • CSS-rasterlay- out wordt gekenmerkt door het verdelen van een pagina in hoofdgebieden of het definiëren van de relatie tussen delen van een besturingselement dat bestaat uit HTML-basiselementen in termen van grootte, positie en laag. [17]

Browsercompatibiliteit

De verschillende browsers verschillen sterk in de reikwijdte van de ondersteunde eigenschappen en de standaardweergaven van verschillende HTML-elementen. [18] Dit levert problemen op voor de ontwikkelaar, omdat hij niet alle functies volledig kan gebruiken en ervoor moet zorgen dat de website niet te veel verschilt tussen de afzonderlijke browsers. Er zijn verschillende manieren om dit probleem op te lossen: [19]

  • Een reset-stylesheet kan worden gebruikt om de verschillende CSS-standaardinstellingen opnieuw in te stellen en vervolgens uw eigen regels voor de elementen te declareren.
  • Voorwaardelijke opmerkingen zijn HTML-opmerkingen die alleen Internet Explorer kan begrijpen. Dit maakt optimalisatie voor deze browser veel gemakkelijker, omdat deze niet veel functies en eigenschappen ondersteunt.
  • Browserprefixen worden gebruikt om functies in oudere versies van de browser te gebruiken. Deze zijn alleen getest in de bijbehorende versies en pas later als standaard geïmplementeerd. Er zijn ook functies die alleen in de afzonderlijke browsers beschikbaar zijn. [11]

Een andere methode is CSS-hacks. [20] Deze gebruiken CSS-syntaxis om zwakke plekken in de browser te misbruiken bij het ontwerpen van weblay-outs.

CSS-hacks

CSS-hacks worden gebruikt om verschillen in de weergave van weblay-outs in verschillende browsers te compenseren of om CSS-instructies voor specifieke webbrowsers toe te wijzen of uit te sluiten. De term hack verwijst naar niet-gestandaardiseerde CSS-commando's die misbruik maken van de zwakke punten van een webbrowser die deze instructies interpreteert of negeert. Hiermee kunnen zwakke punten in webbrowsers worden gecompenseerd, zodat in elke webbrowser hetzelfde resultaat kan worden weergegeven.

Een CSS-hack combineert b.v. B. Onjuist gespecificeerde selectors met extra tekens of instructies bevatten die bepaalde webbrowsers niet kennen. Een bekend voorbeeld van een CSS hack is de zogenaamde star HTML hack. Het * -teken dient als universele selector en is zinloos voor de html selector.

Voorbeeld van CSS-code:

 p { achtergrondkleur : blauw ; }
* html p { achtergrondkleur : rood ; }

In dit geval zouden alle browsers in eerste instantie de p elementen met een blauwe achtergrond weergeven. Alleen Internet Explorer vóór versie 7 interpreteert ook de tweede regel en kleurt de alinea's rood, hoewel <html> geen bovenliggend element heeft waarop * toepassing kan zijn.

Combinatie met HTML of XHTML

Meestal wordt CSS gecombineerd met HTML of XHTML. Dit kan op meerdere plekken, hier een paar voorbeelden:

Als externe stylesheet voor een (X) HTML-bestand ( link element)
 < link rel = "stylesheet" type = "text / css" href = " example.css " />
Als externe stylesheet voor een XHTML-bestand (xml-stylesheet- verwerkingsinstructie )
 <? xml-stylesheet type = "text / css" href = "example.css"?>
Als interne stylesheet in een (X) HTML-bestand ( style element)
 < hoofd >
	< titel > document met opmaak </ titel >
	<Style type = "text / css">
		lichaam { kleur : paars ; achtergrondkleur : # d8da3d ; }
	</ stijl >
</ hoofd >
Binnen (X) HTML- tags ( style )
 < span style = "lettergrootte: klein;" > Tekst </ span >

De integratie als externe stylesheet is de meest gebruikte methode. Het heeft als voordeel dat de stylesheet maar één keer hoeft te worden gedownload voor meerdere documenten die dezelfde set regels gebruiken. Dit voorkomt ook repetitieve code. CSS zelf maakt de integratie van verdere externe stylesheets mogelijk met het @import commando.

 < hoofd >
	< titel > voorbeeld </ titel >
	<Style type = "text / css">
		@ import url ( url_des_stylesheets ) ;
	</ stijl >
</ hoofd >

Er zijn drie manieren om stylesheets te integreren met een link element. Ze verschillen in hoe strikt de stylesheets in aanmerking worden genomen:

Permanente stylesheets (permanent)
 < link rel = "stylesheet" type = "text / css" href = " example.css " />

Als je zo'n stylesheet toevoegt, wordt deze zeker gebruikt.

Voorkeursstijlbladen
 <Link rel = "stylesheet" type = "text / css" href = "beispiel.css" title = "Some Title" />

Als deze integratie wordt gebruikt, wordt de stylesheet gebruikt totdat de gebruiker een andere kiest.

Alternatieve stylesheets (alternatief)
 < link rel = "alternate stylesheet" type = "text / css" href = " example.css " title = "some title " />

Als de stylesheet op deze manier aan het HTML-document wordt gekoppeld, moet de gebruiker er expliciet voor kiezen om deze te gebruiken. Dit is van invloed op de meeste browsers (bijv. Internet Explorer , Firefox , Opera en Konqueror ). Deze functie wordt dus geïmplementeerd door de meest gebruikte browsers. Bovendien mag een "alternatieve stylesheet" alleen worden gebruikt in combinatie met een andere, permanent geïntegreerde, zodat het slechts een echt alternatief is.

Als alternatief is het ook mogelijk om de stylesheet dynamisch te integreren met JavaScript , maar het kan voorkomen dat de inhoud tijdens het laadproces korte tijd wordt weergegeven zonder de stijl, wat kan worden opgemerkt als Flash of Unstyled Content .

Specifieke stylesheets

Om specifieke apparaten of eigenschappen aan te pakken, zijn er speciale attributen in CSS. Sinds CSS2 kunnen geselecteerde apparaten worden aangesproken met mediaspecifieke stylesheets en sinds CSS3 alleen apparaten met bepaalde eigenschappen, bijvoorbeeld de schermbreedte, met eigenschapspecifieke stylesheets (mediaquery's). Mediaquery's zijn vooral belangrijk voor responsive webdesign .

Mediaspecifieke stylesheets

Het is mogelijk om verschillende stylesheets voor verschillende media te integreren, bijvoorbeeld om het ontwerp te regelen bij het printen of op displays van mobiele telefoons. Dit is het doel van het media attribuut. De parameters die van toepassing zijn op deze stylesheet worden vermeld in dit attribuut.

parameter betekenis
all Stylesheet is van toepassing op alle uitvoerapparaten
speech (CSS2: aural ) audio- uitvoerapparaten (bijv . schermlezers )
braille Braille- compatibele uitvoerapparaten
embossed Braille-compatibele printers
handheld Handhelds ( palmtops , PDA's , WinCE-apparaten )
print printer
projection Videoprojectoren , overheadprojectors
screen Schermen
tty Uitvoerapparaten met vaste tekentypes (bijv. verreschrijvers , terminals of zelfs oudere mobiele telefoons )
tv tv-toestellen
Voorbeeld van een @media opdracht in een CSS-bestand
 @ Media afdrukken {
	lichaam {
		kleur : zwart ;
		achtergrondkleur : wit ;
	}
	h1 {
		lettergrootte : 14 pt ;
	}
	. navigatie {
		weergave : geen ;
	}
}

Er kunnen verschillende @media commando's worden gebruikt om verschillende uitvoerapparaten aan te spreken binnen een CSS-bestand of een <style> -blok.

Voorbeeld van een media attribuut bij het opnemen van een CSS-bestand
 <Link rel = "stylesheet" type = "text / css" href = "beispiel.css" media = "print" />
Voorbeeld van een media attribuut van een <style> -blok
 < style type = "tekst / css" media = "print" >
	lichaam {
		kleur : zwart ;
		achtergrondkleur : wit ;
	}
	h1 {
		lettergrootte : 14 pt ;
	}
	. navigatie {
		weergave : geen ;
	}
</ stijl >

Aangezien veel moderne smartphones het handheld- type niet ondersteunen en in plaats daarvan de schermstijlspecificaties gebruiken, is men afhankelijk van "eigenschapspecifieke stijlbladen" (mediaquery's) .

Property-specifieke stylesheets (mediaquery's)

Media Queries is een concept dat werd geïntroduceerd met CSS3 en breidt het principe van het mediatype in CSS2 uit. In plaats van strak te definiëren welk medium het doelmedium is, kunnen de eigenschappen van het huidige apparaat direct worden opgevraagd met mediaquery's. Beschikbare apparaateigenschappen zijn bijvoorbeeld:

  • Breedte en hoogte van het browservenster
  • Breedte en hoogte van het apparaat
  • Oriëntatie (liggend of staand)
  • Schermresolutie

Vooral op het gebied van mobiele webprogrammering worden mediaquery's al vaak gebruikt om de website optimaal aan te passen aan het momenteel gebruikte apparaat.

In het volgende voorbeeld zijn elementen voorzien van CSS instructies . Deze instructies gelden voor het hele document. Er wordt dan een mediaquery gebruikt, die van kracht wordt zodra de breedte van het browservenster kleiner is dan 1025 pixels. In dit geval veranderen de eigenschappen die eerder algemeen gedefinieerd waren of zijn er aanvullende eigenschappen van toepassing.

 # inhoud {
	breedte : 800 px ;
}

@ Media scherm en (max-width: 1024px) {
	# inhoud {
		breedte : 600 px ;
	}

	opzij {
		weergave : geen ;
	}
}

Zie ook

literatuur

  • Ingo Chao, Corina Rudel: geavanceerde CSS-technieken . 3. Uitgave. Galileo Computing, Bonn 2012, ISBN 978-3-8362-1695-1 (gedetailleerde en veeleisende uitleg van CSS internals).
  • Florence Maurice: CSS3: de nieuwe functies voor geavanceerde webontwerpers . 2e editie. dpunkt.verlag, Heidelberg 2013, ISBN 978-3-86490-118-8 (innovaties in CSS3).

web links

Wikibooks: Website-ontwikkeling: CSS - leer- en lesmateriaal

Individueel bewijs

  1. Door David Flanagan: JavaScript. Het uitgebreide naslagwerk . 6e editie. O'Reilly, Keulen 2012, ISBN 3-86899-135-2 , blz.   1 (Engels: JavaScript. De definitieve gids . Vertaald door Lars Schulten, Thomas Demmig).

    "JavaScript maakt deel uit van de triade van technologieën die alle webontwikkelaars moeten leren: HTML om de inhoud van webpagina's te specificeren, CSS om de presentatie van webpagina's te specificeren en JavaScript om het gedrag van webpagina's te specificeren."

  2. HTML 4.0-specificatie, W3C-aanbeveling. Bijlage A: Wijzigingen tussen HTML 3.2 en HTML 4.0, A.1.2 Verouderde elementen. W3C, 18 december 1997, geraadpleegd op 15 november 2014 .
  3. HTML5 Differences from HTML4, W3C Working Draft. 3.5 Obsolete Elements. W3C, 18. September 2014, abgerufen am 15. November 2014 (englisch).
  4. Håkon Wium Lie: Cascading HTML style sheets -- a proposal. 10. Oktober 1994, abgerufen am 13. Oktober 2014 (englisch).
  5. Håkon Wium Lie: Cascading Style Sheets. (Nicht mehr online verfügbar.) Universität Oslo, 2005, archiviert vom Original am 4. Oktober 2014 ; abgerufen am 13. Oktober 2014 (englisch, Doktorarbeit von HW Lie).
  6. Cascading Style Sheets, level 2 revision 1. W3C Working Draft 2 August 2002. W3C, 2. August 2002, abgerufen am 6. Oktober 2014 (englisch).
  7. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. W3C Recommendation 07 June 2011. W3C, 7. Juni 2011, abgerufen am 6. Oktober 2014 (englisch).
  8. Cascading Style Sheets, level 2 revision 2 (CSS 2.2) Specification. W3C First Public Working Draft 12 April 2016. W3C, 12. April 2016, abgerufen am 1. Juli 2016 (englisch).
  9. CSS3 introduction W3C Working Draft, 14. April 2000. In: w3.org. W3C, abgerufen am 8. Juli 2010 (englisch).
  10. a b CSS current work & how to participate. CSS specifications. W3C, 25. September 2014, abgerufen am 6. Oktober 2014 (englisch).
  11. a b Can I use... Support tables for HTML5, CSS3, etc. Abgerufen am 14. Juni 2020 .
  12. Nicolai Schwarz: CSS4: So sieht die Zukunft des Webstandards aus. In: t3n Magazin . 5. September 2012, abgerufen am 21. November 2012 .
  13. a b Tob Atkins: A Word About CSS4. 5. September 2012, abgerufen am 8. September 2014 (englisch).
  14. The W3C CSS Validation Service. Abgerufen am 14. Juni 2020 (englisch).
  15. float – CSS. In: MDN. Abgerufen am 23. Januar 2021 .
  16. CSS/Tutorials/Flexbox/Flex-Container. In: SELFHTML-Wiki. Abgerufen am 22. Juni 2020 .
  17. CSS Grid Layout. Abgerufen am 22. Juni 2020 .
  18. Browserkompatibilität: Probleme mit der Darstellung von Webseiten in verschiedenen Browsern | Tipps zur Web-Usability. Abgerufen am 14. Juni 2020 .
  19. Browserkompatibilität | Interpretation von Websites. In: rankeffect MAG. 8. Mai 2018, abgerufen am 14. Juni 2020 (deutsch).
  20. Hugo Giraudel, Tim Pietrusky, Fabrice Weinberg: Browserhacks. Abgerufen am 14. Juni 2020 (englisch).