2017-12-30 24 views
3

Ich habe eine reine CSS CSS Expand/Collapse div, die auf jemand anderen Code basiert @here standardmäßig ausgeblendeter Text ist kollabierbar, aber es wäre besser, wenn der Text nach dem Klick erweitert wird.CSS einklappen/erweitern

Jeder hat Vorschläge, wie dieser Code bearbeitet werden kann, so dass Text minimiert wird, bevor der Klick minimiert wird? Es wäre besser, wenn Javascript vermieden wird und Wordpress komprimierbar ist.

<main> 
    <h2>CSS Expand/Collapse Section</h2> 
    <input id="toggle" type="checkbox" checked> 
    <label for="toggle">Hidden Kitten</label> 
    <div id="expand"> 
    <section> 
     <p>mew</p> 
    </section> 
    </div> 
    <section> 
    <h3>Other content</h3> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas porta non turpis faucibus lobortis. Curabitur non eros rutrum, gravida felis non, luctus velit. Ut commodo congue velit feugiat lobortis. Etiam nec dolor quis nulla bibendum blandit vitae nec enim. Maecenas id dignissim erat. Aenean ac mi nec ante venenatis interdum quis vel lacus. 
    </p> 
    <p>Aliquam ligula est, aliquet et semper vitae, elementum eget dolor. In ut dui id leo tristique iaculis eget a dui. Vestibulum cursus, dolor sit amet lacinia feugiat, turpis odio auctor nisi, quis pretium dui elit at est. Pellentesque lacus risus, vulputate sed gravida eleifend, accumsan ac ante. Donec accumsan, augue eu congue condimentum, erat magna luctus diam, adipiscing bibendum sem sem non elit.</p> 
    </section> 
</main> 

CSS

 @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700); 

body { 
    font-family: "Open Sans", Arial; 
    background: #CCC; 
} 
main { 
    background: #EEE; 
    width: 600px; 
    margin: 20px auto; 
    padding: 10px 0; 
    box-shadow: 0 3px 5px rgba(0,0,0,0.3); 
} 
h2 { 
    text-align: center; 
} 
p { 
    font-size: 13px; 
} 
input { 
    display: none; 
    visibility: hidden; 
} 
label { 
    display: block; 
    padding: 0.5em; 
    text-align: center; 
    border-bottom: 1px solid #CCC; 
    color: #666; 
} 
label:hover { 
    color: #000; 
} 
label::before { 
    font-family: Consolas, monaco, monospace; 
    font-weight: bold; 
    font-size: 15px; 
    content: "+"; 
    vertical-align: text-top; 
    display: inline-block; 
    width: 20px; 
    height: 20px; 
    margin-right: 3px; 
    background: radial-gradient(ellipse at center, #CCC 50%, transparent 50%); 
} 
#expand { 
    height: 0px; 
    overflow: hidden; 
    transition: height 0.5s; 
    background: url(http://placekitten.com/g/600/300); 
    color: #FFF; 
} 
section { 
    padding: 0 20px; 
} 
#toggle:checked ~ #expand { 
    height: 250px; 
} 
#toggle:checked ~ label::before { 
    content: "-"; 
} 

Antwort

2

Ich glaube, Sie suchen das Bild Anfang kollabiert haben.

Sie müssen nur das Attribut checked aus dem Eingabe-Kontrollkästchen entfernen, um dies zu erreichen.

Wechsel:

<input id="toggle" type="checkbox" checked> 

An:

<input id="toggle" type="checkbox"> 

Hier ist man Code in einem fahrbaren Schnipsel:

body { 
 
    font-family: "Open Sans", Arial; 
 
    background: #CCC; 
 
} 
 

 
main { 
 
    background: #EEE; 
 
    width: 600px; 
 
    margin: 20px auto; 
 
    padding: 10px 0; 
 
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3); 
 
} 
 

 
h2 { 
 
    text-align: center; 
 
} 
 

 
p { 
 
    font-size: 13px; 
 
} 
 

 
input { 
 
    display: none; 
 
    visibility: hidden; 
 
} 
 

 
label { 
 
    display: block; 
 
    padding: 0.5em; 
 
    text-align: center; 
 
    border-bottom: 1px solid #CCC; 
 
    color: #666; 
 
} 
 

 
label:hover { 
 
    color: #000; 
 
} 
 

 
label::before { 
 
    font-family: Consolas, monaco, monospace; 
 
    font-weight: bold; 
 
    font-size: 15px; 
 
    content: "+"; 
 
    vertical-align: text-top; 
 
    display: inline-block; 
 
    width: 20px; 
 
    height: 20px; 
 
    margin-right: 3px; 
 
    background: radial-gradient(ellipse at center, #CCC 50%, transparent 50%); 
 
} 
 

 
#expand { 
 
    height: 0px; 
 
    overflow: hidden; 
 
    transition: height 0.5s; 
 
    background: url(http://placekitten.com/g/600/300); 
 
    color: #FFF; 
 
} 
 

 
section { 
 
    padding: 0 20px; 
 
} 
 

 
#toggle:checked~#expand { 
 
    height: 250px; 
 
} 
 

 
#toggle:checked~label::before { 
 
    content: "-"; 
 
}
<main> 
 
    <h2>CSS Expand/Collapse Section</h2> 
 
    <input id="toggle" type="checkbox"> 
 
    <label for="toggle">Hidden Kitten</label> 
 
    <div id="expand"> 
 
    <section> 
 
     <p>mew</p> 
 
    </section> 
 
    </div> 
 
    <section> 
 
    <h3>Other content</h3> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas porta non turpis faucibus lobortis. Curabitur non eros rutrum, gravida felis non, luctus velit. Ut commodo congue velit feugiat lobortis. Etiam nec dolor quis nulla bibendum blandit 
 
     vitae nec enim. Maecenas id dignissim erat. Aenean ac mi nec ante venenatis interdum quis vel lacus. 
 
    </p> 
 
    <p>Aliquam ligula est, aliquet et semper vitae, elementum eget dolor. In ut dui id leo tristique iaculis eget a dui. Vestibulum cursus, dolor sit amet lacinia feugiat, turpis odio auctor nisi, quis pretium dui elit at est. Pellentesque lacus risus, vulputate 
 
     sed gravida eleifend, accumsan ac ante. Donec accumsan, augue eu congue condimentum, erat magna luctus diam, adipiscing bibendum sem sem non elit.</p> 
 
    </section> 
 
</main>

1

Entfernen Sie einfach checked in Ihrem input und Sie sind gut zu gehen.

Es sollte wie folgt aussehen:

<input id="toggle" type="checkbox"> 
Verwandte Themen