CSS3 creates an animation that slides in and out

CSS3 creates an animation that slides in and out, someone asked me to explain?

slides in and out-css3

Sometimes we need to put a customer help form on the sidebar of the website. Start by putting a button there, and then slide out the content after clicking. Generally, we will use js to control this effect. Now css3 can do it too.

How is this done? That will use the :target tag in CSS3.

Let's take a look at the implementation of this animation.

1. Fix the box at a certain location.

2. Hide the form inside and only expose a click button.

3. When the button is clicked, the form is drawn and the button text is changed.

4. Click the button again and the form is indented.


 <h1><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Slide-in slide-out</font></font></h1>
    <h2><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Click it, then click Hide</font></font></h2>

    <div id="volet_clos">
        <div id="volet">
            <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Lorem Alsace ipsum chime amet sed bissame so libero. </font><font style="vertical-align: inherit;">DNA, John Richard</font></font></p>
            <p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Sorrow elementum semper tellus s'guelt Pfourtz</font></font></p>
            <a href="#volet" class="ouvrir" aria-hidden="true"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Slide out</font></font></a>
            <a href="#volet_clos" class="fermer" aria-hidden="true"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Slide in</font></font></a>


  <style type="text/css">
        body {
            margin: 0;
            padding: 10px 40px;
            background: #F1EFE2;
            font-size: 1.4em;
            font-family: georgia, "trebuchet ms", arial, serif;
            height: 3000px; /* test fixed + scroll */
        h1 {
            margin-top: 20px;
            margin-bottom: 40px;
            color: #345;
            text-shadow: 1px 1px 1px #fff;
        h2 {
            color: #678;
            text-shadow: 1px 1px 1px #fff;
            font-size: 1.1em;

        #volet {
            width: 250px;
            padding: 10px;
            background: #6B9A49;
            color: #fff;
            #volet a.ouvrir,
            #volet a.fermer {
                padding: 10px 25px;
                background: #555;
                color: #fff;
                text-decoration: none;
       #volet {
            position: absolute;
            left: -270px; /* test fixed + scroll, position top */
            -webkit-transition: all .5s ease-in;
            -moz-transition: all .5s ease-in;
            transition: all .5s ease-in;
            #volet a.ouvrir,
            #volet a.fermer {
                position: absolute;
                right: -88px;
                top: 150px;
                -webkit-transform: rotate(270deg);
                -moz-transform: rotate(270deg);
                -o-transform: rotate(270deg);
                -ms-transform: rotate(270deg);
                -moz-radius: 0 0 8px 8px;
                border-radius: 0 0 8px 8px;
            #volet a.fermer {
                display: none;
            #volet:target {
                left: 10px;
                #volet:target a.fermer {
                    display: block;
                #volet:target a.ouvrir {
                    display: none;
        #volet_clos:target #volet {
            left: -270px;
        /* test fixed + scroll */
        #volet_clos {
            position: fixed;
            top: 55px;
            left: 0;

Post your comments / questions