Gibt es eine einfache Möglichkeit, alle Elemente auf Blockebene mit CSS auszuwählen?Alle Elemente auf Blockebene mit CSS auswählen
Ich mag im Hauptinhaltsbereich von meiner Seite
Ich habe Gerade jetzt zwischen allen Block-Level-Elementen am 1.5 em Rand setze Code wie:
#wrapper .content p, #wrapper .content ul, #wrapper .content div, #wrapper .content ol, #wrapper .content blockquote, #wrapper .content table {margin-top: 1.5em;}
#wrapper .content p:first-child, #wrapper .content ul:first-child, #wrapper .content div:first-child, #wrapper .content ol:first-child, #wrapper .content blockquote:first-child, #wrapper .content table:first-child {margin-top: 1.5em;}
, die einen königlichen Schmerz in der ist zu lesen oder zu halten hinten ...
ich mag es mit etwas ersetzen, wie:
#wrapper .content *:block + *:block {margin-top: 1.5em;}
Ist das möglich?
Ich kann * + *
nicht verwenden, weil das auch Inline-Elemente, Tabellenzellen usw. fangen wird, und ich möchte nicht zufällige Ränder in der Mitte von Absätzen angewendet werden. Ich kann auch nicht #wrapper .content > *
verwenden, weil dann verschachtelt wird div
usw.
Ich denke, Inline-Elemente werden Ränder ignorieren, nicht? –
@George Garchagudashvili: Nicht genau. Vertikale Ränder bei Inline-Elementen können sich auf Grundlinienberechnungen auswirken, was katastrophale Auswirkungen auf alle Teile des Layouts haben kann, die auf Inline-Blöcken oder -Tabellen basieren. – BoltClock
Ihre Anforderung ist seltsam, aber nicht unmöglich. Ich würde eher vorschlagen, dass Sie den Elementen bestimmte Elemente zuweisen, für die Sie einen "Rand" benötigen, oder wenn Sie sicher sind, alle Blockelemente anzusteuern, als sie besser in Ihrem Stylesheet aufzulisten und ihnen einen Rand zuzuweisen –