CSS 기초

eitherwho
|2023. 11. 8. 18:59

CSS (Cascading Style Sheet)

: 상속되는 스타일 문서

Case Style

Naming Convention

ex) My React Lecture
  • camel case: myReactLecture
  • kebab case: my-react-lecture
  • snake case: my_react_lecture (다른 언어 변수, table의 column명) / MY_REACT_LECTURE (상수)
  • pascal case: MyReactLecture (클래스)

CSS 적용 방법

  • Inline Style Sheet
    → 일일이 적용하는데 한계가 있음, 유지보수 어려움
<p style=”color: red”>Inline Style Sheet</p>
  • Internal Style Sheet
    → 웹 문서 로딩 시간이 증가함
<style> p{ color: red; } </style>
  • Linking Style Sheet
<link rel=”stylesheet” href=”style.css” />

 


- 기본 구성

기본 문법

- Box Model 개념

박스 모델


id

: 우선순위 3, style에서 . 사용

class

: 우선순위 4, style에서 # 사용


properties

- Box Model properties

박스 모델 속성

 

 

  • background: attachment, clip, color, image, origin, position, repeat, size
  • margin, padding: value, border, border-radius
  • text: color, font-size, font-weight(두께)

 

 

 

margin, padding의 value 규칙

  • 1개: URDL; 
  • 2개: UD LR;
  • 3개: U LR D;
  • 4개: U R D L;

- property value

  • 크기의 단위
    → %: 부모 기준
    → vw, vh: 뷰포트(화면에서 보이는 웹사이트)의 너비 높이
    → em(부모 기준), rem(최상단 기준): 반응형
px, %, vw, vh, em, rem
  • 색상의 단위
    → Hex Color Code(16진수): 빛의 개념, 합칠수록 white에 가까워짐
    → opacity(0 ~ 1): 투명도, 수가 0에 가까울수록 투명도가 올라감
#000000(ff), rgba(0, 0, 0, 1)

선택자

  • class 선택자
class="button active"
→ .button.active{ ... }
  • 전체 선택자
→ *{ ... }
  • 요소 선택자
tag 이름 자체를 사용
→ strong{ ... }
  • 자손 선택자
부모 밑의 자손 선택시 공백 사용
→ .hi .hello{ ... }    // hi class 부모 밑 hello class 자손 선택

display

  • none: 화면에 보이지 않음
  display: none; visibility: hidden; opacity: 0;
공간 차지 X O O
이벤트 적용 X X X
탭 눌렀을 때 focus X X O
  • block: 새로운 줄에서 시작, 그 한줄을 모두 차지해 줄바꿈 일어남
    → width/height 지정 가능
  • inline: 줄바꿈 일어나지 않음, 글자나 문장에서 특정 단어만 효과
    → width/height 지정 불가능
  • inline-block : 줄바꿈이 일어나지 않음
    width/height 지정 가능

layout

  • sementic element

레이아웃

 

header 머릿말
nav 네비게이션 링크 집합
main 문서의 주요한 내용
article 독립된 내용임을 알려줌
section 비슷한 내용을 묶음
aside 페이지의 다른 콘텐츠들과 연관성을 가지며 분리시킬 수 있는 콘텐츠
footer 꼬릿말

flex

: flex container를 만들어줌, 우측에 content 둘 수 있음

  • flex-direction: container 안 item 배치
row, row-reverse, column, column-reverse
  • flex-wrap: container 밖으로 item 튀어나오는 것을 방지
wrap, wrap-reverse
  • justify-content: main 수평 축 기반으로 item 좌우 정렬

justify-content

flex-start, flex-end, center
space-between, space-around, space-evenly
  • align-items: 수직 축 기반으로 item 상하 정렬
stretch, flex-start, flex-end, center

position

/* content를 가운데로 */
display: flex;
align-items: center;
justify-content: center;
static 기본값, left/top/right/bottom으로 위치 지정 가능
relative 원래 있던 위치 기준 좌표 지정, 본인의 좌표 기준으로 좌표 변경 가능
absolute 본인과 제일 가깝고 position: static이 아닌 애를 기준으로 좌표 변경 가능 (부모 중 static이 아닌 경우가 없다면, 뷰포트 기준)
fixed 뷰포트 기준 좌표 고정 (scroll 해도 좌표 고정)
sticky scroll 이전에는 본인의 위치에 딸려가다가, scroll 이후 fixed처럼 동작 (본인의 범위에서 벗어나면 다시 본인의 위치에 딸려감)

normalize.css, rest.css

- 크로스 브라우징: 웹 사이트를 접속했을 때, 어느 한쪽(브라우저)에만 최적화됨을 막기 위해 공통 요소를 사용하고 제작함

  • normalize: 사용하기 좋은 값들을 유지시키며 초기화
  • reset: 모든 값을 초기화

- box-sizing

  • border-box: 테두리 영역 기준
  • content-box: 콘텐츠 영역 기준