Wie verwende ich CSS, um ein Element nur dann auszuwählen, wenn ein bestimmtes Element hinter dem Element steht, das Sie auswählen möchten?

7

Mit CSS und dem folgenden Beispiel können Sie nur <p> , gefolgt von <ul> 's?

auswählen

Falls nicht, was ist der jQuery-Selektor oder würde es eine if -Anweisung erfordern?

%Vor%     
jonathanbell 22.01.2013, 23:20
quelle

5 Antworten

10

In CSS3 ist es nicht möglich, dass Sie nur das <ul> auswählen, das auf <p> folgt:

%Vor%

Es wird jedoch möglich sein, wenn Browser mit der Implementierung des CSS4-Subjektoperators beginnen:

%Vor%

In der Zwischenzeit müssen Sie jQuery verwenden und das DOM zurücklaufen lassen.

    
robertc 22.01.2013, 23:29
quelle
6

Nein, CSS wird dir dabei nicht helfen.

Was Sie brauchen, wäre ein vorheriger Geschwister-Selektor, der nicht existiert.

Sehen Sie sich das auch an: Gibt es einen CSS-Selektor für "vorhergehende Geschwister"?

    
Andrea Ligios 22.01.2013 23:23
quelle
5

Leider müssen Sie sich an Javascript wenden. Der nächste CSS-Selektor zu dem, was Sie wollen (nebengeordneten Selektor) würde das genaue Gegenteil von dem, was Sie wollen, tun. Zum Beispiel könnten Sie alle <ul> nach einem <p> wie folgt auswählen:

%Vor%

Sie können diese Auswahl jedoch in jQuery wie folgt treffen:

%Vor%

Also wähle zuerst alle <ul> unmittelbar nach <p> und dann die vorherige <p> von ihnen aus.

    
Mike Brant 22.01.2013 23:29
quelle
2

Ссылка

Würde so etwas für Sie funktionieren? Sie müssen möglicherweise eine Klasse zu P hinzufügen,

aber es sollte Ihnen erlauben, jedes ausgewählte Element der Klasse vor Uls

auszuwählen

Beispiel:

%Vor%     
IanO.S. 22.01.2013 23:28
quelle
1

Sie könnten auch einen leeren Bereich vor dem p, der vor der ul steht, setzen und folgendes auswählen:

%Vor%     
David Provost 23.06.2015 19:12
quelle

Tags und Links