카테고리 없음

WEB 3주차 - CSS

2wjddls2 2026. 3. 29. 23:34

1. CSS의 등장

- 중복 제거, 코드의 효율성

- 가독성 굿

- HTML이 웹의 정보만을 담을 수 있음

2. CSS의 기본 문법

 - style 태그: 누구에게 해당 효과를 적용할지 명시해야 함. a {  } 가 그러한 역할을 하고, 이를 선택자라고 부름. 하나의 선택자에 대해서 여러 개의 효과를 지정할 수 있는데, 이를 구분하기 위해 세미콜론으로 구분함.

- style 속성: HTML의 속성으로, 그 값으로 반드시 css의 효과가 들어옴.

 

3. CSS의 기본 구성

- 선택자(selector)

- 선언/효과(declaration)

- 속성(property), 속성의 값(value)

 

4. CSS의 속성을 스스로 알아내기

타이틀 폰트 사이즈 지정, 중앙 배열하기

 

- css (기능) property 등의 검색어로 직접 찾아가며 코드를 구현할 수 있음

5. CSS 선택자의 기본

- 상황: 모든 페이지는 기본적으로 검정색, 사용자가 방문한 적 있었던 페이지는 회색으로, 현재 머물고 있는 페이지는 빨간색으로 표시하고 싶음.

class 선택자 실습

 

- class 속성의 값은 여러 개가 들어올 수 있고 띄쓰로 구분함

- 하나의 태그에는 여러 개의 속성이 들어올 수 있고 , 여러 개의 선택자를 통해서 하나의 태그를 공동으로 제어할 수 있음

- 사진 속 코드의 한계: class 선택자 saw와 active 순서 바꾸면 머물고 있는 페이지 빨간색이 구현안됨

>> id 선택자 사용!!

id 선택자 실습

- 선택자의 종류와 우선순위

id 선택자(#) > class 선택자(.) > 태그 선택자

- 같은 종류의 선택자라면 가장 마지막에 등장하는 선택자가 우선순위 가장 높음.

- id 선택자(고유함, 따라서 우선순위 높음), 태그 선택자(포괄적, 따라서 우선순위 낮음), 그 중간이 class 선택자

 

6. 박스모델 : 페이지 내 문자들이 페이지에서 실질적으로 차지하고 있는 부피

h1태그와 a태그의 사용 부피 차이
block level element여도 자기 자신의 부피만큼 사용하도록 하는 속성 display, 그 반대도 가능

 

- block level element와 inline element는 display 속성의 기본값일 뿐, 언제든 css를 통해 바꿀 수 있음

display: none;
/* 태그 화면에서 안보이도록 함 */

위와 동일한 기능을 하는 코드. 중복 제거 버전
콘텐츠와 테두리 사이 여백 속성 padding
테두리와 테두리 사이의 간격 속성 margin
element가 차지하는 부피 변경 속성 width
css box model

 

개발자 도구 : 1) 우클릭>검사, 2) F12

 

7. 박스모델 써먹기

- 상황(1): 위 그림과 같이 타이틀 밑줄을 긋고 싶음

>> h1 태그에게 테두리를 주면됨!!

border-bottom 속성으로 밑줄을 추가했으나, 위와 아래 간격이 다르다는 문제 발생

 

개발자 모드로 분석 결과, margin 값이 다른 것이 문제임을 알 수 있었음
margin:0px로 설정하여 없앰. 하지만 컨텐츠와 테두리가 너무 붙어있는 문제 발생
padding의 값을 20px로 설정하여 간격을 벌림

 

- 상황(2): 챕터7 맨 위의 그림과 같이 부제목과 내용을 분리하는 선을 긋고싶음

>> ol 태그에게 테두리를 주자!!

ol 태그는 block level element이기 때문에 element 끝에 오른쪽 테두리가 생기는 문제 발생
width: 100px로 설정하여 갖는 부피 조정
선들 사이의 간격 없애기 위해 개발자 모드로 원인 탐색. margin 값이 원인임을 알게됨.
margin 값을 0으로 주고, 선과 너무 붙어있는 텍스트를 떨어뜨려놓기 위해 padding 값을 주어 개선함
선과 화면 사이의 간격의 원인 margin 값을 0으로 바꿔 최종 개선