main
에있는 모든 요소는 절대적으로 배치되므로 main
의 높이가 0으로 계산되므로 머리글의 아래쪽 가장자리는 바닥 글의 위쪽 가장자리 옆에 있습니다. main
에 높이를 추가하면 머리말과 꼬리말 사이에 공백이 생깁니다.
주어진 다음의 HTML :
<header>Header</header>
<main>
<div id="text">
<p>Some text</p>
</div>
<div id="links">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
</div>
</main>
<footer>
<p>Footer</p>
</footer>
다음 CSS와 같이 수레를 사용하여 두 개의 열 레이아웃을 실현할 수 있습니다 : 당신은 당신의 main
용기에 overflow: auto
을 설정해야
main {
position: relative;
height: auto;
overflow: auto;
border: 1px solid blue;
}
#text {
float: left;
width: 500px
}
#links {
float: left;
width: 400px;
}
부동 소수점을 포함합니다 (이를 지우는 것과 같습니다).
또한, 플로팅 요소의 너비가 너무 넓지 않도록하십시오. 그렇지 않으면 화면 크기가 너무 좁 으면 두 번째 줄로 감싸 야합니다. http://codepen.io/anon/pen/gGsjd
각주에서
참조 데모 : 투명 대 자동차 : 오버 플로우를 사용하여 두
내가
overflow: auto
을 사용하는 경향이
하지만하여 clear
속성이 필요한 것입니다 경우도있다. 어느 시점에서 "블록 서식 지정 컨텍스트"에 대한 내용은 http://www.w3.org/TR/CSS2/visuren.html#block-formatting입니다. 한 가지 방법을 선택하는 이유는 약간 미묘한 데, 그 선택은 달성하려는 레이아웃의 세부 사항, 반응 형 방식 등등.
'절대'요소를 만들면 일반적인 문서 흐름 계산에서 제거되고 충돌/겹침을 방지하는 것이 사용자의 작업이됩니다. –
정확히 무엇을 원하십니까? – andi
'main'에 2 열 레이아웃을 포함시키고 싶습니다. 나는 폭을 알고 있지만 두 div의 높이는 안다. 그래서 두 개의 열 (divs)을 배치하기 위해'position : absolute'를 사용할 수 있을지 생각했습니다. 하지만 바닥 글에 여전히 바닥 글이 나타나기를 원합니다. 마크 B의 코멘트 –