Kann CSS: nicht Selektor Ziel: vor und: nach Selektoren

8

Ich möchte CSS verwenden: not (), um den Vorher-Selektor zu targetieren. Ist das möglich?

Beispiel: Ссылка

%Vor%     
David.J 16.11.2015, 12:32
quelle

1 Antwort

3
  

Laut W3C-Spezifikation :

     

Die Negations-Pseudoklasse,: not (X), ist eine funktionale Notation, die einen einfachen Selektor (mit Ausnahme der Negations-Pseudoklasse selbst) als Argument verwendet. Es stellt ein Element dar, das nicht durch sein Argument repräsentiert wird.

     

Ein einfacher Selektor ist entweder ein Typselektor, ein universeller Selektor, ein Attributselektor, ein Klassenselektor, ein ID-Selektor oder eine Pseudo-Klasse.

Wie Sie aus den obigen Anweisungen sehen können, verwendet :not() nur einen einfachen Selektor als Argument, und Pseudoelemente fallen nicht unter die einfache Selektorkategorie. Also, nein, Sie können nicht erreichen, was Sie auf die Art versuchen, wie Sie es versuchen.

Eine Möglichkeit, den Standardinhalt des Elements auszublenden, aber den Inhalt des Pseudo-Elements anzeigen zu lassen, wäre font-size: 0px auf dem Element zu setzen und es dann innerhalb des Selektors des Pseudo-Elements in die gewünschte Größe zu überführen unter Schnipsel:

%Vor% %Vor%

Hinweis: Wie von Rob in seinen Kommentaren zu der Frage hervorgehoben, ist es besser, die Syntax :: (doppelter Doppelpunkt) für zukünftige Pseudoelemente zu verwenden. Entwickler neigen dazu, bei der : (einzelner Doppelpunkt) -Version zu bleiben, wenn IE8-Unterstützung erforderlich ist, aber da Microsoft selbst die Unterstützung dafür im Januar '16 gestoppt hat, könnte es der richtige Zeitpunkt sein, die doppelte Doppelpunktsyntax zu verwenden. Aber die Wahl liegt beim Entwickler, nur für den Fall, dass Sie einen Client haben, der noch IE8-Unterstützung benötigt.

Das ist das, was die Selectors Spec dazu sagen muss:

>
  

Ein Pseudo-Element besteht aus zwei Doppelpunkten (: :) gefolgt vom Namen des Pseudo-Elements.

     

Diese Notation wird vom aktuellen Dokument eingeführt, um eine Unterscheidung zwischen Pseudoklassen und Pseudoelementen zu erreichen. Aus Gründen der Kompatibilität mit vorhandenen Stylesheets müssen Benutzeragenten auch die vorherige Ein-Punkt-Notation für Pseudoelemente akzeptieren, die in den CSS-Ebenen 1 und 2 eingeführt wurden (nämlich: erste Zeile,: erster Buchstabe,: vor und: nach). Diese Kompatibilität ist für die neuen Pseudoelemente, die in dieser Spezifikation eingeführt werden, nicht erlaubt.

    
Harry 16.11.2015, 13:05
quelle

Tags und Links