2021년 6월 21일에 작성된 문서 3번 입니다.
CSS 배운 내용을 정리했습니다.
(하나에 다 쓰기엔 내용이 길어져 문서 3개로 나누었습니다.)
모든 콘텐츠는 각자의 영역을 가지며, 일반적으로 하나의 콘텐츠로 묶이는 엘리먼트(요소)들이 하나의 박스가 됩니다.
박스가 차지하는 영역을 시각적으로 확인하기 위해 배경색을 꼭 넣으세요!
Block 요소: <div>
, <p>
Inline 요소: <span>
다른 요소 옆에 붙으면서, 자체적으로 고유의 크기 가짐.
즉,
block | inline-block | inline | |
---|---|---|---|
줄바꿈 여부 | 줄바꿈이 일어남 | 줄바꿈이 일어나지 않음 | 줄바꿈이 일어나지 않음 |
기본적으로 갖는 너비(width) | 100% | 글자가 차지하는 만큼 | 글자가 차지하는 만큼 |
width, height 사용 가능여부 | 가능 | 가능 | 불가능 |
심미적인 용도 + 개발 과정에서도 매우 의미있게 사용
각 영역이 차지하는 크기를 파악하기 위해, 레이아웃을 만들면서 그 크기를 시각적으로 확인할 수 있도록 만듭니다.
p {
border: 1px solid red;
/*테두리 실선 확인.*/
/*p태그에 1px 빨간색 실선 추가*/
}
border
속성에 적용된 값:border-width
)border-style
)border-color
)border-style
의 값 중 하나를 바꾸자.border
속성만으로 둥근 모서리 만들 수 없다.background
속성이 불투명해야함.p {
margin: 10px 20px 30px 40px;
/*p태그 상하좌우에 여백을 추가*/
}
top
, right
, bottom
, left
(시계 방향)p { /*이 경우는 방향을 특정한 속성*/
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
/*위치를 특정해 여백을 추가*/
}
이 규칙은 padding에도 동일하게 적용됨.
바깥 여백에 음수값을 지정 가능.
p {
margin-top: -2rem;
/*p태그 margin-top 속성에 음수 값을 지정*/
}
p {
padding: 10px 20px 30px 40px;
/*p태그의 padding 속성에 여백을 추가*/
}
배경색이나 border를 적용하면, 안쪽 여백을 더욱 선명하게 확인할 수 있습니다.
p {
padding: 10px 20px 30px 40px;
border: 1px solid red;
background-color: lightyellow;
/*p태그에 border, background-color 속성을 추가*/
}
p {
height: 40px;
overflow: auto;
/*p태그에 overflow 속성을 지정.*/
/*박스보다 큰 콘텐츠에 스크롤을 표시*/
}
auto
: 콘텐츠가 넘치는 경우 스크롤 생성. hidden
값을 사용. overflow-x
속성과 overflow-y
속성을 이용 시, 두 방향을 모두 지정 가능.박스 크기를 측정하는 기준은 매우 중요
아래의 예시를 보자.
<!--html 예시-->
<div id="container">
<div id="inner">
안쪽 box
</div>
</div>
/*CSS 예시*/
#container {
width: 300px;
padding: 10px;
background-color: yellow;
border: 2px solid red;
}
#inner {
width: 100%;
height: 200px;
border: 2px solid green;
background-color: lightgreen;
padding: 30px;
}
#container
너비: 324px (300px이 아님) 300px (콘텐츠 영역)
+ 10px (padding-left)
+ 10px (padding-right)
+ 2px (border-left)
+ 2px (border-right)
#inner
의 100%: 364px (300px이 아님) 300px (300px의 100%)
+ 30px (padding-left)
+ 30px (padding-right)
+ 2px (border-left)
+ 2px (border-right)
처음 레이아웃 디자인을 할 때 가장 많이하는 실수
레이아웃 디자인을 조금 더 쉽게하는 방법
*
: 모든 요소 선택 셀렉터 box-sizing
속성 추가하고, border-box
라는 값을 추가.* {
box-sizing: border-box;
/*모든 요소에 'box-sizing: border-box'를 추가*/
}
box-sizing: border-box
적용 box-sizing
: HTML 문서 전체에 적용 box-sizing
을 일부 요소에만 적용하는 경우, 혼란을 가중 앞으로 레이아웃과 관련된 이야기를 할 때에는 border-box 계산법을 기준으로 이야기합니다. 박스 크기 측정 기준 두가지를 항상 염두해주세요.
content-box
: 는 박스 크기 측정 기본값
대부분의 레이아웃 디자인에서 여백과 테두리를 포함하는 박스 크기 계산법인 border-box
를 권장
Written with StackEdit.