3 열 레이아웃 HTML / CSS
다음 HTML 레이아웃이 있습니다.
<div class="container">
<div class="column-center">Column center</div>
<div class="column-left">Column left</div>
<div class="column-right">Column right</div>
</div>
CSS 만 사용하여 HTML 을 변경하지 않고 아래 샘플 그리드와 같이 열을 정렬 할 수 있습니까?
----------------------------------------------------
| | | |
| Column left | Column center | Column right |
| | | |
----------------------------------------------------
다음과 같이해야합니다.
.column-left{ float: left; width: 33.333%; }
.column-right{ float: right; width: 33.333%; }
.column-center{ display: inline-block; width: 33.333%; }
편집하다
많은 수의 기둥으로이를 수행하기 위해 매우 간단한 그리드 시스템을 구축 할 수 있습니다. 예를 들어, 다음과 같은 것은 5 열 레이아웃에서 작동합니다.
.column {
float: left;
position: relative;
width: 20%;
/*for demo purposes only */
background: #f2f2f2;
border: 1px solid #e6e6e6;
box-sizing: border-box;
}
.column-offset-1 {
left: 20%;
}
.column-offset-2 {
left: 40%;
}
.column-offset-3 {
left: 60%;
}
.column-offset-4 {
left: 80%;
}
.column-inset-1 {
left: -20%;
}
.column-inset-2 {
left: -40%;
}
.column-inset-3 {
left: -60%;
}
.column-inset-4 {
left: -80%;
}
<div class="container">
<div class="column column-one column-offset-2">Column one</div>
<div class="column column-two column-inset-1">Column two</div>
<div class="column column-three column-offset-1">Column three</div>
<div class="column column-four column-inset-2">Column four</div>
<div class="column column-five">Column five</div>
</div>
또는 최신 브라우저 만 지원할 수있을만큼 운이 좋다면 유연한 상자를 사용할 수 있습니다 .
.container {
display: flex;
}
.column {
flex: 1;
/*for demo purposes only */
background: #f2f2f2;
border: 1px solid #e6e6e6;
box-sizing: border-box;
}
.column-one {
order: 3;
}
.column-two {
order: 1;
}
.column-three {
order: 4;
}
.column-four {
order: 2;
}
.column-five {
order: 5;
}
<div class="container">
<div class="column column-one">Column one</div>
<div class="column column-two">Column two</div>
<div class="column column-three">Column three</div>
<div class="column column-four">Column four</div>
<div class="column column-five">Column five</div>
</div>
이것은 @easwee보다 적고 같은 질문을 할 수있는 다른 사람들에게는 더 많은 것입니다.
IE <10에 대한 지원이 필요하지 않은 경우 Flexbox 를 사용할 수 있습니다 . 불행히도 여러 버전에서 구현 된 흥미로운 CSS3 속성입니다. 공급 업체 접두사를 추가하면 브라우저 간 지원을 제대로 받으려면 갑자기 필요한 것보다 훨씬 더 많은 속성이 필요합니다.
현재의 최종 표준을 사용하면
.container {
display: flex;
}
.container div {
flex: 1;
}
.column_center {
order: 2;
}
그게 다야. iOS 6, Safari <6, Firefox 19 또는 IE10과 같은 이전 구현을 지원하려면
.container {
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
.container div {
-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-flex: 1; /* OLD - Firefox 19- */
-webkit-flex: 1; /* Chrome */
-ms-flex: 1; /* IE 10 */
flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
.column_center {
-webkit-box-ordinal-group: 2; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-ordinal-group: 2; /* OLD - Firefox 19- */
-ms-flex-order: 2; /* TWEENER - IE 10 */
-webkit-order: 2; /* NEW - Chrome */
order: 2; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
다음은 Flexbox 크로스 브라우저 지원에 대한 훌륭한 기사입니다. Flexbox 사용 : 기존 및 신규 혼합
.container{
height:100px;
width:500px;
border:2px dotted #F00;
border-left:none;
border-right:none;
text-align:center;
}
.container div{
display: inline-block;
border-left: 2px dotted #ccc;
vertical-align: middle;
line-height: 100px;
}
.column-left{ float: left; width: 32%; height:100px;}
.column-right{ float: right; width: 32%; height:100px; border-right: 2px dotted #ccc;}
.column-center{ display: inline-block; width: 33%; height:100px;}
<div class="container">
<div class="column-left">Column left</div>
<div class="column-center">Column center</div>
<div class="column-right">Column right</div>
</div>
이 링크 http://jsfiddle.net/bipin_kumar/XD8RW/2/ 참조
CSS :
.container {
position: relative;
width: 500px;
}
.container div {
height: 300px;
}
.column-left {
width: 33%;
left: 0;
background: #00F;
position: absolute;
}
.column-center {
width: 34%;
background: #933;
margin-left: 33%;
position: absolute;
}
.column-right {
width: 33%;
right: 0;
position: absolute;
background: #999;
}
HTML :
<div class="container">
<div class="column-center">Column center</div>
<div class="column-left">Column left</div>
<div class="column-right">Column right</div>
</div>
데모 : http://jsfiddle.net/nyitsol/f0dv3q3z/
CSS :
.container div{
width: 33.33%;
float: left;
height: 100px ;}
열 뒤의 수레 지우기
.container:after {
content: "";
display: table;
clear: both;}
참고URL : https://stackoverflow.com/questions/20566660/3-column-layout-html-css
'Program Tip' 카테고리의 다른 글
VC2010 C ++-소스 파일 구성 (0) | 2020.11.16 |
---|---|
Serializable을 사용하여 인 텐트를 통해 데이터 전달 (0) | 2020.11.16 |
Git은 추적 된 파일의 일부에 대한 로컬 변경 사항을 무시합니다. (0) | 2020.11.16 |
Swift의 FileManager를 사용하여 폴더 및 하위 폴더의 파일을 반복합니다. (0) | 2020.11.16 |
Xcode 6.0.1 명령 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc가 종료 코드 1과 함께 실패했습니다. (0) | 2020.11.16 |