Natürlich geht das inzwischen mit HTML und CSS. Ich mache sogar recht viel mit dieser Technik.
Und zwar wird der Status z.B. eingeklappt/ausgeklappt in einer checkbox gespeichert. Und mit CSS gibt man die Regeln an, die bei :checked gelten sollen.
<input id="klapper" type="checkbox"/>
<label for="klapper" id="klapplabel">Klappe!</label>
<div>unwichtiges Zeug</div>
<div id="ausgeklappt">ausgeklapptes Zeug</div>
#ausgeklappt {display:none;}
input#klapper:checked ~ #klapplabel {background-color:#0c0;}
input#klapper:checked ~ #ausgeklappt {display:block;}