Startpagina » Coding » Een kijkje in CSS3 Ontkenning (NIET) Selector

    Een kijkje in CSS3 Ontkenning (NIET) Selector

    Dit artikel maakt deel uit van ons "HTML5 / CSS3 Tutorials-serie" - toegewijd om u een betere ontwerper en / of ontwikkelaar te maken. Klik hier om meer artikelen uit dezelfde serie te zien.

    CSS heeft een aantal selectors waarmee je elementen in bepaalde omstandigheden kunt selecteren, zoals : hover, :focus, :actief, enz. Maar vandaag behandelen we die selectors niet. We zullen kijken naar een die nog steeds een weinig bekende methode is maar door de meeste webontwerpers wordt gebruikt - dat is de :niet selector of ook bekend als negatie-selector.

    Wat doet het?

    Ik weet zeker dat de :niet naam zelf heeft zijn functie al beschreven, die hij eenvoudigweg zal selecteren het tegenovergestelde van het opgegeven element of de opgegeven voorwaarde. Bijvoorbeeld:

    Deze syntaxis selecteert elk ander element dan p (Paragraaf).

     : Niet (p) 

    Terwijl de onderstaande syntaxis van het voorbeeld de div element dat dat wel doet niet heb klas abc

     div: niet (.abc) 

    Oké, laten we deze selector in een echt voorbeeld proberen:

    Laten we eerst een paar alinea's maken met een paar links van Wikipedia en enkele links met fictieve domeinen. Hier is de HTML-markering voor de alinea.

     

    De CSS: niet Selector Demo

    Jujubes applicake sesame knapt chupa chups chocoladetaart. Haver taart marshmallow wypas toffee donut taart. Chupa chups jelly cupcake gummi bears. De citroen laat vallen cakewafeltje.

    Cheesecake chocoladetaart donut gelei zoet broodje poeder soufflà ??  © chocoladecake. Wypas suikerspin citroen daalt koekje snoep donut bonbon marsepein. Makaron snoep zoethout jelly-o. Chocolade taart zoet broodje snoep heemst drag ??  © e suikerspin brownie marshmallow.

    Pudding topping marshmallow beer klauw. Pie muffin gebak gummies fruitcake brownie jelly gingerbread sesame snaps. Snoep pudding cupcake beer klauw. Worteltaart muffin suikerspin tootsie roll muffin. Jelly beans tart dragà ??  © e zoete glazuur chocolade reep met toplaag. Zoet broodje toffee suiker pruim gebak dragà ??  ?? Ã' © e bonbon snoep muffin.

    Taartmarsepein-gebak Wypas fruitcake. Haver cake chocolade wypas dragà ??  © e suiker pruim worteltaart ijsvorming. Karamels chocolade bar croissant wafer cupcake taart jujubes chocoladereep. Biscuit snoeprietjes dragà ??  © e.Candy brownie haver taart sesam snaps cheesecake poeder tootsie roll biscuit beer klauw. Soufflà ¥  © gummi draagt ​​jelly beans sesame snaps faworki koekje dessert zoet bonbon.

    Het plan is hier: we selecteren alleen de links die niet naar Wikipedia verwijzen en geven die links een uitroepteken om aandacht te vestigen op die links.

    Eerst voegen we een toe :na pseudo-element op alle links om het merk te plaatsen, en we definiëren het als een inline-block element.

     a: na display: inline-block; 

    Om vervolgens elke link te selecteren die niet naar Wikipedia verwijst, combineren we de :niet selector met een attribuutselector. De attribuutselector selecteert hier elke ankertag waarmee het href-kenmerk begint http://en.wikipedia.org/ en door het te combineren met de :niet, het zal natuurlijk het tegenovergestelde selecteren. Hier gaan we:

     a: not ([href ^ = "http://en.wikipedia.org/")): after background-colour: # F8EEBD; rand: 1px vast # EEC56D; grensradius: 3px 3px 3px 3px; kleur: # B0811E; inhoud: "!"; lettergrootte: 10pt; marge links: 5px; opvulling: 1px 6px; positie: relatief; 

    Het werkt! De ankertags die niet verwijzen naar Wikipedia hebben nu een uitroepteken.

    Chrome-bug

    Als u dit in Chrome bekijkt, ziet u dat het gerenderde effect niet hetzelfde is als het bovenstaande. Alle links lijken een uitroepteken te hebben, ongeacht de URL.

    Deze zaak is eigenlijk als een bug aangepakt. Om deze bug te verhelpen, moeten we deze regel toevoegen.

     a [href ^ = "http://en.wikipedia.org/"] / * Chrome-hack * / weergeven: inline-block; 

    En nu zou het probleem opgelost moeten zijn.

    • demonstratie

    Conclusie

    In sommige omstandigheden met behulp van de :niet selector is echt de meest effectieve optie, net als het bovenstaande voorbeeld, waar we enkele willekeurige elementen kunnen selecteren zonder zelfs onnodige klasse toe te voegen, of extra markup naar het document.

    Je kunt echt geweldige effecten bouwen door deze selector te gebruiken, en dit is een voorbeeld: Filterfunctionaliteit met CSS3