화면 전체를 사용. 한줄에 한개 들어감 ex) h1
화면을 일부만 사용 ex) a
// block <=> inline 서로 바꾸는 방법
h1 {display: inline;}
a {display: block;}
한줄에 여러개가 들어감
* {
box-sizing : border-box;
}
block | inline-block | inline | |
---|---|---|---|
줄바꿈 여부 | 줄바꿈이 일어남 | 줄바꿈이 일어나지 않음 | 줄바꿈이 일어나지 않음 |
기본적으로 갖는 너비(width) | 100% | 글자가 차지하는 만큼 | 글자가 차지하는 만큼 |
width, height 사용 가능 여부 | 가능 | 가능 | 불가능 |
* { }
h1 { }
div { }
section, h1 { }
#only { }
.widget { }
.center { }
a[href] { }
p[id="only"] { }
p[class~="out"] { }
p[class|="out"] { }
section[id^="sect"] { }
div[class$="2"] { }
div[class*="w"] { }
header > p { }
<header>
<p> <!-- 선택 -->
<span>
<p></p>
</span>
</p>
<p> <!-- 선택 -->
<span>
<p></p>
</span>
</p>
</header>
header p {}
<header>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
<p><!-- 선택 -->
<span>
<p><!-- !!선택!! -->
</p>
</span>
</p>
</header>
section ~ p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
<p></p> <!-- 선택 -->
</header>
section + p { }
<header>
<section></section>
<p></p> <!-- 선택 -->
<p></p>
<p></p>
</header>
a:link { } /*사용자가 방문하지 않은 <a>요소를 선택합니다.*/
a:visited { } /*사용자가 방문한 <a>요소를 선택합니다. */
a:hover { } /* 마우스를 요소 위에 올렸을 때 선택합니다. */
a:active { } /* 활성화 된(클릭된) 상태일 때 선택합니다. */
a:focus { } /* 포커스가 들어와 있을 때 선택합니다. */
input:checked + span { } /*체크 상태일 때 선택합니다. */
input:enabled + span { } /*사용 가능한 상태일 때 선택합니다. */
input:disabled + span { } /*사용 불가능한 상태일 때 선택합니다. */
p:first-child { }
ul > li:last-child { }
ul > li:nth-child(2n) { } //짝수
section > p:nth-child(2n+1) { } //홀수
ul > li:first-child { }
li:last-child { }
div > div:nth-child(4) { }
div:nth-last-child(2) { } //짝수
section > p:nth-last-child(2n + 1) { } //홀수
p:first-of-type { }
div:last-of-type { }
ul:nth-of-type(2) { }
p:nth-last-of-type(1) { }
input:not([type="password"]) { }
div:not(:nth-of-type(2)) { }
input[type="text"]:valid { }
input[type="text"]:invalid { }
width, height는 여백을 포함하지 않아서 크기를 계산할때 오차가 생긴다.
그리고 body에도 여백이 있으므로 0,0에서 시작하는 것이 아니라 내가 계산한 범위를 벗어나게 된다. 이를 방지하기 위해서 레이아웃을 리셋하고 시작하는 것이 중요하다
위에 사이트에서 레이아웃 리셋을 복붙해도 된다.
아니면 밑처럼 설정해줘도 리셋된다.
* {
box-sizing: border-box;
/* 박스크키에 여백도 포함한다 */
}
body {
margin: 0;
padding: 0;
border: 0;
/* 여백을 다 없앤다 */
}