Ich mag wirklich die Lösung von Broken Arrow oben in diesem Beitrag. Ich habe es nur verbessert/verändert, so dass das, was als Labels bezeichnet wurde, umgeschaltet werden kann und nicht als Optionen betrachtet wird. Ich habe ein kleines Stück jQuery verwendet, aber das könnte auch ohne jQuery erfolgen.
Ich habe Zwischenlabels (keine Blattlabels) durch Links ersetzt, die beim Klicken eine Funktion aufrufen. Diese Funktion ist dafür zuständig, das nächste div des angeklickten Links umzuschalten, sodass es die Optionen erweitert/zusammenklappt. Dies vermeidet die Möglichkeit, ein Zwischenelement in der Hierarchie auszuwählen, was normalerweise erwünscht ist. Eine Variante, die es ermöglicht, Zwischenelemente auszuwählen, sollte einfach sein.
Das ist das modifizierte HTML:
Frucht
Apfel
Banane
Orange
Getränk
Wasser
Soft
Cola
Soda
Zitronenlimonade
Hart
Bier
Whisky
Wodka
Gin
Ein kleines JavaScript/jQuery Funktion:
function toggleDiv(element) {
$(element).next('div').toggle('medium');
}
Und das CSS:
.NestedSelect {
display: inline-block;
height: 100%;
border: 1px Black solid;
overflow-y: scroll;
}
.NestedSelect a:hover, .NestedSelect span:hover {
background-color: #0092ff;
color: White;
cursor: pointer;
}
.NestedSelect input[type="radio"] {
display: none;
}
.NestedSelect input[type="radio"] + span {
display: block;
padding-left: 0px;
padding-right: 5px;
}
.NestedSelect input[type="radio"]:checked + span {
background-color: Black;
color: White;
}
.NestedSelect div {
display: none;
margin-left: 15px;
border-left: 1px black
solid;
}
.NestedSelect label > span:before, .NestedSelect a:before{
content: '- ';
}
.NestedSelect a {
display: block;
}
Laufendes Beispiel in JSFiddle
0 Stimmen
Hinzugefügt dieses Thema als Vorschlag an das HTMLWG: github.com/whatwg/html/issues/5789