Wenn ich ein Header-Tag habe <h1 class="hc-reform">title</h1>
h1.hc-reform{
float:left;
font-size:30px;
color:#0e73bb;
font-weight:bold;
margin:10px 0px;
}
und danach habe ich einen Absatz <p>stuff here</p>
.
Wie kann ich mithilfe von CSS sicherstellen, dass jedes <p>
Tag, das dem folgenden folgt h1.hc-reform
, verwendet wird:clear:both;
wäre das:
h1.hc-reform > p{
clear:both;
}
Aus irgendeinem Grund funktioniert das nicht.
html
css
css-selectors
siblings
Tony Noriega
quelle
quelle
p
, was gleich danach kommth1.hc-reform
. Andererseits ist es möglicherweise das einzige,clear: both
auf das angewendet werden muss, damit es funktioniert, da es einfach denh1
Float löscht , sodass es immer noch eine gültige Antwort ist.p
unmittelbar vorausgegangen isth1.hc-reform
(natürlich mit demselben übergeordneten Element).Sie können den Geschwister-Selektor verwenden
~
:Dadurch werden alle nachfolgenden
p
Elemente ausgewählt.hc-reform
, nicht nur das erste.quelle
nein
>
ist ein Kinderselektor.das, was du willst, ist
+
also versuche
h1.hc-reform + p
Browser-Unterstützung ist nicht großartig
quelle
Das
>
ist eine untergeordnete Auswahl . Wenn Ihr HTML also so aussieht:... dann ist das dein Ticket.
Aber wenn Ihr HTML so aussieht:
Dann möchten Sie den angrenzenden Selektor :
quelle
Nicht genau. Die
h1.hc-reform > p
Mittel „jedep
genau ein Niveau unterhalbh1.hc-reform
“.Was du willst ist
h1.hc-reform + p
. Dies kann natürlich in älteren Versionen von Internet Explorer zu Problemen führen. Wenn Sie die Seite mit älteren IEs kompatibel machen möchten, müssen Sie entweder manuell eine Klasse zu den Absätzen hinzufügen oder JavaScript verwenden (in jQuery können Sie beispielsweise so etwas tun$('h1.hc-reform').next('p').addClass('first-paragraph')
).Weitere Informationen: http://www.w3.org/TR/CSS2/selector.html oder http://css-tricks.com/child-and-sibling-selectors/
quelle