id | class |
---|---|
#ID명 | .CLASS명 |
한 페이지에 하나의 정의 (하나의 id 태그만 사용) | 반복적으로 사용되는 스타일을 정의 |
중복해서 적용 안됨 | 중복해서 적용 가능 |
우선순위 높음 | 우선순위 낮음 |
#Logo{
background-color : blue;
color : white;
}
.gray{
background-color : gray;
}
.blueText{
coloe : blue;
}
# id는 중복 X
<div id="Logo">Logo</div>
# class는 중복하여 적용 가능
<div class="gray blueText">Hello World</div>
< CSS 박스모델 >
요소(즉 태그)는inline
요소와 block
요소로 나눌 수 있음
inline
<span>
block
<div>
visible
: 눈에 보임hidden
: 숨김(자신의 영역은 계속 차지)display : none
은 요소가 차지하고 있던 공간이 사라짐collapse
: <table>
태그에서만 사용 가능하며, 선택 테이블의 행과 열을 숨김 (테이블의 행과 열 요소만 지정할 수 있으며, 그 외 요소의 지정하면 hidden으로 해석)inherit
: 부모 요소의 값을 상속(default)none
: 보이지 않음block
: 블록 박스inline
: 인라인 박스inline-block
: block과 inline의 중간 형태inline
의 특징block
의 특징<div class="flex-container">
<div class="flex-item">aaa</div>
<div class="flex-item">bbbbbb</div>
<div class="flex-item">ccccc</div>
</div>
참고 및 이미지 출처 ) https://studiomeal.com/archives/197
부모 요소 → flex-container
, 자식 요소 → flex-items
컨테이너 : Flex의 영향을 받는 전체 공간
설정된 속성에 따라, 각각의 아이템들이 어떠한 형태로 배치되는 것
flex의 속성들은 2가지로 나뉨
display : flex;
(기본)
flex-direction
: 아이템들이 배치되는 축의 방향을 결정
flex-wrap
: 아이템의 줄바꿈을 어떻게 할지 결정
flex-flow : (flex-direction) (flex-wrap)
: 2개의 속성을 한 번에 지정함
💡 justify vs align : justify는 메인축 방향으로의 정렬, align은 수직축 방향으로의 정렬
justify-content
: 메인축 방향으로의 아이템 정렬
align-items
: 수직축 방향으로의 아이템 정렬
align-content
⭐⭐
flex-wrap : wrap
인 상태에서 아이템들의 행이 2줄 이상일 때, 수직축 방향 정렬flex-basis
: flex 아이템들의 기본 크기를 설정flex-grow
: 유연하게 늘리기 /* 1:2:1의 비율로 세팅할 경우 */
.item:nth-child(1) { flex-grow: 1; }
.item:nth-child(2) { flex-grow: 2; }
.item:nth-child(3) { flex-grow: 1; }
flex-shrink
: 유연하게 줄이기 ⭐⭐flex : (flex-grow) (flex-shrink) (flex-basis)
: 3개의 속성을 한번에 설정position
속성은 요소의 정확한 위치 지정을 위해 top
, left
, bottom
, right
속성과 함께 사용static
position
속성이 static
이면, top
, left
, bottom
, right
속성 무시relative
top
, left
, bottom
, right
속성으로 현재 위치에서 얼마나 떨어지게 할지를 지정z-index
를 사용absolute
top
, left
, bottom
, right
속성으로 현재 위치에서 얼마나 떨어지게 할지를 지정static
이 아닌 다른 position
값을 가진 것이 없다면 root element인 body
를 기준으로 움직이다.display
속성을 absolute
로 설정하면, 부모 요소의 display
속성을 relative
로 지정함fixed
sticky
sitcky
로 설정된 영역은 설정된 위치에 도달하기 전까지는 static
속성처럼 행동하다가 설정된 위치에 다다르면 fixed
속성처럼 행동함z-index
속성으로 정합니다.a:hover {
color: red;
}
overflow
프로퍼티에 지정된 값에 따라 보여짐visible
: 기본 값. 넘칠 경우 컨텐츠가 상자 밖으로 보여짐hidden
: 넘치는 부분은 잘려서 보여지지 않음scroll
: 스크롤바가 추가되어 스크롤 가능(가로, 세로 모두 추가)auto
: 컨텐츠 량에 따라 스크롤바를 추가할지 자동으로 결정 div.container {
overflow: visible;
border:solid 1px green;
height: 200px;
width: 200px;
}
@media screen and (max-width: 768px){
body { background-color: lightgreen; }
}
font-size
속성 값에 비례해서 결정되는 상대 단위font-size
속성 값을 기준으로 함<html>
rem
은 **html
요소의 font-size
속성 값을 기준**으로 함font-size
속성 값에 비례해서 결정되는 상대 단위font-size
속성 값이 기준vh
: Viewport Heightvw
: Viewport Width1vh
는 실제 높이값의 1/100을 나타냄.1000px
일 때, 1vh
는 10px
img {
width: 20%
max-width: 500px;
}
/*
화면이 엄청 커지면 20%로 설정해 놨던 이미지나 부분도 커짐
근데 그 부분은 크게 키우고 싶지 않을 때
전체 화면의 20%이지만 500px이상으로 더이상 커지게 하고 싶지 않을 때
max-width 속성을 사용해 최대 너비를 지정해줌
*/
웹 브라우저마다 기본 태그에 대한 스타일링이 모두 다르기 때문에
동일한 CSS스타일을 보여주기 위해서는 스타일 default값을 초기화 해야함
참고 ) https://meyerweb.com/eric/tools/css/reset/
참고 ) https://www.youtube.com/watch?v=Eim11QYLfEY