id
- 고유한 속성으로 HTML 문서에 하나만 사용 가능하다.
- 고유한 값이기 때문에 특별한 제어 가능, 검색에도 용이하다.
class
- 하나의 HTML 문서 안에서 중복해서 사용 가능하다.
- 하나의 태그에 여러 개의 다른 class 이름을 공백을 기준으로 나열할 수 있다.
1.inline
<p style="border:10px solid gray; color:green; font-size:5em;">
2.internal
<head>
<style>
p {
font-size : 10em;
border:10px solid gray;
color: green;
}
</style>
</head>
<body>
<div>...</div>
</body>
3.external
<html>
<head>
<link rel="stylesheet" href="/address/style.css">
</head>
<body>
<div>
...
</div>
</body>
</html>
외부에 css 파일 만들어서 href로 연결해주는 방식 rel은 연결문서와의 관계를 말해준다.
<div id="a" class="b">
text....
</div>
#a{
color : red; /*id에 style 적용 #이용 */
}
.b{
color : blue; /*class에 style 적용 .이용 */
}
div{
color : green; /*엘리먼트에 style 적용*/
}
<div id="hi"> <div> <span> span tag </span> </div> <span> span tag 2 </span> </div>
#hi span{color: red;} /*div 안의 모든 span 요소가 빨간색 */
#hi > sapn{color: red; } /*div 바로 아래 자식 요소인 spans tag2 만 빨간색이 됨*/
<div id="hi"> <h2>단락 선택</h2> <p>첫번째 단락입니다</p> <p>두번째 단락입니다</p> <p>세번째 단락입니다</p> <p>네번째 단락입니다</p> </div>
#hi > p:nth-child(2) { color : red } /*위처럼 하면 첫번째 단락이 빨간색이 된다. hi class에서 p 자식 중에 선택 하려해도 앞의 형제 요소를 고려하여 숫자를 넣어야 한다. */ #jisu > p:nth-child(1) { color : red } /*아무 것도 빨간색으로 변하지 않는다. */ #hi :nth-child(1) { color : red } /*위처럼 하면 단락 선택이 빨간색이 된다. */
- 한 줄에 나열하지 않고 화면에 그 자체로 한 줄을 완전히 차지한다.
<p>, <div>, <h1>
대표적인 block 태그이다.- width, height, margin, padding 속성이 모두 반영된다.
- 전후 줄바꿈 없이 한 줄에 나란히 배치된다.
<span>, <a>, <em>
이 대표적인 inline 태그이다.- width, height 속성은 지정해도 무시된다.
- margin, padding 속성은 좌우 간격만 반영되고 상하 간격은 반영되지 않는다.
- inline 처럼 한 줄에 배치되지만 width, height, margin, padding 을 지정해줄 수 있다는 점이 다르다.
<button>, <input>, <select>
태그가 있다.- 한 줄에 여러 엘리멘트를 정확한 너비만큼 배치할 수 있다.
- flex는 부모 요소인 Flex Container, 자식 요소인 Flex Item로 구성된다.
- flex 아이템들은 가로 방향으로 배치되고, 자신이 가진 내용물 너비 만큼만 차지하게 된다. 높이는 컨테이너 높이만큼 늘어난다.
- flex-direction: row; (기본값), column;, row-reverse;, column-reverse; 설정도 가능하다.
- 기본 속성, 순서대로(위에서 아래로, 좌에서 우로) 배치된다.
- 자기 자신을 기준으로 top, right, bottom, left 의 오프셋값을 적용한다.
- static이 아닌 상위 엘리먼트의 position을 기준으로 top, right, bottom, left 의 오프셋값을 적용한다.
- 전체화면(viewport)의 좌측, 맨 위를 기준으로 동작한다.
- padding: 10px; : 위, 오른쪽, 바닥, 왼쪽 모두 10px
- padding: 10px 5px; : 위, 바닥 10px, 오른쪽, 왼쪽 5px
- padding: 10px 5px 7px; : 위 10px, 오른쪽, 왼쪽 5px, 바닥 7px
- padding: 10px 5px 7px 3px; : 위 10px, 오른쪽 5px, 바닥 7px, 왼쪽 3px
- border: 너비 스타일 색; 순으로 축약형으로 사용 가능
- padding과 같은 방식으로 오프셋 설정 가능 클릭! 시각적으로 확인