줄 바꿈이나 가로 공간을 만들지 않는 숨겨진 div를 어떻게 만드나요?


354

화면의 공간을 차지하지 않는 숨겨진 확인란을 원합니다.

내가 이것을 가지고 있다면 :

<div id="divCheckbox" style="visibility: hidden">

확인란이 보이지 않지만 여전히 새 줄을 만듭니다.

내가 이것을 가지고 있다면 :

<div id="divCheckbox" style="visibility: hidden; display:inline;">

더 이상 새 줄을 만들지 않지만 화면에서 가로 공간을 차지합니다.

공간을 차지하지 않는 (수직 또는 수평) 숨겨진 div를 가질 수 있습니까?


그런 div에 대한 사용이 있습니까?
Jonno_FTW

6
@Jonno : AJAX에서 일반적으로 사용됩니다. 펼침 삼각형이있는 항목 목록이 있다고 가정하십시오. 사용자가 펼침 삼각형을 클릭 할 때 세부 정보 또는 하위 트리가 나타나기를 원합니다. 그래서 당신이하는 일은 <div id = "theID"style = "display : none;"> 위치를 지정하는 것입니다. 그런 다음 사용자가 삼각형을 클릭하면 삼각형을 "하프 웨이"위치 (동남쪽)로 이동하고 AJAX 요청을 해제하여 <div>를 채 웁니다. AJAX 요청이 완료되면 삼각형을 남쪽으로 돌리고 "display : none;"을 제거하십시오. <div>의 스타일에서. script.aculo.us 라이브러리는 이것을 많이합니다.
Mike DeSimone

답변:


715

사용하다 display:none;

<div id="divCheckbox" style="display: none;">
  • visibility: hidden 요소를 숨기지 만 레이아웃에서 여전히 공간을 차지합니다.

  • display: none 문서에서 요소를 완전히 제거하고 공간을 차지하지 않습니다.


42
div를 다시 보여주기 위해 (누군가가 필요로하는 경우를 대비하여)<div id="divCheckbox" style="display: inline-block;">
anujin

14
@anujin : 왜 inline-block? displaydiv 의 기본값 은 block! 입니다 .
MMM

반대의 방법이 있습니까? 현재 표시된 div가 공간을 차지하지 않고 다른 DOM 요소를 옮기지 않고 div display: nonedisplay: inline-block또는 그와 동등한 것으로 변경하려면 ?
bpromas

1
글로벌 HTML 속성을 포함하는 답을 업데이트 할 가치가있을 수도 숨겨진 부터 사용할 수 있습니다 HTML5.1 기본적으로 말과 동일하다 display: noneHTML에서 직접 있지만은. 그러나이 display속성을 사용 하면 hidden전역 속성 의 동작이 무시 됩니다.
Marius Mucenicu

54

HTML5 가 출시 되었으므로 이제 간단하게 수행 할 수 있습니다.

<div hidden>This div is hidden</div>

참고 : 일부 오래된 브라우저, 특히 IE <11 에서는 지원 되지 않습니다 .

숨겨진 속성 문서 ( MDN , W3C )


1
이것은 CSS로 숨기는 것보다 의미 적으로 정확하며 접근성에 더 적합하며 모든 주요 브라우저에서 지원됩니다. 2020 년에 정답이되어야합니다.
Robin Métral

29

사용하십시오 style="display: none;". 또한 DIV를 가질 필요가 없으며 display: none확인란 에서 스타일을 설정하는 것만 으로도 충분합니다.


페이지로드시 경고 메시지를 숨기고 버튼 클릭시 다시 표시하고 싶습니다. 시도 visibility: hidden했지만 그것은 빈 공간을 보여주고있었습니다. style="display: none;"작은 매력처럼 작동 :)
sohaiby

8

CMS의 답변 외에도 외부 스타일 시트에 스타일을 배치하고 다음과 같이 스타일을 ID에 할당하는 것이 좋습니다.

#divCheckbox {
display: none;
}

+1, 그것은 정말 좋은 제안이지만 다른 모든 확인란의 가시성에 영향을 미치지 않고 하나의 확인란 만 표시하는 방법은 무엇입니까?
Owais Qureshi

1
@dotNetSoldier 오래된 질문이지만 여기에 답이 있어야합니다. invis라는 CSS 클래스가 있으며 JS를 사용하여 id로 확인란 또는 div에서 추가하거나 제거합니다.
DanielST

8

CSS의 유용성과 일반성에 중점을 두어야하기 때문에 id를 사용하여 특정 레이아웃 요소 (거대한 또는 여러 CSS 파일을 생성 함)를 가리 키지 말고 대신 연결된 .css 파일에서 실제 클래스를 사용해야합니다.

.hidden {
visibility: hidden;
display: none;
}

또는 미니멀리스트를 위해 :

.hidden {
display: none;
}

이제 다음을 통해 간단히 적용 할 수 있습니다.

<div class="hidden"> content </div>

코드는 이런 식으로 훨씬 깔끔해 보입니다! 인라인 스타일 이상의 수업을 선호합니다
Harry Cho

5

<span>레이아웃을 해치지 않고 작은 마크 업 세그먼트를 스타일링 할 수 있도록 사용하십시오 . <div>실제로 확인란 자체를 원하는 방식으로 스타일을 지정할 수없는 경우 표시하지 않도록 강제하는 것보다 관용적 인 것처럼 보입니다 .


4

마우스 클릭으로 표시 / 숨기기 :

<script language="javascript">

    function toggle() {

        var ele = document.getElementById("toggleText");
        var text = document.getElementById("displayText");

        if (ele.style.display == "block") {

            ele.style.display = "none";
            text.innerHTML = "show";
        }
        else {

            ele.style.display = "block";
            text.innerHTML = "hide";
        }
    }
</script>

<a id="displayText" href="javascript:toggle();">show</a> <== click Here

<div id="toggleText" style="display: none"><h1>peek-a-boo</h1></div>

출처 : 여기


4

확인란을 DOM에서 제거 하지 않고 공간을 차지하지 않게하려면을 사용하십시오 hidden.

<div hidden id="divCheckbox">

어떤 공간을 복용에서 확인란을 방지하기 위해 또한 사용의 DOM에서 제거 display: none.

<div id="divCheckbox" style="display:none">

3

요소를 시각적으로 숨기고 html로 유지 하려면 다음을 사용할 수 있습니다.

<div style='visibility:hidden; overflow:hidden; height:0; width:0;'>
  [content]
</div>

또는

<div style='visibility:hidden; overflow:hidden; position:absolute;'>
  [content]
</div>

무엇이 잘못 될 수 display:none있습니까? HTML에서 요소를 완전히 제거하므로 숨겨진 요소의 무언가에 액세스 해야하는 경우 일부 기능이 작동하지 않을 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.