DEV Community

Discussion on: How to change details label when open/closed without JavaScript

Collapse
 
violet profile image
Elena

Well, content in css is not that great especially when your dealing with translations. I guess a simple way to do it is to have 2 <span>s and toggle them depending on the open attribute, but I do agree it's not ideal.

Collapse
 
rouilj profile image
John P. Rouillard

Ah interesting interesting idea. So:

 <details>
   <summary>
    <span class="open">open text</span>
    <span class="closed">closed text</span>
  </summary>
  ...
</details>
Enter fullscreen mode Exit fullscreen mode

with:

details summary span.open {display:none;}
details[open] summary span.open {display:inline}
details[open] summary span.closed {display:none}
Enter fullscreen mode Exit fullscreen mode

Nice idea.

Collapse
 
violet profile image
Elena

Nice. For some reason I was thinking on a js solution, but this css solution most definitely works too.

Thread Thread
 
rouilj profile image
John P. Rouillard

Hi Elena:

Yeah, I try to stay away from JS whenever possible. Using CSS and HTML provides better performance.

Removing JS whenever possible makes the web less fragile.

Hence the original reason for the post. Plus this is probably more accessible as well.

-- rouilj