隐藏/显示按钮和切换之间的空间令人沮丧

时间:2016-04-10 17:15:27

标签: html css html5 css3

如何进行切换,从隐藏/显示按钮所在的位置切换,而不是在隐藏/显示按钮和切换之间有间隙。

我已经尝试了我能想到的一切:

定义边距/填充顶部;

将按钮放在div中。

但我无法实现我希望实现的目标。

这就是我希望它的样子:

点击

enter image description here

点击

enter image description here

有什么建议吗?

    function toggle_visibility(id) {
        
                var e = document.getElementById(id);
                if (e.style.display == 'block' || e.style.display == '')
                    e.style.display = 'none';
                else
                    e.style.display = 'block';
            }
div#first_product{
    width: 50%;
    margin-left: 301px;   
}

div#red_head{
    background-color: #ed1c24;
    height: 40px;
    color: #fff;
    padding-left: 15px;
    line-height: 35px;
}

div#first_product{
    padding:0;
    background-color: #f1f1f2;
    /*Dynamic height*/
    height:auto;
    min-height:250px;
    height:auto !important;        /* IE does not support min-height */
    height:250px;
    display: none; /*HIDE TOOGLE ON PAGE LOAD*/

}

#products_tog_but{
    background-color: #f8f9f9;
    border: 1.5px dashed #999999;
    width: 100%;
    height: 40px;
    border-radius: 5px;
    margin-bottom: 20px;
}


div#hide_btn{
    width:50%;
    margin-left: 301px;
}
        <!--HIDE TOGGLE BTN -->
        <div id="hide_btn">
            <button id="products_tog_but" onclick="toggle_visibility('first_product')">Hello!</button>
        </div>

        <!-- TOGGLE BTN SECTION-->   
        <div id="first_product">
            <div id="red_head">
                <p id="menu_title" class ="hidden" onclick="hideText('text1')" > Add your first menu item</p>
            </div>
            <h3 id="menu">Menu Section</h3>

            <form name="first_prod" id="first_prod" enctype="multipart/form-data" action="testing.php" method="post" accept-charset="utf-8" >               

                <label id="cat_label" name="cat_label" class="lab">Name</label>
                <input type="text" id="cat_name" name="cat_name" value="">
                <br>
                <label id="desc_label" name="desc_label" class="lab">Description</label>
                <input type="text" id="cat_desc" name="cat_desc" value="">

                <input type="Submit" id="save_first_prod" name="save_first_prod" onclick="toggle_visibility('first_product')" value=" + ADD"> 

            </form>
        </div>

1 个答案:

答案 0 :(得分:0)

margin-bottom移除#products_tog_but并在margin-top: -12px;

中添加#first_product
div#first_product{
    width: 50%;
    margin-left: 301px;
    margin-top: -12px;
}

#products_tog_but{
    background-color: #f8f9f9;
    border: 1.5px dashed #999999;
    width: 100%;
    height: 40px;
    border-radius: 5px;
}

请参阅this jsfiddle以了解运行演示。

另一种方法是使用margin-top作为否定,而不是使用margin-top:

p#menu_title {
  margin-top: 2px;
}

DEMO