□ HTML과 CSS의 연결
※ style는 HTML의 문법이다.
- <style></style> 사용 :
- 특정 태그에 style속성 값 부여
□ 선택자와 선언
선택자 연습 : https://flukeout.github.io
- 선택자의 종류
- 태그 선택자
ex) li란 태그를 모두 선택하여 style 값 부여
- 아이디 선택자
ex) #select로 id="select"인 아이디에 style 값 부여
- 클래스 선택자
ex) .deactive로 class="deactive"인 클래스에 style 값 부여
※ 식별을 위해 id/class 는 반드시 나누어져야 한다(class가 국가라면 id는 주민번호[고유]와 비슷한 의미를 가진다) - 부모/자식 선택자 : '>'기호를 통해 특정 부모의 직계 자식 요소를 선택한다.
- 가상클래스 선택자(pseudo class selector) : 특정 상태에 스타일을 적용할 때 사용(순차적용)
1. link : 방문하지 않은 링크 스타일 적용
2. visited : 방문한 링크 스타일 적용
3. hover : 사용자가 요소 위에 마우스를 올렸을 때 적용
4. active : 요소가 활성 상태일 때 적용(클릭 등)
5. focus : 요소가 포커스를 가졌을 때 적용
□ 빈도수 높은 속성들
- font-size
- (★) rem : 문서의 루트 요소의 글꼴 크기를 기준을 한 상대 단위, 전역적인 상대 크기
- px : 고정된 픽셀 단위, 디바이스 해상도와 관계없이 고정된 크기.
- em : 부모 요소의 글꼴 크기를 기준으로 한 상대 단위, 부모 요소에 비례
- color
- rgb(RedGreenBlue)
- colorname
- hex(Hexadecimal Colors)
- text-align(정렬)
- left : 왼쪽 정렬
- center : 가운데 정렬
- right : 오른쪽 정렬
- justify : 맞춤 정렬
- font
- font-familly : 글꼴 지정
- font-weight : 진하게
- line-height : 자간(줄간격)
- font : 폰트와 관련된 여러 속성을 축양형으로 표현하는 속성 순서를 지켜 기술하여야 함
형식 :
font: font-style font-variant font-weight font-size/line-height font-family|caption|icon|menu|message-box|small-caption|status-bar|initial|inherit;
※ 위 두개의 코드는 같은 의미이다.
□ 상속
html 전역에 color:red를 적용시키면 그 아래에 태그들이 상속받아 color이 적용된다.
그중 특정 태그에만 적용시키면 해당 태그는 직접 적용한 값이 적용된다.
상속 태그별 여부 : https://www.w3.org/TR/CSS21/propidx.html
□ 캐스케이딩 : 스타일 규칙이 적용되는 우선순위
아래와 같은 순으로 우선순위가 적용된다.
- !important
- 인라인 스타일
- id 선택자
- 클래스 선택자
- 기본 요소 선택자
□ inline - block 레벨
- inline level element : 화면의 일부를 차지하는 태그
- block level element : 화면 전체를 사용하는 태그
□ box model
- margin : 마진은 요소의 외부 여백을 조절하는 데 사용됩니다.
즉, 요소와 주변 요소 사이의 공간을 말합니다.
마진을 설정하면 요소가 주변 요소로부터 얼마나 멀리 떨어져 있는지 결정할 수 있습니다.
마진은 요소의 크기에 영향을 미치지 않으며, 단지 요소 사이의 간격을 조정하는 데 사용됩니다.
- padding : 패딩은 요소의 내부 여백을 조절하는 데 사용됩니다.
즉, 요소의 테두리와 내용 사이의 공간을 말합니다.
패딩을 설정하면 요소의 내용이 테두리에서 얼마나 멀리 떨어져 있는지 결정할 수 있습니다.
패딩은 요소의 크기에 영향을 미치지 않으며, 단지 내부 여백을 조정하는 데 사용됩니다.
□ box-sizing
- content-box; : 요소의 너비와 높이가 해당 content만을 포함하도록 계산, 패딩과 테두리가 요소의 크기에 영향을 미치
지 않음
- border-box; : 요서의 너비와 높이가 content뿐만 아니라 패딩과 테두리 까지 포함하여 계산됨
□ 마진 겹침
□ 포지션
- static(기본값) : position: static;은 요소를 문서 흐름에 따라 배치합니다.
즉, 위치가 지정되지 않은 경우 기본적으로 적용되는 값입니다.
위치를 조정하기 위해 top, right, bottom, left 속성을 사용할 수 없습니다.
- relative : position: relative;는 요소를 자신의 기본 위치에서 상대적으로 이동시킵니다.
즉, 요소를 일반적인 문서 흐름에 따라 배치하지만, 추가적인 위치 이동을 할 수 있습니다.
top, right, bottom, left 속성을 사용하여 이동할 거리를 지정할 수 있습니다.
다른 요소들의 위치에는 영향을 주지 않고 자신을 기준으로 상대적인 위치 이동이 발생합니다.
- absolute : position: absolute;는 요소를 문서 흐름에서 제거하고,
부모 요소 중 위치 속성이 static이 아닌 첫 번째 요소에 대해 상대적으로 배치합니다.
만약 이런 조상 요소가 없으면 <html> 요소를 기준으로 합니다.
- fixed : position: fixed;는 요소를 뷰포트(viewport) 기준으로 위치를 고정합니다.
즉, 스크롤되더라도 화면에 고정되어 있는 위치에 요소를 배치합니다.
fixed로 위치가 지정된 요소는 다른 요소들에 대한 영향을 받지 않으며,
다른 요소들도 해당 요소에 영향을 주지 않습니다.
□ flex
- flex 연습 - https://opentutorials.org/module/2367/13526
- holy grail layout
- container
- display
- flex-direction
1. row : 수평(좌 → 우)
2. column : 수직(위 → 아래)
3. row-reverse : 수평반전(우 → 좌)
4. column-reverse : 수평반전(아래 → 위) - flex-wrap
- flex-flow
- jusify-content : Flexbox나 Grid 레이아웃에서 요소들을 주축(main axis)을 따라 정렬
- align-items : Flexbox나 Grid 레이아웃에서 단일 행(row)이나 열(column) 내의 항목을 교차축(cross axis)을 따라 정렬
- align-content : Flexbox나 Grid 레이아웃에서 여러 행(row)이나 열(column)을 교차축(cross axis)을 따라 정렬
- item
- order
- flex-grow : 여백을 나누어 가지는 명령어
- flex-shrink : Flexbox 레이아웃에서 flex 아이템이 컨테이너 내에서 작아질 수 있는 정도를 제어하는 속성.
이 속성은 flex 컨테이너의 공간이 부족할 때 flex 아이템이 얼마나 줄어들 수 있는지를 결정
- flex-basis : flex의 방향에 해당하는 크기를 지정
- flex
- align-self
□ Multi column
- column-count : 요소를 몇 개의 컬럼으로 나눌지 지정
- column-width : 각 컬럼의 너비를 지정
- column-gap : 컬럼 간 간격을 설정
- column-span : 특정 요소가 여러 컬럼을 가로지르게 설정(all / none)이 있음
- column-rule-(1~3)
- style : 컬럼 사이에 그려지는 선의 스타일을 지정
- width : 컬럼 사이의 선의 두께를 지정
- color : 컬럼 사이의 선의 색상을 지정
□ Media query
미디어 쿼리(Media Query)는 웹 페이지의 스타일을 다양한 디바이스나 화면 크기에 따라 다르게 적용할 수 있게 해주는 CSS 기술, 미디어 쿼리는 조건을 설정하고, 그 조건이 만족될 때만 특정 스타일이 적용함
- max-width: 최대 너비. 지정된 값 이하일 때 스타일을 적용
- min-width: 최소 너비. 지정된 값 이상일 때 스타일을 적용
- max-height: 최대 높이. 지정된 값 이하일 때 스타일을 적용
- min-height: 최소 높이. 지정된 값 이상일 때 스타일을 적용
- orientation: 장치의 방향. portrait (세로) 또는 landscape (가로)로 설정할 수 있습니다.
- resolution: 장치의 해상도. DPI (dots per inch) 또는 DPCM (dots per cm)로 설정할 수 있습니다.
미디어 쿼리 참고 사이트 : https://www.w3schools.com/cssref/css3_pr_mediaquery.php
□ background
- background-(1~6)
- color : 배경 색상
- image: url('url') : 배경 이미지
- repeat: (no-repeat / repeat-x / repeat-y) : 배경 이미지 반복여부를 지정(기본값 - repeat)
- attachment: (scroll / fixed / local) : 배경 이미지의 스크롤 동작을 지정
- size: (cover / contain)
- position : 배경 이미지 시작위치 지정
※ 축약형 : 배경색상: 빨강, 배경이미지: image.jpg, 반복하지 않음, 고정, 중앙 정렬, 커버 크기
□ filter
- blur(px) : 요소를 흐리게 만듬
- brightness(%) : 요소의 밝기를 조절
- contrast(%) : 요소의 대비를 조절
- graysclae(%) : 요소를 흑백으로 만듬
- hue-rotate(deg) : 요소의 색조를 회전
- invert(%) : 요소의 색상을 반전시킴
- opacity(%) : 요소의 투명도를 조절
- saturate(%) : 요소의 색상 채도를 조절
- sepia(%) : 요소에 세피하 효과를 줌
※ filter는 조합해서 사용 가능
ex) filter: blur(5ps) brightness(150%) contrast(200%);
□ transform
요소의 형태를 변경할 때 사용하는 속성
이 속성을 사용하면 요소를 회전시키거나, 크기를 조정하거나, 기울이거나, 이동시킬 수 있다.
transform 속성은 다양한 함수와 함께 사용되어 여러 가지 효과를 낼 수 있다.
다양한 transform 활용 : https://codepen.io/vineethtrv/pen/XKKEgM
transform 단위 : https://developer.mozilla.org/en-US/docs/Web/CSS/transform
- transform-origin : transform의 기준점을 정하고 싶을 때 사용
※ 직접적으로 화려한 transform을 구현하는건 힘드므로 구글링을 통해 css transform library같이 검색하여 활용
□ transition
요소의 스타일 변화를 부드럽게 애니메이션으로 보여주기 위해 사용하는 속성
https://matthewlein.com/tools/ceaser
□ link와 import
외부 스타일시트를 포함하거나 다른 CSS 파일을 불러오는 방법
- link(☆)
HTML 문서의 <head> 섹션에 삽입되어 외부 CSS 파일을 불러옵니다.
브라우저가 HTML을 읽을 때 link 태그를 만나면, 해당 CSS 파일을 즉시 다운로드하고 적용합니다.
link 태그는 HTML의 표준 방식으로 외부 스타일시트를 포함하는 방법입니다.
- import
CSS 파일 내에서 다른 CSS 파일을 불러올 때 사용합니다.
@import는 CSS 파일의 맨 위 또는 다른 스타일 규칙보다 먼저 위치해야 합니다.
@import는 종종 하나의 CSS 파일에서 다른 CSS 파일들을 계층적으로 불러오기 위해 사용되지만, 성능 면에서 link 태그보다 비효율적일 수 있습니다.
이는 @import가 스타일시트를 나중에 불러오기 때문입니다.
주요 차이점
- 속도: link 태그는 HTML 문서를 읽을 때 CSS 파일을 병렬로 불러오기 때문에 페이지 로딩 속도가 빠릅니다.
반면 @import는 CSS 파일을 순차적으로 불러오기 때문에 페이지 로딩 속도가 느려질 수 있습니다. - 지원: link 태그는 모든 HTML 문서에서 사용할 수 있으며, 스타일시트를 HTML의 메타데이터로 포함할 수 있습니다.
반면, @import는 CSS 파일 내에서만 사용 가능합니다. - 조건부 로딩: link 태그는 미디어 쿼리를 사용하여 특정 조건에서만 스타일시트를 불러올 수 있습니다.
예를 들어, 화면 크기나 장치 유형에 따라 다른 CSS 파일을 로딩할 수 있습니다. - 사용의 편의성: @import는 여러 CSS 파일을 논리적으로 그룹화하고 관리하기 쉬운 방법을 제공합니다.
이는 특히 큰 프로젝트에서 유용할 수 있습니다.
□ fontello
출처 : 생활코딩 유튜브 : https://www.youtube.com/@coohde
'웹' 카테고리의 다른 글
4일차 - Javascript 비동기처리 (0) | 2024.07.18 |
---|---|
4일차 - JavaScript (0) | 2024.07.18 |
개발로드 2-3. 프론트앤드 기본 지식(JavaScript) (0) | 2024.05.28 |
개발로드 2-2. 프론트앤드 기본 지식(CSS선택자) (0) | 2024.05.16 |
개발로드 2-1. 프론트앤드 기본 지식(HTML) (0) | 2024.05.12 |