Ist es möglich bei <details> & <summary> den Marker (zum Beispl. mit einem SVG) zu ändern?
Ich möchte bei <details> & <summary> den Marker , der ja momentan noch ein aufrechters Dreieck ist , mit einem eigenen SVG ändern. Einmal hätte ich die einzelnen SVG (bars-solid.svg & times-solid.svg) in einem Ordner auf dem Server, aber ich habe dort auch Font Awesome 5.
Folgendes habe ich ausprobiert, hat aber leider keinen Effekt:
details summary::-webkit-details-marker {
background: url(../web-fonts/SVG/bars-solid.svg) center no-repeat;
color: transparent;
font-size: 2.1rem;
font-weight: bold;
}
details[open] summary::-webkit-details-marker,
details[open] summary::marker {
background: url(../web-fonts/SVG/times-solid.svg) center no-repeat;
color: transparent;
font-size: 2.1rem;
font-weight: bold;
}
Oder geht dies NUR mit einem ::after pseudo.element.
Könnt ihr mir es bitte mal zeigen?
<summary>Menü</summary>
<ul>
<li><a href="">Impressum & rechtliches</a></li>
<li><a href="">Website Erika Mustermann</a></li>
<li><a href="">Blog Max Mustermann</a></li>
<li><a href="">Blog Erika Mustermann</a></li>
</ul>
</details>
Zusätzlich zu diesem Sandwich-Button würde ich in kleiner
Schrift unter dem Botton dann noch Menü stehen haben.
Könnt ihr mir bitte helfen?
1 Antwort
Bei summary-Elementen handelt es sich (in der Darstellungsform) um Listitems. Daher kannst du ihren Marker entweder über das list-style-type-Property oder über das ::marker-Pseudeoelement (::-webkit-details-marker als Fallback für Safari) definieren.
Beispiel:
summary {
list-style-type: none;
}
summary::marker,
summary::-webkit-details-marker {
content: "+";
}
Die Marker agieren allerdings wie Inline-Elemente (deswegen wird so etwas wie ein Hintergrundbild nicht unterstützt) . Dieses Verhalten kann auch nicht geändert werden. Daher wäre es in deinem Fall besser, mit den Pseudoelementen ::after und ::before zu arbeiten.
Beispiel:
summary {
list-style-type: none;
}
summary::before {
background: red;
content: "";
display: inline-block;
height: 12px;
margin-right: 5px;
width: 12px;
}
Zusätzlich zu diesem Sandwich-Button würde ich in kleiner Schrift unter dem Botton dann noch Menü stehen haben.
Vermutlich ist es hierfür am besten, den Text via ::after-Element zu setzen. Das Pseudoelement selbst kannst du absolut positionieren.
summary {
position: relative;
}
summary::before {
/* ... */
}
summary::after {
content: "Menü";
font-size: 8px;
left: 0; /* still needs to be adjusted */
position: absolute;
top: 0; /* still needs to be adjusted */
}
Font Awesome-Icons würde ich als Textinhalt in Pseudoelemente einfügen.
content: "\f00d";
font-family: 'Font Awesome 5 Pro';
oder gar mit FONT-AWESOME
Wie wäre es richtig?