HTML nur Überschriften zeigen
bearbeitet von
Hallo Linuchs,
ein style Element im Body funktioniert, ist aber nicht standardkonform.
Meine Anregung wäre, es über eine Klasse zu steuern. So:
~~~css
.outlinemode > :not(:is(h1,h2,h3,h4,h5,h6)),
.outlinemode :not(:is(h1,h2,h3,h4,h5,h6)) * {
display: none;
}
.outlinemode :is(h1,h2,h3,h4,h5,h6) {
font-size: 1em;
font-weight: normal;
margin: 0;
padding: 0;
}
.outlinemode h2 {
margin-left: 1em;
}
~~~
Die :is Pseudoklasse erspart Dir eine lange kommaseparierte Liste von Selektoren. Mit dem Margin an tieferen Überschriften hast Du auch gleich eine eingerückte Gliederung.
Du musst dann nur die outlinemode Klasse hinzufügen. Entweder auf dem Body, oder auf dem .main Element. Zum Entfernen F5 drücken 😉 - oder dafür sorgen, dass der Toggle-Button nicht vom Outline gefressen wird.
Um sicher zu sein, dass deine Regeln Vorrang haben, ohne dass Du mit Atombomben werden musst, kannst Du versuchen, mit [@layer](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer) zu arbeiten. Der Fuchs kann das schon, Chrome auch, Edge angeblich nicht obwohl er doch verchromt wurde.
_Rolf_
--
sumpsi - posui - obstruxi