웹에서 사용되는 표준 기술이나 규칙. W3C의 표준 제정 단계의 권고안에 해당하는 기술.
조금씩 다르게 구성된 브라우저들 에서 동일한 사용자 경험을 줄 수 있도록 하는 기술.
-
- 픽셀이 모여 만들어진 정보의 집합, 레스터(Raster) 이미지라고도 부름.
- 정교하고 다양한 색상을 자연스헙게 표현
- 확대 축소시 계단 현상, 품질 저하.
- 종류
- jpg
손실압축, 24비트, 1600만 색상, 용량을 쉽게 조절 가능.
- png
비손실 압축, 8비트/24비트 , 투명도 지원, W3C 권장 포맷.
- gif
비손실 압축, 여러 이미지를 한 개의 파일에 담을 수 있음(애니메이션), 8비트 색상만 지원.(다양한 색상 표현 x)
- WEBP
- jpg, png, gif 를 모두 대체할 수 있는 이미지 포맷.
- 완벽한 손실/비손실 압축, 애니메이션, 투명도 지원.
- IE 에서는 지원하지 않음.
- jpg
-
- 점, 선, 면의 위치, 색상 등 수학적 정보의 형태로 이루어진 이미지.
- 정교한 이미지를 표현하기 어려움.
- svg
- 마크업 언어 기반의 벡터 그래픽을 표현.
- 해상도의 영향에서 자유로움
- CSS, JS로 제어 가능.
- 파일 및 코드 삽입 가능.(태그와 수학적 정보를 활용.)
<tag>content</tag>
태그 안에 또 다른 태그가 포함될 수 있는데 이를 하위(후손)요소, 상위(조상) 관계라고 한다. 상위 하위 요소는 상,하위의 모든 요소를 표현하며, 바로 한 단계의 하위, 상위 요소는 자식, 부모요소 라고 표현한다.
예를들어
<tag1>
<tag2>
<tag3></tag3>
</tag2>
</tag1>와 같은 관계에서 tag 3은 tag 2의 자식요소 이고, tag1 과 tag2 는 tag3의 조상 요소 이다.
-
<tag> <!-- HTML 1~5 편리함. --> <tag/> <!-- XHTML / HTML5 안전함. -->
-
<tag attribute="value">
열리는 태그에는 속성을 사용할 수 있다. img 태그의 src alt 등 ..
-
요소가 화면에 출력되는 속성으로 인라인 요소는 글자를 만들기 위한 요소(span 등..)이고, block 요소는 상자(레이아웃)을 만들기 위한 요소(div 등..)이다.
-
Inline
- 기본적으로 포함한 컨텐츠의 크기만큼 자동으로 크기가 조절된다.(가로 세로 사이즈를 가질 수 없음.)
- padding, margin 또한 좌, 우만 가능.
- 자식으로 블록 요소가 올 수 없다.
-
Block
- 가로 길이는 부모요소의 크기만큼 자동으로 늘어나 수직으로 쌓인다.
- 세로 길이는 컨텐츠의 크기에 맞춰짐.
- 그러나 width, height 속성을 이용하영 크기를 조절할 수 있다.
-
-
문서의 HTML 버전을 지정. 웹 브라우저가 어떤 HTML 버전의 해석 방식으로 페이지를 해석하면 되는지 알려주는 역할.
-
html 문서의 시작, 종료 지점. 즉, 범위를 브라우저에게 알려줌.
-
웹 브라우저가 해석해야할 제목, 설명, 사용할 파일 위치, 스타일 등의 웹 페이지에 보이지 않는 정보를 작성하는 범위.
-
문서의 구조를 나타내는 범위. 사용자 화면을 통해 보여지는 영역(로고, 헤더, 푸터, 내비게이션, 메뉴, 이미지 등..)
-
- 이미지, css 문서 등 외부 문서를 가져와 연결.
- rel: 가져올 문서와 관계(css: stylesheet, 파비콘: icon ..)
- href: 외부 파일의 경로
-
html 문서 안에서 css 문법을 사용할 수 있는 범위.
-
- javascript 파일 연결.
- 또는 src를 사용하지 않고, 해당 태그 안에 js를 직접 작성할 수 있다.
- script 태그를 head 태그 내에 작성하면 아직 body가 로드되지 않았기 때문에 태그를 읽어올 수 없는 등의 문제가 생긴다. 이 때, defer 라는 속성을 이용하여 body가 모두 로드된 후에 가져오도록 지정할 수 있다.
-
제작자, 내용, 키워드, viewport 등의 정보를 검색 엔진이나 브라우저에게 제공한다.
-
- 특별한 의미가 없는 구분을 위한 블록 요소, Division
-
- 제목을 의미하는 블록 요소, Heading
- h1~h6 까지 존재.
-
- 문장을 의마하는 블록 요소 Paragraph
-
- Unordered List, 순서가 필요 없는 목록의 집합을 나타내는 블록 요소.
- 한 개 이상의 li 태그가 필요.
-
- List Item, 목록 내 각 항목을 나타내는 블록 요소.
- ul 태그로 감싸져 있어야 한다.
-
특별한 의미가 없는 구분을 위한 인라인 요소.
-
- 이미지를 넣을 수 있는 인라인 요소.
- 태그 뿐만 아니라 css 문서에서
background: url("")을 이용하여 이미지를 추가할 수도 있다.
-
- Anchor(닻), 링크를 나타내는 인라인 요소.
- 💡 브라우저에서는 디렉토리에서 가장 먼저 index.html 을 찾는다 때문에 링크 경로에 디렉토리까지만 명시하면 자동으로 index.html 을 찾아간다.
- target 속성을 이용하여 새 탭에서 열지(_blank), 새로운 창에서 열지 등을 명시할 수 있다.
-
줄바꿈을 위한 인라인요소, Break
-
- 사용자가 데이터를 입력하는 Inline-block 요소.
- 인라인 요소의 특징 + 블록 요소의 특징(가로, 세로, 위 아래 여백 지정 가능.)
- type
- text : 텍스트를 입력 받는다, value, placeholder 등의 속성을 사용할 수 있다.
- checkbox : 태그를 이용하여 checkbox의 라벨링 가능, checked 속성으로 미리 체크해둘 수 있다.
- radio : 같은 그룹(name 속성의 값이 같은) 중 하나만 선택 가능한 선택 옵션.
-
- 행과 열의 집합. 테이블 요소.
<tr><td></td><td></td></tr>
body 태그 내의 모든 요소에서 사용할 수 있는 속성
-
브라우저에서 해당 요소에 마우스 커서를 올렸을 때 나오는 툴팁. 요소의 정보나 설명을 지정한다.
-
요소의 CSS 스타일을 지정.
-
요소를 지칭하는 중복 가능한 이름.
-
요소를 지칭하는 고유한 이름
-
요소에 데이터를 지정.
<div data-fruit-name ="apple">사과</div> <div data-fruit-name ="banana">바나나</div>
const els = document.querySelectorAll('div'); els.forEach(el => { console.log(el.dataset.fruitName) //fruit-name -> 카멜케이스로 변경됨. })
선택자 {속성: 값;}
-
- HTML 문서에서
<style></style>을 이용하여 스타일을 작성하는 방식. - 유지보수 측면에서 권장하지 않는 방식.
- HTML 문서에서
-
<div style="color: red; margin: 20px;"></div>
와 같이 HTML의 요소에 style 속성을 이용하여 스타일을 작성하는 방식. 우선순위가 매우 높으므로 사용에 주의.
-
<link rel="stylesheet" href="./main.css">
와 같이 link 태그를 이용하여 CSS 문서를 연결하는 방식이다. 병렬 연결 방식.
-
@import url("./sub.css");
CSS 문서에서 @import 규칙으로 또 다른 CSS 문서를 가져와 연결하는 방식이다. 직렬 연결 방식.
언뜻 보면 앞의 문서가 다른 문서를 import 하기 때문에 import 되는 문서가 스타일을 덮어 씌워 우선순위를 가져갈 것 같지만, 실제로는 앞의 문서가 우선순위를 가진다.(가까울 수록 우선순위가 높다.)앞의 CSS 문서가 모두 해석되기 전까지는 import 된 문서는 아직 해석하지 않는다. 때문에 지연이 발생하고, 이를 고의로 활용할 수도 있다.
하지만, 이러한 경우가 아니라면 병렬 연결 방식을 권장한다.
*: 전체 선택자(Universal Selector), 모든 요소를 선택.{tagName}: 태그 선택자(Type Selector), 태그 이름에 해당하는 요소 선택..{className}: 클래스 선택자(Class Selector), class 속성의 값에 해당하는 요소 선택.#{idName}: 아이디 선택자(Id Selector), id 속성 값에 해당하는 요소 선택.
-
일치 선택자(Basic Combinator)
선택자 A와 B를 동시에 만족하는 요소.
div.test {...} /* div 요소이면서 class 속성의 값이 test인 요소. */
-
자식 선택자(Child Combinator)
선택자 A의 자식 요소 B 선택.
div > span {...} /* div 태그의 자식인 span */
-
하위(후손) 선택자(Descendant Combinator)
선택자 A의 하위 요소 B 선택.
div span {...} /* div의 안에 있는(후손인) span */
-
인접 형제 선택자(Adjacent Sibling Combinator)
선택자 A의 다음 형제 요소 하나를 선택
<ul> <li>1</li> <li class="A">2</li> <li>3</li> <li>4</li> </ul>
.A + li {...} /* class 속성 값이 A인 요소의 다음 형제, 위의 예시에서는 3이 들어있는 li 요소. */
-
일반 형제 선택자(General Sibling Combinator)
선택자 A의 다음 형제 요소 모두를 선택
<ul> <li>1</li> <li class="A">2</li> <li>3</li> <li>4</li> </ul>
.A ~ li {...} /* class 속성 값이 A인 요소의 다음 형제 모두를 선택, 위의 예시에서는 3, 4 */
-
A:hover: 마우스를 요소에 올렸을 때 적용.💡 A 요소에서 transision 속성을 이용하여 부드럽게 전환이 가능하다.
-
A:focus: 포커스 되면 동작. input, textarea 요소 등..💡 focus가 가능하지 않은 요소의 html 속성에 tabindex="-1"를 부여하면 focus가 가능해진다.
-
A:active: 마우스를 클릭하고 있는 동안 적용. -
A:first-child: 선택자 A가 형제 요소중 첫째라면 선택.<div> <span>1</span> <span>2</span> <span>3</span> </div>
div span:first-child{...} /* div의 후손중, span이고 형제중 첫번째. span 태그중 1이 선택된다. */
만약,
<div> <div>...</div> <span>1</span> <span>2</span> <span>3</span> </div>
와 같은 상황이라면 선택되는 요소는 존재하지 않는다.
-
A:last-child: 선택자 A가 형제 요소중 마지막 요소라면 선택. -
A:nth-child(n): 선택자 A가 형제 요소중 n 번째라면 선택.nth-child(2n) 과같이 짝수, 2n+1과 같이 홀수, 3n 과 가티 3의 배수 번째로 선택도 가능하다. n은 0부터 시작한다. n+2, n+3 과 같이 다양한 산술 표현 가능.
-
A:not(B): 부정 선택자(Negation), 선택자 B가 아닌 A 요소 선택.span:not(.none) /* span 태그중 클래스 속성값이 none 인 요소를 제외한 나머지 요소. */ *:not(span) /* span 요소를 제외한 모든 요소 */
A::before: 선택자 A 요소의 내부 앞에 내용을 삽입. 값을 비워두더라도 항상 content 속성을 사용해야 한다..box::before{ content: "앞에 올 내용!" }
A:after: 선택자 A 요소의 내부 맨 뒤에 내용을 삽입.
개발자 도구에서 확인해 보면 ::before, ::after 로 가상요소가 생성된 것을 확인 할수 잇고, 해당 자리에 content의 값이 들어간다.
가상 요소는 인라인 요소이지만 display 속성을 이용하여 block 요소로 변경한 후 다양한 모양으로 만들어 활용이 가능하다.
-
[attribute]: 속성을 포함한 요소 선택.[type] {...} -
[attribute = "value"]: 속성을 포함하고 값 또한 일치하는 요소 선택.[type = "button"] {...}
여러 선택자에 의해 대상이 된 경우 어떤 선언의 CSS 속성을 우선 적용할지 결정하는 방법.
<div id="yellow" class="green" style="color: orange"> <!-- 1000, 되도록 권장하지 않음. -->
Hello World!!
</div>div {
color: red !important; /* 무한대, 권장하지 않음. */
}
#yellow {
color: yellow; /* 100 */
}
.green {
color:green; /* 10 */
}
div {
color:blue; /* 1 */
}
* {
color: darkblue; /* 0 */
}
body {
color: violet; /* x, 점수가 존재하지 않음. 다른 선택자에 의해 속성 값이 적용되어 있지 않다면 부모의 값을 상속. */
}위의 예시에서 순서는 css 에서와 같고, 다만 요소에 직접 선언된 style 속성의 우선순위는 !important 다음으로 높다. 선택자의 옆의 주석에서 우선순의 점수를 확인할 수 있다. 이 점수를 토대로 우선순위를 결정하게 된다.
ex) .box li.item -> 클래스선택자 10, 태그 선택자 1, 클래스 선택자 10 = 21점
💡 가상 클래스 요소는 10점. 가상 요소 선택자는 1점을 가진다. (:not은 계산하지 않는다.)
동일한 점수에서는 더 나중에 해석되는 코드가 적용이 된다.
<div class="car"> 자동차
<div class="truck">트럭</div>
<div class="bus">버스</div>
</div>.car {
color: brown;
}위의 예시에서 클래스가 car 인 요소에 brown 색을 부여 했다. 하지만 결괄르 보면
하위의 속성도 모두 색이 변경됨을 확인할 수 있는데 이를 스타일의 상속이라고 한다.
자식은 부모로부터 스타일을 상속받는다.
모든 속성이 상속되는 것은 아니며,
- font-style
- font-weight
- font-size
- line-height
- font-family
- color
- text-align
등의 문자와 관련된 속성들은 대부분 상속된다.(모두는 아님.)
자동으로 상속되는 속성이 아니더라도 강제로 상속시킬 수 있게 하는 방법.
.parent {
width: 300px;
height: 200px;
background-color: orange;
}
.child {
width: 100px;
height: inherit;
background-color: red;
}와 같이 속성의 값으로 inherit 를 부여.
-
박스 모델: margin, padding 등..
-
글꼴, 문자: 크기, 두께, 기울임, 색, 폰트 등..
-
배경: 색상, 이미지
-
배치: 요소를 특정 위치에
-
플렉스(정렬) : 수평 정렬
-
전환: 전 -> 후 상태로 애니메이션 처리.
-
변환: 회전, 이동, 크기 조절 등.. 2D, 3D 변환이 있다.
-
띄움: 워드의 글자처럼 취금 같은 기능. 글자가 옆으로 자연스럽게 흐른다.
-
애니메이션: 좀 더 복잡한 구조의 애니메이션
-
그리드: 2차원의 레이아웃 구조를 생성.
-
다단: 신문 처럼 2단, 3단 등으로 나눌 수 있는 기능.
-
필터: 블러링, 색반전, 흑백 등의 필터.
-
- auto : 브라우저가 너비를 계산.(요소에 기본으로 들어가 있는 기본 값.)
- 단위: px, em, vw ..
inline요소에서는 가로, 세로가 모두 컨텐츠의 크기만큼 자동으로 설정 된다.block요소에서는 가로는 부모 요소의 크기만큼, 세로는 콘텐츠 크기만큼 자동으로 설정 된다.
-
- 요소가 커질 수 있는 최대,최소 크기.
- none: 최대,최소 제한 없음(기본값)
- auto: 브라우저가 너비를 계산
-
- px: 픽셀, 절대 단위, 화면에 출력되는 점 하나.
- %: 부모의 너비에 대한 상대적 백분율.
- em: 요소의 글꼴 크기. (기본 1em, 예를들어 글꼴의 크기가 10px 이라면 1em은 10px)
- rem: 루트 요소(html)의 글꼴 크기(기본적으로 16px)
- vw, vh: 뷰 포트의 가로,세로의 백분율.
-
요소의 외부 여백 공간을 지정하는 단축 속성.
-
기본값은 0.
-
auto: 브라우저가 여백을 계산.(block 요소이고, width 값이 설정되어 있다면 가운데 정렬.)
-
margin:
top&right&bottom&leftpx -
margin:
top&bottompxleft&rightpx -
margin:
toppxleft&rightpxbottompx -
margin:
toppxrightpxbottompxleftpx -
개별 속성으로 사용
margin-top| right | bottom | left
-
음수의 값으로 겹치도록 설정도 가능하다.
-
-
요소의 내부 여백을 지정하는 단축 속성. 내부에 여백이 추가되기 때문에 그만큼 요소의 크기가 증가한다.
- 기본값 0.
- 단축 속성의 값은 margin 과 동일하다.
-
요소의 테두리 선을 지정하는 단축 속성. 테두리 선의 두께만큼 요소의 크기가 증가한다.
-
border:
선-두께선-종류선-색상; -
기본값: medium none black;
-
개별 속성
- border-width: margin과 동일하게 top,right .. 등 설정 가능.
- border-style: 테두리 선의 종류. none, solid, dashed, dotted, double ..., 방향 또한 margin과 동일하게 통제 가능.
- border-color: 테두리 선의 색상. transparent(투명) 지정이 가능하다.
- border-radius: 모서리를 둥글게. 10px 이라면 원의 반지름이 10px이 되도록 깎아 낸다. 왼쪽 상단부터 시계방향으로 방향 지정 가능.
- border-top-width .. 등으로 개별 속성 사용이 가능하다.
-
-
- 색상 이름: 브라우저에서 제공하는 색상 이름, red, tomato ..(실제 사용에서는 권장하지 않음.)
- Hex 색상 코드: #000, #FFFFFF ..
- RGB: rgb(0, 0, 0)
- RGBA: 빛의 삼원색 + 투명도. rgba(0, 0, 0, 0.5)
-
padding 이나 border와 같이 요소의 크기에 변화를 주는 속성을 적용 했을 때 개발자가 직접 width, height 속성의 값을 계산해서 요소가 일정 크기가 되도록 하는 방법은 매우 불편하다.
이 때 사용하는 것이 box-sizing 이다. 기본 값은 content-box이고, 이를box-sizing: border-box로 변경해주면 border와 padding 을 적용하여도 원래 지정되어있는 요소의 크기가 된다.
즉, 요소의 크기를 요소의 내용 + padding + border로 계산한다. -
요소 크기 이상으로 넘쳐졌을 때 보여짐을 제어하는 단축 속성.
- 기본값은
visible로 넘친 깂을 그대로 보여준다. - hidden: 넘친 내용을 잘라낸다.
- scroll: 항상 스크롤바 생성.
- auto: 넘친 내용이 있는 경우에만 잘라내고 스크롤바 생성.
- 기본값은
-
요소의 화면 출력 틍성
- 요소에 따른 기본값: block, inline, inline-block
- flex: 플렉스 박스(1차원 레이아웃)
- grid: 그리드(2차원 레이아웃)
- none: 특성 없음, 화면에서 사라진다.
- etc: table, table-row, table-cell ...
-
- 0~1 사이의 값. (0으로 갈수록 투명해진다.)
-
- font-style
- 글자의 기울기, 기본값 nomal
- italic
- font-weight
- 글자의 두께, 기본 400
- bold == 700
- 100~ 900 까지 100 단위로 입력 가능하다.
- font-size
- 기본크기 16px
- line-height
- 한 줄의 높이, 행간과 유사
- 요소의 글꼴 크기의 배수로 지정.(권장)
- ex) 16px 일떄 1.5 -> 24px
- 또는 px, em, rem 등의 단위로도 지정 가능하다.
- 글자는 line-height의 중앙의 높이에 온다.
- font-family
- font-family: 글꼴1, 글꼴2, "공백 글꼴 3", ... 글꼴계열(필수)
- 글꼴 이름에 공백, 특수기호 등이 존재하면 "" 사용. 웹에서 가장 많이 사용되는 글꼴은 sans-serif(고딕체)
- 글꼴 계열을 제외한 다른 글꼴들은 모두 후보. 맨 앞에 명시된 글꼴 부터 시도, 모두 불러올 수 없다면 글꼴계열을 사용한다.
- font-style
-
- text-align: center | left | right | justify(양쪽 정렬)
- text-decoration: none | underline | overline(윗줄) | line-through(취소선)
- text-indent: 양수 혹은 음수로 들여쓰기, 내어쓰기. 기본값 0.
-
div{ background-color: orange; background-image: url("/imgs/logo.png"); bacground-size: 200px; background-repeat: no-repeat; background-position: top right; background: url("/imgs/logo.png") center/contain no-repeat; }
- background-color
기본값은 transparent(투명함), 배경에 색상을 부여.
- background-image
기본값은 none, 배경을 이미지로 지정.
- background-repeat
- 기본값은 repeat, 이미지를 수직, 수평으로 모두 반복
- repeat-x, repeat-y : 이미지를 수평, 수직으로만 반복.
- no-repeat: 반복 없음.
- background-position: 배경 이미지의 위치.
- 방향: top, bottom left, center ..
- 단위: px, em, rem 등의 단위.
- 0%~100% 사이의 값으로도 위치 지정 가능.
- background-size: 배경 이미지의 크기
- 기본값은 auto(이미지의 실제 크기)
- cover: 비율을 유지하여 요소의 더 넓은 너비에 맞춤. (이미지가 요소를 채운다.)
- contain: 비율을 유지, 요소의 더 짧은 너비에 맞춤. (이미지가 요소에 포함된다.)
- background-attachment: 배경 이미지의 스크롤 특성
- 기본값은 scroll 이미지가 요소를 따라서 같이 스크롤 된다.
- fixed: 이미지가 뷰 포트에 고정된다.
- background-color
-
요소의 위치 지정 기준
-
기본값은 static 으로 기준이 없다.
-
relative: 요소 자신이 원래 있던 위치를 기준으로 한다. 원래 있던 위치는 비어있게 된다.(거의 사용되지 않는다.)
-
absolute: 위치 상 부모 요소를 기준으로 한다.
부모의 position 이 static 이라면 상위 부모를 기준으로 한다.(모두 static 이라면 결국 뷰포트를 기준으로 하게된다.)
-
fixed: 뷰 포트를 기준으로 한다.
스크롤을 내려도 뷰 포트를 기준으로 위치가 고정되기 때문에 따라 내려온다(네비게이션, 배너 등으로 활용 가능하다.)
-
top, bottom, left, right 속성으로 top 부터 얼마만큼 떨어져 있을지 등의 기준을 지정할 수 있다. 음수 지정도 가능하다.
-
z-index: z축 우선 순위. 숫자가 높을 수록 위에 쌓인다.기본값은 auto(부모와 동일한 쌓임정도.)
다음과 같은 순서로 판단한다.
- position 이 static인 것보다 아닌 것이 더 위에 쌓인다.
- z-index 가 더 높은가?
- html 코드가 더 늦게 작성 되었는가?
-
💡 position 값이 absolute, fixed 로 지정되면 display의 값이 자동으로 block 요소로 변경된다.
-
-
.container { background-color: royalblue; display: flex; } .container .item { width: 100px; height: 100px; border: 4px dashed red; background-color: orange; }

flex container 내 flex item 들의 수평 정렬.-
display: flex(block 요소 처럼), inline-flex(inline 요소 처럼)flex-flowflex-direction: 주 축(main-axis)을 설정, 기본값은 row(column이 교차축이 된다.)- row, row-reverse(우->좌), column, column-reverse
flex-wrap: flex items 묶음(줄바꿈) 여부.- 기본값 nowrap(컨테이너 크기가 모자라면 item의 크기가 조절된다.)
- wrap: 컨테이너의 크기가 모자라면 줄바꿈을 하여 다음 줄에서 item을 표시.
- 다음 줄로 넘어갈 때는 바로 아래에 붙어서 넘어가는 것이 아니라 2줄이라면 컨테이너의 1/2 지점이 2번째 줄의 시작이다.
justify-content: 주 축의 정렬 방법.- 기본 값은 flex-start(items를 시작점으로 정렬)
- flex-end: item을 끝 점으로 정렬.
- center: 가운데 정렬.
align-content: 교차 축의 여러 줄 정렬 방법.한 줄 일때는 동작하지 않는다.
- stretch: 기본값, 시작점으로 정렬.
- flex-start: 시작점으로 정렬.(요소가 줄과 상관없이 붙어서 정렬 된다.)
- flex- end: 끝 점으로 정렬
- center: 가운데 정렬
align-items: 교차 축의 한 줄 정렬 방법.- 값은 align-content 와 동일하다. 다른 점이라면 '한 줄' 에서의 정렬이라는 것. 한 줄의 영역에서 정렬된다.
- ex) flex-end
-
order: 아이템의 순서.- 기본값은 0, 순서 없음.
- 숫자가 작을 수록 먼저 온다.
flex-grow: 아이템의 증가 너비 비율- 기본값 0.(자신의 크기를 그대로 가진다.) 이를 제외한 영역을 비율로 나눠 가진다.
flex-shrink: 아이템의 감소 너비 비율- 기본값은 1, 컨테이너의 크기가 줄어들면 비율에 맞게 함께 줄어든다.
- 0으로 설정하면 컨테이너의 크기가 줄어도 줄어들지 않는다.
flex-basis: 아이템의 공간 배분 전 기본 너비.- 기본값은 auto(content의 너비.) 제외하고 grow의 비율을 계산하게 된다.
- grow의 비율에 맞게 설정하기 위해서는
0으로 설정하면 된다.
align-self
-
-
요소의 전환(시작과 끝) 효과를 지정하는 단축 속성.
- transition:
propertyduration(필수)timing-functiondelay;- transition-property: 전환효과를 사용할 속성 이름을 명시할 수 있다. 기본 값은 all.
- transition-duration: 얼마에 걸쳐 전환될지 지속시간(s)를 설정. 기본 값은 0s
- transition-timing-function: 전환 효과의 타이밍 함수를 지정한다.
- ease: 기본값. 느리게 - 빠르게 - 느리게
- linear: 일정하게.
- ease-in: 느리게 - 빠르게
- ease-out: 빠르게 - 느리게
- ease-in-out: 느리게 - 빠르게 - 느리게
- cubic -bezier(x,x,x,x) 로 값을 조절할 수 있다.
- transition-delay: 전환 효과를 얼마 뒤에 시작할지. 기본값은 0s
- transition:
-
transform: func1 func2 func3 ...;- 🖍 2D 변환 함수
- translate(x,y), translateX(x), translateY(y): 이동.
- scale(x,y), scaleX(x), scaleY(y): 크기 변환.
- rotate(degree): 회전.
- skewX(x), skewY(y), skew(x,y): 기울임.
- 🖍 3D 변환 함수
- rotateX(x), rotateY(y): x,y 축 회전.
- rotate3D(x,y,z, deg)
- translateZ(z): z축 이동
- translate3d(x,y,z)
- scaleZ(z): z축 크기 변환.
- scale3d(x,y,z)
- perspective(n): 원근법(원근 거리)
- 🖍 2D 변환 함수
-
transform 에서 perspective 속성이 있음을 확인했다. 속성과 함수에는 어떤 차이가 있을까?
- perspective 속성: 관찰 대상의 부모에게 적용, perspective-origin 으로 기준점 설정.
- transform:perspective 함수: 관찰 대상에게 적용, transform-origin 으로 기준점 설정.
-
3D 변환으로 회전된 요소의 뒷면 숨김 여부
- visible: 기본값, 뒷면 보임.
- hidden: 숨김, (90도가 넘어 뒷면이 보일 때가 되면요소가 보이지 않는다).
보이지 않던 요소를 보이게 하거나, 보이던 요소를 감추는 식으로 활용이 가능하다.



