1. 程式人生 > >css隱藏元素的方法及區別

css隱藏元素的方法及區別

1.opacity

opacity:0將元素本身及其子元素都置為不可見的,而元素本身依然佔據它自己的位置並對網頁的佈局起作用,它會響應使用者互動

2 .visibility

visibility:hidden將元素本身及其子元素都置為不可見的, 而元素本身依然佔據它自己的位置並對網頁的佈局起作用,它不會響應使用者互動.如果想讓子元素顯示,則設定子元素的visibility:visible;

3.display

display:none使用這個屬性,被隱藏的元素對網頁的佈局不起作用。不僅如此,一旦display設為none任何對該元素直接的使用者互動操作都不可能生效。此外,讀屏軟體也不會讀到元素的內容。這種方式產生的效果就像元素完全不存在。通過DOM依然可以訪問到這個元素。因此你可以通過DOM來操作

它。

4.position

position:absolute 將top和left設定成足夠大的負數,相當於把元素放到可視區域外,它不會影響佈局,能夠讓元素保持可操作性,在讀屏軟體上可以被識別。

總結一下:opacity,visibility影響佈局,前者不影響互動,後者影響互動;

                   display不影響佈局,影響互動;

                   position 不影響佈局,不影響互動;   

下面給出例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1 {
            width: 200px;  height: 200px;  background-color: #B4B4B4;  opacity:0;
        }
        .div2 {  width: 200px;  height: 200px;  background-color: goldenrod;  visibility: hidden;
        }
        .div2-2 {  width: 100px;  height: 100px;  background-color: lightsalmon;  visibility: visible;
        }
        .div3{  width: 200px;  height: 200px;  background-color: green;             display: none;
        }
        .div4 {  width: 200px;  height: 200px;   background-color: greenyellow; position: absolute;  top:-99em;  }
    </style>
</head>
<body>
<div class="div1">1</div>
<div class="div2">2<div class="div2-2">2-2</div></div>
<div class="div3">3</div>
<div class="div4">4</div>
<script>
    var div1 = document.querySelector(".div1");
    var div2 = document.querySelector(".div2");
    var div3 = document.querySelector(".div3");
    var div4 = document.querySelector(".div4");
    
    div1.onclick=function () {
        alert("div2");
    };
    div2.onclick=function () {
        alert("div2");
    };
    div3.onclick=function () {
        alert("div3");
    };
    div4.onclick=function () {
        alert("div4");
    };
</script>

</body>
</html>