-
[멋쟁이사자처럼] 프론트엔드 스쿨 7기 - CSS 특강 (1)Front-end 개발 2023. 7. 14. 12:05
목차
1. 강사 소개
2. CSS는 흥미롭다
3. 과제
1. 강사 소개
1-1. 이종찬 대표님 (Veamcamp)
1-2. 역사
- 중학생부터 웹페이지 만드는데 관심이 많았다.
- PC 통신 전화선으로 인터넷하던 시절
- 웹 사이트 외주 제작으로 20대를 보냄
- 신촌 SBS 강의 시작
- 책 지필 제안이 왔지만 여기엔 재능이 없었다.
- 유튜브를 시작했다 (좋댓구 부탁..)
2. CSS는 흥미롭다 : CSS 기초
2-1. CSS 기초값 Initial Value 이해하기
처음 웹 페이지를 작업 하려고 할 때는 큰 틀(main box) Layout 을 잡고 부터 만든다.
최소한의 마크업을 만들고, CSS 바로 진행한다.
영어 원문으로 용어들 어떻게 되어 있는지 알아둘 필요가 있다.
배경을 넣고 영역을 확인한다.
div {} (== type selector)
사용자 에이전트 (==크롬) 스타일 시트 (body 에 크롬 브라우저가 해주는 작업)
div 의 너비의 결정 : 직계 부모가 제공해주는 컨테츠 영역의 너비 (== 컨테이닝 블럭의 너비)
div {width: ?;} (Property 속성 : value 값)
initial value (초기값) : auto;
background-color 의 초기값은 transparent 투명
width 의 initial value 은 auto (자동 ... 어떻게 동작하는지 기준을 아는게 중요)
- persentage : 컨테이닝 블럭이 제공하는 컨텐츠 영역의 백분율 (CSS 개발자들이 설정한 값 적용)
- auto : 요소의 너비를 브라우저가 계산한 값을 제공함
width: auto 와 100% 는 다르다.
auto는 브라우저가 margin, border, padding을 고려하고, 100% 는 고려치 않고 전체가 늘어남
(결과가 다름. auto는 컨테이너 블록을 기준으로하고, 100% 는 width + alpha 가 된다.)
div { background-color: orange; margin-left: 50px; /* width: 100%; */ width: auto; }
height 의 initial value 은 auto (어떻게 계산되는지 기준을 알아야함)
- 요소의 높이를 계산해서 브라우저가 설정해줌
body 와 View Point 는 다르다.
div 에서 display 속성의 initial value 는 inline 인데 크롬 브라우저가 값을 block 으로 바꾼다.
새로운 Property 를 배웠으면 (initial value 를) 공부해라.
브라우저들은 stylesheet 기본 제공 스타일을 제공한다. (Firefox / Chrome 기본 제공 스타일)
div 는 width 가 고정적 너비로 컨테이너 블록에서 받은 공간을 다 차지하지 않아도 모두 div 꺼다.
이때 margin-left: auto; 를 주면 div가 할당받은 컨테이너 블록의 너비를 다 차지하도록 배치해준다.
margin-left: 0 auto; 왼쪽 기준에서 여백의 사용가능한 영역을 둘로 나눠서 가져감으로 가운데 정렬했다.
auto 는 어려운 value 이다. 어떤 기준으로 계산되는지 알아야하기 때문이다.
height : auto; 로 두는게 행복이다. 내용물에 맞춰서 알아서 늘어나기 떄문이다. (유지보수에 장점)
관계상 Header / Contents / footer 로 나뉜다.
각 레이아웃이 구분이 되도록 한다.
type selector 는 광범위한 선택자이다.
universal selector *{} *.소희 == 모든 소희들 (universal selector 는 생략되어 있다)
더 구체적인 선택을 위해 두번째 클래스의 정의 (클래스는 숫자로 시작할 수 없다)
type selector 와 class selector 등 선택자를 쓰는 이유는 섬세한 작업을 위해 더 구체적인 선택하기 위함
header 에 구성요소를 넣고 제일 먼저 작업할 것은 CSS 초기화 (전역 선택자) 이다.
CSS 에서 우선 해야할 일 , 사용자 에이전트(기본 브라우저) 스타일 시트 설정을 알고 기본 스타일 초기화
- margin: initial; 초기값 세팅 (margin: 0;)
- inline 요소는 옆의 공간이 자신의 공간이 아니다. 그래서 box 요소와 달리 margin: 0 auto 가 안된다.
- h1, p 는 브라우저에 의해 블록 요소이다.
Block level 요소 : div, h1~h6, p, li, nav, footer 등
inline Level 요소 : a, em, strong, img, span 등
inline-block Level 요소 : button
- - 블럭요소 : <div>,<table>,<h1>~<h6>,<p>,<form>,<ul>,<ol>,<li>,<dl>,<dt>,<dd>,<pre>,<blockquote>등
- - 인라인요소 : <span>,<a>,<br>,<em>,<strong>,<input>,<label>,<img>
- h1 { text-align: center;} 이건 h1 이 가운데로 간것이 아니다. h1 의 contens 이동한 것이다.
- 배경색을 넣는 것이 중요한 것이다. 어떻게 움직이는 지 이해하는 데 도움이 되기 때문에.
- 내가 원하는 대로 일단 됬다고 하더라도, 어떤 일이 일어났는지 분석적으로 접근을 해야한다.
2-2. CSS 상속 Inheritance 이해하기
- descendant selector 자손 선택자, selector 사이에 Combinator 를 통해 조합을 한다.
- descendant selector (space)
- child selector (>)
- adjacent sibling selector (+)
- general sibling selector (~)
- 상속되는 것 : color, text-align, font, font-weight
- 상속 되지 않는 것 : margin, background-color
- 상속되는지 아닌지 찾아보면 된다.
- 상속은 부모(... < body < HTML < Browser)로 계속 올라가고 없으면 브라우저 기본 세팅값을 받는다.
- 브라우저 기본 세팅값도 바꿀 수 있다.
2-3. User-agent stylesheet 이해하기
- 상속 지원되는 값은 inherit 하는게 좋고, 상속 지원 않되는 것은 inital 하는게 좋다.
- unset 으로하면 브라우저가 알아서 상속은 상속, 안되는건 초기값으로 해준다.
- reset.css 는 Update가 안되다보면 최신 브라우저 생태계와 안맞을 수 있으니, 너무 고민없이 관례만 따르는 것은 위험하다.
2-4. 캐스케이드 이해하기, CSS Specificity
- 여러곳의 CSS 클래스의 속성들이 한 곳으로 모임
- 아래 작성된 것이 덮어 씌워질 수 있으니 코드의 작성 순서를 잘 봐야할 필요가 있음
- 최종 결과물을 위해서 CSS 코드 조각이 모이는 과정이 캐스케이딩이며 프로퍼티가 겹칠때 의도된 대로 디자인이 안될 수 있으니 주의해야한다. (속성값이 덮어씌워질 수 있다)
2-5. CSS 박스모델 이해하기
2-6. 컨테이닝 블럭 이해하기
2-7. CSS 셀렉터의 목적 제대로 이해하기
2-8. 클래스 셀럭터의 올바른 쓰임새
3. 과제
3-1. 마감 : 2023년 7월 20일 오후 11시
3-2. 제출방법 : 폴더명과 동일한 압축 파일로 제출한다. (ex. 홍길동_fox.zip)
3-3. 과제 내용: CSS Challenges
- Readme.md 파일에 있는 피그마 링크를 참조해서 HTML/CSS 로 작성한다.
- 과제를 수행해야 다음 시간에 수업을 따라 갈 수 있다.
'Front-end 개발' 카테고리의 다른 글
[멋쟁이사자처럼] 실습 - fox (0) 2023.07.15 [멋쟁이사자처럼] 회고 5조 - 스프린트 회고 (0) 2023.07.15 [멋쟁이사자처럼] 프론트엔드 스쿨 7기 - 선배 특강 (오전) (0) 2023.07.14 [멋쟁이사자처럼] 실습 - 버튼 만들기 (0) 2023.07.13 [멋쟁이사자처럼] 실습 - 수능표 만들기 (table) (0) 2023.07.13