儿童div不会消失,隐藏可见性

时间:2015-11-01 17:56:11

标签: javascript html css visibility

我的代码涉及在另一个div中使用div,当我将它们的两个可见性设置为隐藏时,只有父div消失。在调试尝试中,我尝试打印出子div的可见性,并且它具有“visibility:hidden”。

#popup {
    visibility: visible;
    margin: auto;
    position: fixed;
    background-color: black;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: .5%;
    padding-right: .5%;
    border-radius: 4px;
    left: 14.5%;
    top: 20px;
    width: 70%;
    height: 450px;
}
#redX {
    visibility: visible;
    position: absolute;
    right: 0px;
    top: 0px;
    width: 35px;
    height: 35px;
    text-align: center;
    font-size: 25px;
    font-weight: bold;
    color: white;
    background-color: red;
    transition: .2s color ease-out;
}

------------------------------------------------
    // how I control the styles in changePopupVisibility()
    var popup = document.getElementById('popup');
    var redX = document.getElementById('redX');

    var popupOpen = true;
------------------------------------------------

    // rX is a variable I use to paste redX in different functions.
    var rX = "<div id='redX' onClick='changePopupVisibility()'>X</div><br>";

------------------------------------------------
// How I change visibility when the X has been clicked
function changePopupVisibility() {
        popupOpen = !popupOpen;
        if (popupOpen) {
            redX.style.visibility = "visible";
            popup.style.visibility = "visible";
        }
        else {
            redX.style.visibility = "hidden";
            popup.style.visibility = "hidden";
        }
}

如果这有点令人困惑,我已经在my website上提出了我的意思的工作版本。单击红色X一次,一切都将消失,但单击“左”,再试一次,只有父级将消失。

感谢。

2 个答案:

答案 0 :(得分:0)

您也可以尝试将不透明度标记为0&amp; 1,而不是隐藏的可见性&amp;可见,并将其应用于父div。 如果您想要使用相同的维度,使用可见性将保留维度,不透明度将反映与可见性相同的结果。

function changePopupVisibility() {
    popupOpen = !popupOpen;
    if (popupOpen) {
         popup.style.opacity= 1;
    }
    else {

        popup.style.opacity= 0;
    }
}

答案 1 :(得分:0)

您应该使用:display: none;,因为它使元素完全不显示并且对布局没有影响,其中visibility: hidden;元素将不可见但仍占据布局中的空间。

阅读:

CSS Visibility Property

,更具体地说:

CSS Layout - The display property