I am trying to add a vertical line along first li elements when they are expanded and remove when they are closed but its not coming out. Will li::after not do the job?. please help me with this.
This vertical line should be along the first level of heirarchy only
I have created a treeview with three list items and shown the implemeted code to which i have to apply vertical lines
JavaScript
x
9
1
var toggler = document.getElementsByClassName("caret");
2
var i;
3
4
for (i = 0; i < toggler.length; i++) {
5
toggler[i].addEventListener("click", function() {
6
this.parentElement.querySelector(".nested").classList.toggle("active");
7
this.classList.toggle("caret-down");
8
});
9
}
JavaScript
1
41
41
1
ul, #main {
2
list-style-type: none;
3
}
4
5
#myUL {
6
margin: 0;
7
padding: 0;
8
9
}
10
li::after{
11
border-left 1px solid black;
12
}
13
.caret {
14
cursor: pointer;
15
-webkit-user-select: none;
16
-moz-user-select: none;
17
-ms-user-select: none;
18
}
19
20
.caret::before {
21
content: "25B6";
22
color: black;
23
display: inline-block;
24
margin-right: 6px;
25
}
26
27
.caret-down::before {
28
-ms-transform: rotate(90deg);
29
-webkit-transform: rotate(90deg);
30
transform: rotate(90deg);
31
}
32
33
.nested {
34
display: none;
35
border-left 1px solid #000
36
}
37
38
.active {
39
display: block;
40
border-left 1px solid #000
41
}
JavaScript
1
18
18
1
<ul id="main">
2
<li><span class="caret">First</span>
3
<ul class="nested">
4
<li>sub1</li>
5
<li>sub2</li></ul>
6
<li><span class="caret">Second</span>
7
<ul class="nested">
8
<li>sub1</li>
9
<li>sub2</li></ul>
10
<li><span class="caret">Third</span>
11
<ul class="nested">
12
<li>sub1</li>
13
<li>sub2</li>
14
</ul>
15
</li>
16
</li>
17
</li>
18
</ul>
Advertisement
Answer
You can do it with .nested.active
css rule like below:
You should add below css:
JavaScript
1
4
1
.nested.active{
2
border-left:1px solid red;
3
}
4
Its added in this snippet:
JavaScript
1
9
1
var toggler = document.getElementsByClassName("caret");
2
var i;
3
4
for (i = 0; i < toggler.length; i++) {
5
toggler[i].addEventListener("click", function() {
6
this.parentElement.querySelector(".nested").classList.toggle("active");
7
this.classList.toggle("caret-down");
8
});
9
}
JavaScript
1
44
44
1
ul, #main {
2
list-style-type: none;
3
}
4
5
#myUL {
6
margin: 0;
7
padding: 0;
8
9
}
10
li::after{
11
border-left 1px solid black;
12
}
13
.caret {
14
cursor: pointer;
15
-webkit-user-select: none;
16
-moz-user-select: none;
17
-ms-user-select: none;
18
}
19
20
.caret::before {
21
content: "25B6";
22
color: black;
23
display: inline-block;
24
margin-right: 6px;
25
}
26
27
.caret-down::before {
28
-ms-transform: rotate(90deg);
29
-webkit-transform: rotate(90deg);
30
transform: rotate(90deg);
31
}
32
33
.nested {
34
display: none;
35
border-left 1px solid #000
36
}
37
38
.active {
39
display: block;
40
border-left 1px solid #000
41
}
42
.nested.active{
43
border-left:1px solid red;
44
}
JavaScript
1
18
18
1
<ul id="main">
2
<li><span class="caret">First</span>
3
<ul class="nested">
4
<li>sub1</li>
5
<li>sub2</li></ul>
6
<li><span class="caret">Second</span>
7
<ul class="nested">
8
<li>sub1</li>
9
<li>sub2</li></ul>
10
<li><span class="caret">Third</span>
11
<ul class="nested">
12
<li>sub1</li>
13
<li>sub2</li>
14
</ul>
15
</li>
16
</li>
17
</li>
18
</ul>