Beauty - the concept, after all, is subjective. Try to set the task more specifically. I find the method below pretty pretty. Hope will help. And yet, it is better to hide the checkbox
using absolute positioning and “pull U aside, rather than use display: none
- this is fraught with problems on some mobile devices and electronic books.
Code Pen
PS with the list is clear - you want "beautiful." And with a paragraph?
@import url(http://weloveiconfonts.com/api/?family=entypo); div { width: 300px; background: #f5f5f5; box-shadow: 0 1px 3px rgba(0,0,0,0.3); padding: 10px 20px; margin: 20px auto; } a, a:visited { text-decoration: none; color: #333; } p { margin: 0; } ul { width: 120px; } div, li { font: 26px/1.5 'Segoe Ui', sans-serif; list-style: none; color: #333; position: relative; border-bottom: 1px solid #eee; } li:first-child { border-top: 1px solid #eee; } li:last-child { border-bottom: none; } .level1 a { border-right: 2px solid #333; border-radius: 2px; display: block; width: 100%; transition: all .3s ease; } .level1 a::after { content:"\e766"; font-family: 'entypo', sans-serif; position: absolute; transition: all .3s ease; right: -8px; color: transparent; } .level1 a:hover { border-right: 10px solid transparent; } .level1 a:hover::after { right: 0px; color: #333; } .hide { position: absolute; left: -9999px; } .hide + label { position: relative; display: block; } .hide + label img { position: absolute; height: 30px; top: 5px; left: -36px; } .hide + label::before { content:''; height: 2px; background: #333; border-radius: 0 0 2px 2px; position: absolute; bottom: 0; width: 100%; transition: all .3s ease; } .hide + label::after { content:"\e764"; font-family: 'entypo', sans-serif; position: absolute; transition: all .3s ease; right: -3px; top: 8px; color: transparent; } .hide + label:hover::after { top: 0px; color: #333; } .hide + label ~ p { position: relative; transition: all .3s ease; border-radius: 2px; top: -10px; opacity: 0; } .hide:checked + label::before { height: 40px; background: transparent; bottom: -40px; } .hide:checked + label::after { top: 0px; color: #333; transform: rotateX(-180deg); } .hide:checked + label + p { top: 0; opacity: 1; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
<div>Название: <ul> <li class="level1"><a href="#">Пункт 1</a></li> <li class="level1"><a href="#">Пункт 2</a></li> <li class="level1"><a href="#">Пункт 3</a></li> <li> <input id="hd-2" class="hide" type="checkbox" /> <label for="hd-2"><img src="https://ru.wikipedia.org/static/favicon/wikipedia.ico" alt="Читать далее" /> Wiki</label> <p class="level1"><a href="#">Пункт 4</a></p> </li> </ul> </div>
<ul>
,<ol>
- Grundy