<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box {
            border: 1px solid black;
            padding: 10px;
        }
        #innerBox1 {
            display: none;
        }
        #innerBox2 {
            visibility: hidden;
        }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
    <h1>나타내기</h1>
    <button onclick="showByDisplay()">display로 나타내기</button>
    <button onclick="showByVisible()">visible로 나타내기</button>
    <div class="box" id="outerBox">
        <div class="box" id="innerBox1">
            내부박스1
        </div>
        <div class="box" id="innerBox2">
            내부박스2
        </div>
    </div>
    <script>
        function showByDisplay() {
            // let el = document.querySelector("#innerBox1");
            // el.style.display = "block";
            $("#innerBox1").css("display", "block");
        }
        function showByVisible() {
            // let el = document.querySelector("#innerBox2");
            // el.style.visibility = "visible";
            $("#innerBox2").css("visibility", "visible");
        }
    </script>
</body>
</html>스타일에 보면 둘다 보이지 않는다. 실행해보면

공간이 있는데 이것은 visibility : hidden 이어서 공간을 차지하고 있다.
Share article