개발/CSS

CSS 레이아웃

에크키키 2022. 8. 10. 19:56

 

box-sizing
웹 문서에 여러요소 배치하려면 각 요소의 너비계산 해야함
css의 wdith는 콘텐츠 영역의 너비를 나타내기때문에 테두리나 크기는 따로 계산해야함
이럴때 box-sizing속성 사용
content-box : 기본 값, width 콘텐츠 영역의 너비를 나타냄
border-box : width 콘텐츠영역에 테두리까지 포함한 박스모델 전체너비값으로 사용

float 요소를 왼쪽이나 오른쪽에 배치

<style>
	.box1{float:left;}
	.box2{float:left;}
	.box3{float:right;}
</style> /*박스 1,2 순으로 왼쪽에 배치 box3 오른쪽에 배치 */

clear float속성 해제하기 left right both

<style>
	.box1{float:left;}
	.box2{float:left;}
	.box3{/*float 지정하지 않음 ->겹쳐서 표시}
	.box4{clear:both;} /*앞에서 사용한 left해제 both로 하는게 편리 */
</style>

position 속성 배치방법,static제외한 나머지 속성에는 top bottom left right 로 위치값 지정가능
static:기본 값 나열한 순서
relatvie:부모요소
absolute:relative와 묶어서 자주사용
fixed:브라우저 창기준으로 배치

<style>
		#wrap{
			position:relative;
			width:300px;
			height:300px;
			border:1px solid #ccc;
		}
		.box{
			position:absolute;
			width:50px;
			height:50px;
			background:#0094ff;
		}
		#crd1{ top:0; left:0; }
		#crd2{ top:0; right:0; }
		#crd3{ bottom:0; left:0; }
		#crd4{ bottom:0; right:0; }
		#crd5{ top:100px; left:100px; }
	</style>
</head>
<body>
	<div id="wrap">
		<div class="box" id="crd1"></div>
		<div class="box" id="crd2"></div>
		<div class="box" id="crd3"></div>
		<div class="box" id="crd4"></div>
		<div class="box" id="crd5"></div>
	</div>
</body>

z-index 한요소위에 다른요소를 쌓을떄 쌓는 순서를 지정 숫자가 클수록 위에 쌓임

 
<style>
   div#wrapper {position: relative;}

    .box {
		position:absolute;
		width:100px;
		height:100px;
		border:1px solid black;
		font-size:26px;
	}
	#b1 {				
		left:50px;
		top:50px;
		z-index:1;
	}
	#b2 {				
		left:110px;
		top:70px;
		z-index:3;
	}
	#b3 {
		left:70px;
		top:110px;
		z-index:1;
	}
</style>
	<div id="wrapper">
		<div id="b1" class="box">1</div>
		<div id="b2" class="box">2</div>
		<div id="b3" class="box">3</div>
	</div>

 

 

표스타일

border 테투리 속성

 
            .table1 {
                border:1px solid black;
            }
            .table1 td {
                border:1px dotted black; /*점선*/
            }

 

 

border-collapse

  • separate: 기본값 테두리 따로표시
  • collapse:테두리 합쳐 표시
            .table1 {
                border:1px solid black;
                border-collapse:collapse; /*바깥선이 하나로 합쳐짐*/
            }
            .table1 td {
                border:1px dashed black;
                padding:10px;
                text-align:center;
            }

 

 

border-sapcing 

separate로 셀들을 분리하였을때 인접한 셀 테두리 사이의 거리지정

            .table2 {
                border-collapse:separate;
                border-spacing:20px 10px;  /*수평 수직 */              
            }

표너비

            table {
                border-collapse:collapse;
                width:300px;
            }
            td {
                width:150px;/*셀의 크기도 설정 */
                padding:10px;/*셀의 패딩, 셀의 테두리와 내용사이에 여백을 줌 */
            }

table-layout

  • fixed
  • auto:고정값, 셀 내용에 따라 셀의 너비가 달라짐

word-break:break-all;

셀 너비보다 긴 내용도 셀 안에 표시

            .table1 {
                border-collapse:collapse;
                width:300px;
                table-layout:fixed;
                word-break:break-all;
                height:auto;  /*셀에서 내용이 벗어나지않도록 auto설정*/
            }          

text-align:셀 안의 텍스트 정렬 left right center

vertical-align: 인라인이나 인라인블럭 요소의 세로 정렬방법 

            .va1 { vertical-align:top; }
            .va2 { vertical-align:bottom; }
            .va3 { vertical-align:middle; }