Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

모바일 웹 구축 실무 12주차 정리 - 1 (스타일링) 본문

2-2/모바일 웹 구축 실무

모바일 웹 구축 실무 12주차 정리 - 1 (스타일링)

김브래 2023. 11. 21. 23:24

스타일링




CSS

 


CSS (Cascading Style Sheets)

HTML 콘텐츠의 구조와 의미를 정의
CSS – 스타일과 레이아웃을 정의
 
CSS는 크게 선택자(selector)와 스타일로 구성

Selector - 스타일을 어떤 엘리먼트에 적용할지를 선택하게 해주는 것

 

Selector의 유형

Element selector

ID selector

Class selector

Universal selector

Grouping selector

Element의 상태와 관련된 selector


Element selector

특정 HTML 태그를 선택

ID selector

element에 고유한 id 정의하고 이 id 기반으로 선택 / #뒤에 id 붙여서 사용

Class selector – 여러 개의 element 분류하기 위해 사용

. 뒤에 클래스명을 붙여서 사용

전체 선택자 (Universal selector)

전체 엘리먼트에 적용하기 위한 선택자. * 사용

 

그룹 선택자 (grouping selector)

여러 가지 선택자를 그룹으로 묶어 하나의 스타일을 적용하기 위해 사용하는 선택자

상태와 관련된 선택자

:hover – 마우스 커서가 엘리먼트 위에 올라왔을 때

:active – 주로 <a> 태그 에 사용. 엘리먼트가 클릭됐을 때

:focus – 주로 <input> 태그에 사용. 엘리먼트가 focus 되었을 때

:checked – radio, checkbox 같은 유형의 input 태그가 체크되어 있는 경우

:first-child, :last-child 상위 엘리먼트를 기준으로 각각 첫 번째 child, 마지막 child일 경우


레이아웃과 관련된 속성

화면에 엘리먼트들을 어떻게 배치할 것인지 결정

 

display 엘리먼트를 어떻게 표시할지에 관한 속성
none: 엘리먼트를 화면에 숨기기 위해 사용
block: 블록 단위로 엘리먼트를 배치. 새로운 줄에서 시작하여 위치한 곳 전체의 width 차지

<p>, <div>, <h1>~<h6> 태그의 기본 속성

inline: 줄바꿈 없이 한 줄에 다른 엘리먼트들과 나란히 배치. width, height 속성은 무시됨

<span>, <a>, <em> 태그의 기본 속성

inline-block: inline처럼 동작하면서 width, height, margin, padding 등 속성 지정 가능

<button>, <input>, <select> 태그의 기본 속성

flex: 엘리먼트를 블록 레벨의 플렉스 컨테이너(flex container)로 표시하는

내부에 다른 엘리먼트들을 포함




display: block

display: inline


visibility

엘리먼트를 화면에 보여주거나 감추기 위해 사용하는 속성

visible – 엘리먼트를 화면에 보여줌

hidden – 엘리먼트를 화면에서 안 보이게 감춤. display:none; 과 달리 화면에서 영역은 그대로 차지


position 엘리먼트를 어떻게 위치시킬 것인지 정의

static – (default) 엘리먼트를 원래 있어야 하는 위치(작성된 순서)에 배치

fixed – 엘리먼트를 브라우저 window(뷰포트)에 상대적으로 위치하도록 배치

채팅상담, 상담톡 등 화면의 고정 위치에 배치

 

relative – 엘리먼트를 원래 위치를 기준으로 상대적으로 배치

 

absolute – 엘리먼트를 절대 위치에 위치시킴

이때 배치 기준은 position 속성이 static이 아닌 첫번째 상위 요소 기준

조건에 맞는 상위 요소가 없다면 body 요소가 배치 기준




position: static

position: fixed

position: relative

position: absolute


플랙스박스(Flexbox)

- 기존 CSS 레이아웃 사용의 불편한 부분을 개선하기 위해 등장
- 컨테이너와 아이템으로 구성

flex-direction

row: (default) 아이템을 행(row)을 따라 가로 순서대로 왼쪽부터 배치

column: 아이템을 열(column)을 따라 세로 순서대로 위쪽부터 배치

row-reverse: 아이템을 행(row)의 역(reverse)방향으로 오른쪽부터 배치

column-reverse: 아이템을 열(column)의 역(reverse)방향으로 아래쪽부터 배치

align-items

- 컨테이너 내에서 아이템을 정렬하는 방법(cross axis 기준)

 

stretch: (default) 아이템을 늘려서(stretch) 컨테이너를 가득 채움

flex-start: cross axis의 시작 지점으로 아이템을 정렬

center: cross axis의 중앙으로 아이템을 정렬

flex-end: cross axis의 끝 지점으로 아이템을 정렬

baseline: 아이템을 baseline 기준으로 정렬

justify-content

컨테이너 내에서 아이템을 나란히 맞추는 방법(main axis 기준)
 

flex-start: main axis의 시작 지점으로 아이템을 정렬

center: main axis의 중앙으로 아이템을 정렬

flex-end: main axis의 끝 지점으로 아이템을 정렬

space-between: main axis 기준으로 첫 아이템은 시작점, 마지막 아이템은 끝 지점에 맞추며, 중간에 있는 아이템들 사이의 간격이 일정하게 유지되도록 맞춤

 

space-around: main axis 기준으로 각 아이템의 주변(around) 간격(space)을 동일하게 맞춤


styled-components


styled-components

CSS 문법을 그대로 사용하면서 결과물을 스타일링된 컴포넌트 형태로 만들어주는 오픈소스 라이브러리
 
styled-components 설치하기 (터미널)

npm 패키지 관련 명령어

 

패키지 설치 install, i

npm install <패키지명>@버전 (특정 버전을 설치할 경우)

npm install –g <패키지명> (패키지를 전역으로 설치할 경우 –g 옵션)

 

패키지 업데이트 update

npm update <패키지명>

 

패키지 삭제 uninstall

npm uninstall <패키지명>

 

styled-components 기본 사용법

styled-components태그드 템플릿 리터럴을 사용하여 구성 요소의 스타일을 지정

 

리터럴(Literal)

 

템플릿 리터럴(template literal)

-리터럴을 템플릿 형태로 사용하는 자바스크립트 문법

-backticks(`) 사용하여 문자열을 작성하고, 그 안에 대체 가능한 expression을 넣는 방법

 

untagged/tagged 템플릿 리터럴

- untagged template literal - 문자열을 여러 줄에 걸쳐서 작성하거나 포매팅을 위해 사용

- tagged template literal - 앞에 있는 태그 함수를 호출하여 결과를 리턴

tagged 템플릿 리터럴

- 태그 함수의 파라미터는 expresion으로 구분된 문자열 배열과 expresion이 순서대로 들어감

backticks(`)로 둘러싸인 문자열 부분에 CSS 속성을 넣음
태그 함수 위치에 styled.<HTML 태그> 형태로 사용
HTML 태그에 CSS 속성들이 적용된 형태의 리액트 컴포넌트가 만들어짐

styled-componentsprops 사용하기

조건이나 동적으로 변하는 값을 사용해서 스타일링하기 위한 기능  (react componentprops와 같은 개념)

styled-components의 스타일 확장하기

생성된 컴포넌트를 기반으로 추가적인 스타일을 적용할 수 있는 기능

[요약]


styled-components

CSS 문법을 그대로 사용하면서 결과물을 스타일링된 컴포넌트 형태로 만들어주는 오픈소스 라이브러리
컴포넌트 개념을 사용하기 때문에 리액트와 궁합이 잘 맞음
태그트 템프릿 리터럴을 사용하여 구성 요소의 스타일을 지정