In dem in den OP gegebenen Beispiel könntest du das :first-child
Regel entfernen und hinzufügen
#content {
margin-top: 1em;
}
Dies würde sich mit dem oberen Rand des h1
überlappen, wenn vor der Überschrift kein Text steht, ansonsten hätte das h1
einen separaten oberen Rand. Dann müsstest du nur den unteren Padding/Margin des vorangehenden Elements anpassen, damit dein #content
entsprechend positioniert wird, oder alternativ ein ::before
Pseudo-Element mit einem negativen Rand hinzufügen (der sich mit dem Container-Rand überlappt und aufhebt) um den Trick zu vollbringen:
#content:before {
display: block;
margin-top: -1rem;
content: ' ';
}
Beachte, dass wenn das h1
eine andere font-size
hat, dann wird 1em
auch anders sein, also müsstest du das berücksichtigen oder eine feste Einheit wie rem
oder px
verwenden.
(Das hilft mir in meinem Fall nicht - ich möchte einen oberen Rand zu einem float
ierten img
hinzufügen, wenn sich etwas Text davor im enthaltenden p
befindet [im von WordPress generierten Inhalt]. Aber Ränder von float
ierten Elementen überlappen nicht mit ihrem Container, und die allgemeine Antwort auf die Frage ist "nein, es gibt keinen solchen Selektor.")