오늘 수업은 어제보다 더 재미있게 들었다!
수업시간에 간간히 정리하며 이해했지만, 확실히 벨로그로 한 번 더 정리를 하게 되니 더 기억에 오래 남는 것 같다.
앞으로도 꾸준히 써야지
Ex
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="CSS 파일위치">
</head>
<body>
</body>
</html>
브라우저마다 각각의 기본 세팅값이 다르다.(User Agent Stylesheet)
css reset을 하는 이유는 브라우저 간 세팅값이 각각 다르기 때문에 이 차이를 최대한 없애는 코드를 넣어서
브라우저 요소들의 스타일이 0인 상태에서 시작하기 위한 것이다.
Ex
/* UA Reset */
body {
margin: 0;
}
/* Componets */
body {
background-color: orange;
}
예제에서는 margin을 사용했기 때문에 margin으로 설명한다
(0) 내가 쓰는 크롬 브라우저에서는 body
의 margin
기본 세팅값은 8px로 지정되어 있기 때문에,
이것을 아예 margin
의 초기값(initial value)으로 지정하고 시작한다.
(1) margin
의 초기값으로 세팅한 후,
(2) 같은 type selector라도, reset한 selector와 Components가 있는 selector는 따로 표기한다.
(3) 초기값으로 셋팅한 부분엔 위에 주석으로 UA Reset으로 구분해두면 나중에 보기 편하다!
직계 부모가 제공해주는 콘텐츠 영역(Containing block)의 너비,
즉, 부모의 너비만큼 가득 차게 자동으로 계산해서 적용한다.
그렇다면 width나 margin의 값을 지정해준 후 남는 공간은 어떤 공간인가?
→ 사용 가능한 여유 공간 (available space)
오늘 수업에서 앞뜰, 정원 등등 다양한 비유가 나왔다. 정확한 명칭은 사용가능한 공간! 앞으론 이렇게 알기
Ex 1. width
값 지정 후 사용 가능한 공간은?
div {
width: auto;
}
일 경우: div
의 너비는 브라우저가 부모 요소가 제공해주는 컨텐츠 영역을 자동으로 계산한다.
따라서, 사용 가능한 공간은 전체 너비로 사용된다.
(집(눈에 보이는 것)과 마당(눈에 보이지 않는 것)으로 비유하자면, 집이 마당 영역을 다 차지하고 있는 것이다.)
* width: 100%;와 width: auto; 다른 점
Ex 2.
div {
margin: auto;
}
일 경우: 사용 가능한 공간은 div
의 여백으로 사용된다.
(집과 마당으로 비유하자면, 여백이 되어 보이지 않을 뿐, 여전히 마당이 내 소유인 것처럼, 여백 공간도 div
소유)
부모 요소에게 지정된 속성 중 몇 가지는 자식 요소로 값이 전달되는 것
상속의 우선 순위: 부모의 지정 값 < 자식의 지정 값
text-align
, line-height
, color
, font
등width
, height
, padding
, margin
, border
, display
, background
등Ex 1.
부모 {
color: black;
}
자식 {
}
위의 상황에서 color
속성은 상속이 가능한 속성이다.
-> 자식의 color
값= 부모에게 상속된 black
Ex 2.
부모 {
color: black;
}
자식 {
color: red;
}
위 상황에서 자식의 color
값은 red로 지정되었기 때문에
-> 부모 요소에서 color
값 상속되지 않음
Ex 3. 만약 부모요소가 div
이고 img
가 자식요소일 때
div {
display: block;
}
img {
display: 뭘까요?
}
위 상황에서 div
내부에 display: block
이 설정되어 있더라도 display
속성은 상속이 되지 않기 때문에 img
에 상속이 되지 않는다.
따라서 img
의 display
값은 inline
(기본값)이다.
(그러나, img
에 display: inherit;
을 추가하면 강제로 상속이 되게 할 수 있다.)
Block
(Container)
* 모든
inline
요소를 포함할 수 있고, 다른block
요소 또한 일부 포함 가능
* 기본적으로 가로폭 전체의 넓이를 가지는 직사각형 형태
* 한 줄 전체 공간을 차지 (한 줄에 하나씩)
->block-level element
뒤에는 줄바꿈 O
width
와 height
를 통해 사이즈 조절 가능width
: 화면에서 한 줄을 다 차지함 (100&와 전부를 구별하자)height
: 컨텐츠만큼 차지<div>
, <ul>
, <h1~6>
, <p>
, <article>
, <section>
등inline
(Contents)
* 항상
block
요소 안에 포함되어 있으며,
inline
요소 안 다른inline
요소가 포함될 수 있다.
* 컨텐츠만큼의 크기를 가진다.
(컨텐츠가 끝나는 지점까지 넓이로 가짐=줄바꿈X)
-> 각 줄 안에서inline element
는 쓰기 모드에 따라 수직or수평 모드로 정렬
width
와 height
의 개념 자체가 없다.margin
적용X, 공간도 차지하지 않음padding
적용X, 시각적으론 보이지만 공간을 차지하진 않는다. line-height
나 text-align
을 줌으로써 텍스트의 중앙, 좌&우측 정렬 가능img
요소inline element
지만 width
값, height
값이 이미 적용되어 있다.margin
, padding
또한 적용 가능<a>
, <img>
, <span>
,<script>
, <em>
, <map>
등inline-block
*
inline
의 특성과block
의 특성을 합친 것
* 컨텐츠 만큼의 크기를 가진다
* 줄바꿈 X
block
취급, 외부: inline
취급block
이지만, 배치된 바깥 레벨에서는 inline
으로 취급함inline
의 특성을 가지기 때문에text-align
속성에 영향 받는다block
의 특성을 가지기 때문에width
값과 height
값을 지정 가능inline
or block
or inline-block
element 라도 display
속성에 원하는 값을 넣으면 바꿀 수 있다!
Ex. inline
을 block
으로 바꿀 때
: 원하는 셀렉터에 display: block;
을 추가한다
Q.
h1
에text-align: center
를 넣었는데,h1
의 위치는 그대로고 안의 내용(콘텐츠)만 중앙 정렬이 되었어요!
A.
h1
은 block-level element
이다.text-align
은 h1
자체를 가운데로 옮기는 것이 아닌 h1
의 콘텐츠만 가운데로 정렬한다.h1
뿐만 아니라 p
, ... 등등의 block
속성을 가진 셀렉터에도 text-align
속성을 사용하고 싶다면,block
속성을 가진 태그에는 콘텐츠만 가운데로 정렬이 된다!!!margin
의 단축속성
margin: 0 auto 40px;
: 상 | 좌우 | 하margin: 5% auto;
: 상하 | 좌우margin: 2px 1em 0 auto;
: 상 | 우 | 하 | 좌margin: 100px;
: 네 면 모두 적용
시계방향으로 돌아간다고 생각하면 된다
끝.
inline-block 헷갈렸었는데 정리가 잘되었습니다 감사합니다!