Nicht sicher, ob dies möglich ist oder nicht.Legen Sie CSS Atribute Selector auf: Ziel
Der Versuch, einen Attributselektor dynamisch auf das aktuelle Ziel zu setzen (ohne die Verwendung von JavaScript).
So etwas wie dieses CSS:
.tab[href=#:target] {
// styles here for active anchor tag
}
, wo die HTML (in Jade Syntax) ist:
.tab-group
a.tab(href="#tabA") Tab A
a.tab(href="#tabB") Tab B
a.tab(href="#tabC") Tab C
#tabA.target
.tab-content
h2 Tab A
#tabB.target
.tab-content
h2 Tab B
#tabC.target
.tab-content
h2 Tab C
Mit anderen Worten: Wie der Anker-Link wählen, die den aktuellen Hashtag gesetzt (mit reines CSS, kein JS).
Warum? Für CSS-only-Registerkarten, die den Pseudo-Selektor-Ansatz verwenden, der eine möglichst flexible HTML-Struktur ermöglicht.
Dies funktioniert nicht ohne ein sehr kleines bisschen Javascript, da das Ziel vollständig von anderen Elementen getrennt ist und nicht direkt eine Zeichenfolge ist, nach der Sie suchen können. Also würde ich 'document.body.setAttribute ('data-url-target', location.hash)' als einzelne Zeile von JS vorschlagen und dann '[data-url-target =" # ... "] verwenden. ..', um Stilauswahlregeln für jede mögliche ID zu erstellen. – somethinghere
Dies würde einen IDref-Kombinator erfordern, der vorgeschlagen, aber weggelassen wurde. Attributselektoren können nicht in der von Ihnen beschriebenen Weise parametrisiert werden. Jeder CSS-only-Ansatz würde voraussetzen, dass Annahmen über Ihren HTML-Code getroffen werden und nur sehr wenig Flexibilität zur Verfügung steht. – BoltClock
@BoltClock: Sehr hilfreich zu wissen. Es ist schade ... Es wäre wirklich nett, das ohne JS machen zu können. –