Het verschil tussen CSS2 en CSS3
De belangrijkste wijzigingen in CSS3 begrijpen
InhoudsopgaveUitbreiden- Nieuwe CSS3-kiezers geïntroduceerd
- Nieuwe CSS-eigenschappen in CSS3
- Meerdere achtergrondafbeeldingen
- Nieuwe eigenschappen voor achtergrondstijl
- Wijzigingen in bestaande achtergrondstijleigenschappen
- CSS3 Nieuwe randeigenschappen en stijlen
- Nieuwe randstijleigenschappen
- Meer rand- en achtergrondeigenschappen
- Nieuwe eigenschappen voor het definiëren van kolomnummer en -breedte
- CSS3-kolomhiaten en regels
- CSS3 Nieuwe opties voor het doorbreken van kolommen
- Meer nieuwe functies in CSS3
Het grootste verschil tussen CSS2 en CSS3 is dat CSS3 is opgesplitst in verschillende secties, genaamd modules . Elk van deze modules baant zich een weg door het W3C in verschillende stadia van het aanbevelingsproces. Dit proces heeft het veel gemakkelijker gemaakt voor verschillende stukken CSS3 om door verschillende fabrikanten in de browser te worden geaccepteerd en geïmplementeerd.
Als je dit proces vergelijkt met wat er gebeurde met CSS2, waar alles werd ingediend als een enkel document met alle Trapsgewijze stijlbladen informatie erin, begint u de voordelen te zien van het opsplitsen van de aanbeveling in kleinere, afzonderlijke stukjes. Omdat aan elk van de modules afzonderlijk wordt gewerkt, genieten ontwikkelaars van een veel breder scala aan browserondersteuning voor CSS3-modules.
Nieuwe CSS3-kiezers
CSS3 biedt verschillende nieuwe manieren om CSS-regels te schrijven met nieuwe CSS-selectors, evenals een nieuwe combinator en enkele nieuwe pseudo-elementen.
Er zijn drie nieuwe kenmerkselectors:
- Het hoofdelement van het document.
- Gebruik dit om exacte onderliggende elementen te matchen of gebruik variabelen om afwisselende matches te krijgen.
- Match exacte onderliggende elementen die optellen vanaf de laatste.
- Combineer broer of zus-elementen met dezelfde naam ervoor in de documentstructuur.
- Combineer broer of zus-elementen met dezelfde naam vanaf de onderkant.
- Overeenkomen met de laatste onderliggende element van de ouder.
- Overeenkomen met het eerste broer of zus-element van dat type.
- Overeenkomen met het laatste broer of zus-element van dat type.
- Overeenkomen met het element dat het enige kind is van zijn bovenliggende element.
- Zoek het element dat het enige in zijn soort is.
- Overeenkomen met het element dat geen kinderen heeft (inclusief tekstknooppunten).
- Overeenkomen met een element dat het doel is van de verwijzende URI.
- Overeenkomen met het element wanneer het is ingeschakeld.
- Overeenkomen met het element wanneer het is uitgeschakeld.
- Overeenkomen met het element wanneer het is aangevinkt (keuzerondje of selectievakje).
- Match wanneer het element niet overeenkomt met de simple selectors .
- Match wanneer elementB ergens na elementA volgt, niet noodzakelijk onmiddellijk.
- Deze eigenschap definieert hoe de achtergrondafbeelding moet worden bijgesneden. De standaard is de border-box, maar deze kan worden gewijzigd in de padding box of de content box.
- Deze eigenschap bepaalt of de achtergrond in het opvulvak, het randvak of het inhoudvak moet worden geplaatst.
- Deze eigenschap geeft de grootte van de achtergrondafbeelding . Het stelt je in staat om kleinere afbeeldingen uitrekken zodat ze op de pagina passen .
- Er zijn twee nieuwe waarden voor deze eigenschap: ruimte en ronde . Ruimte verdeelt de betegelde afbeelding gelijkmatig in de doos zonder te worden bijgesneden. Met Round wordt de achtergrondafbeelding opnieuw geschaald, zodat deze een geheel aantal keren in het vak wordt weergegeven.
- Er wordt een nieuwe waarde 'local' toegevoegd, zodat de achtergrond meeschuift met de inhoud van het element wanneer dat element een schuifbalk heeft.
- De steno-eigenschap op de achtergrond voegt de eigenschappen size en origin toe.
- grens-rechtsboven-radius , grens-rechtsonder-radius , grens-linksonder-radius , border-top-links-radius
- Met deze eigenschappen kunt u afgeronde hoeken aan uw randen maken.
- Specificeert het afbeeldingsbronbestand dat moet worden gebruikt in plaats van reeds gedefinieerde randstijlen.
- Vertegenwoordigt de binnenwaartse verschuivingen van de randen van de randafbeelding.
- Definieert de waarde van de breedte voor uw randafbeelding.
- Specificeert de mate waarin het gebied van de randafbeelding zich buiten het kaderkader uitstrekt.
- Definieert hoe de zijkanten en het midden van de randafbeelding moeten worden betegeld of geschaald.
- De steno-eigenschap voor alle eigenschappen van de randafbeelding.
- Definieert de breedte van uw kolommen. De browser laat de tekst dan doorstromen om de ruimte te vullen met kolommen die zo breed zijn.
- Definieert het aantal kolommen op de pagina. De browser maakt dan kolommen die breed genoeg zijn om in de ruimte te passen, maar alleen het aantal dat u opgeeft.
- Shorthand-eigenschap waar u de breedte of het aantal kunt definiëren (of beide, maar dat is zelden logisch).
- Definieert de breedte van de openingen tussen de kolommen.
- Definieert de kleur van de regel.
- Definieert de stijl van de regel (vast, gestippeld, dubbel, enz.).
- Definieert de breedte van de regel.
- Een steno-eigenschap die alle drie de eigenschappen van de kolomregel in één keer definieert.
Er zijn 16 nieuwe pseudo-klassen geïntroduceerd:
Er is een nieuwe combinator:
Nieuwe eigenschappen
CSS3 introduceerde ook verschillende nieuwe CSS-eigenschappen. Veel van deze eigenschappen creëren visuele stijlen die waarschijnlijk meer geassocieerd zouden worden met een grafisch programma zoals Photoshop . Sommige hiervan, zoals border-radius of box-shadow, bestaan al sinds de introductie van CSS3. Anderen, zoals flexbox of zelfs CSS Raster zijn nieuwere stijlen die nog steeds vaak als CSS3-toevoegingen worden beschouwd.
In CSS3 is het boxmodel niet veranderd. Maar er zijn een aantal nieuwe stijleigenschappen die u kunnen helpen bij het opmaken van de achtergronden en randen van uw kaders.
Meerdere achtergrondafbeeldingen
Met behulp van de stijlen achtergrondafbeelding, achtergrondpositie en achtergrondherhaling kunt u in het vak meerdere achtergrondafbeeldingen opgeven die op elkaar moeten worden gelaagd. De eerste afbeelding is de laag die zich het dichtst bij de gebruiker bevindt, met de volgende erachter geschilderd. Als er een achtergrondkleur is, wordt deze onder alle afbeeldingslagen geschilderd.
Nieuwe eigenschappen voor achtergrondstijl
Er zijn ook enkele nieuwe achtergrondeigenschappen in CSS3:
Wijzigingen in bestaande achtergrondstijleigenschappen
Er zijn ook enkele wijzigingen in bestaande eigenschappen voor achtergrondstijlen:
CSS3-randeigenschappen
In CSS3 kunnen randen de stijlen zijn die we gewend zijn (vast, dubbel, gestreept, enz.) of ze kunnen een afbeelding zijn. Bovendien ondersteunt CSS3 afgeronde hoeken. Randafbeeldingen zijn interessant omdat u een afbeelding van alle vier de randen maakt en vervolgens de CSS vertelt hoe die afbeelding op uw randen moet worden toegepast.
Nieuwe randstijleigenschappen
Er zijn enkele nieuwe randeigenschappen in CSS3:
Aanvullende CSS3-eigenschappen met betrekking tot randen en achtergronden
Wanneer een kader wordt afgebroken bij een pagina-einde, kolomeinde of regeleinde (voor inline-elementen), wordt de doos-decoratie-break eigenschap definieert hoe de nieuwe vakken worden omwikkeld met rand en opvulling. Achtergronden verdelen over verschillende gebroken dozen met behulp van deze eigenschap.
een nieuwe doos-schaduw eigenschap voegt schaduwen toe aan vakelementen.
Met CSS3 kunt u nu eenvoudig een webpagina met meerdere kolommen opzetten zonder tabellen of ingewikkeld div tag structuren. U vertelt de browser eenvoudig hoeveel kolommen het body-element moet hebben en hoe breed ze moeten zijn. Bovendien kunt u randen (regels) en achtergrondkleuren toevoegen die de hoogte van de kolom overspannen, en uw tekst zal automatisch door alle kolommen stromen.
Definieer het aantal en de breedte van de kolommen
Er zijn drie nieuwe eigendommen waarmee u het aantal en de breedte van uw kolommen kunt definiëren:
CSS3-kolomhiaten en regels
Hiaten en regels worden tussen kolommen geplaatst in hetzelfde scenario met meerdere kolommen. Hiaten duwen de kolommen uit elkaar, maar regels nemen geen ruimte in beslag. Als een kolomregel breder is dan de opening, overlapt deze aangrenzende kolommen. Er zijn vijf nieuwe eigenschappen voor kolomregels en hiaten:
CSS3-kolomafbrekingen, kolommen overspannen en kolommen vullen
Kolom pauzes gebruiken dezelfde CSS2-opties die worden gebruikt om pauzes in pagina-inhoud te definiëren, maar met drie nieuwe eigenschappen: break-before , pauze na , en inbraak .
Net als bij tabellen, kun je elementen instellen om kolommen te overspannen met de eigenschap column-span. Hiermee kunt u koppen maken die meerdere kolommen beslaan, meer als een krant.
Het vullen van kolommen bepaalt hoeveel inhoud in elke kolom zal staan. Gebalanceerde kolommen proberen dezelfde hoeveelheid inhoud in elke kolom te plaatsen, terwijl automatisch de inhoud naar binnen stroomt totdat de kolom vol is en dan naar de volgende gaat.
Meer functies in CSS3 die niet zijn opgenomen in CSS2
Er zijn veel extra functies in CSS3 die niet bestonden in CSS2, waaronder: