TIL 210225
1. 깃허브 블로그를 이것저것 만져보았다가 갑자기 블로그 화면이 이상해져서 진땀 빼며 원상복귀 시켰다 … 😹
시간 가는줄 모르고 html, css 와 씨름하였다. 시간 참 잘간다… 내시간 🙀
2. css 박스 모델 중 아래 개념 추가.
- 박스크기 측정 기준
<div id="container">
<div id="inner">
안쪽 box
</div>
</div>
#container {
width: 300px;
padding: 10px;
background-color: yellow;
border: 2px solid red;
}
#inner {
width: 100%;
height: 200px;
border: 2px solid green;
background-color: lightgreen;
padding: 30px;
}
- content-box 기준으로 #container 너비는 324 px
* {
box-sizing: border-box;
}
- border-box 기준으로 #container 너비는 300 px
3. css 중급 개념
- 보다 다양한 css 셀렉터 알아보지
- 레이아웃을 위한 html 만들기
- flexbox 를 이용해 레이아웃을 만들 수 있다
- 방향 : flex-direction
- 얼마나 늘릴 것인가? : flex-grow
- 얼마만큼의 크기를 갖는가? : flex-basis
- 수평 정렬: justify-content
- 수직 정렬 : align-items
- 후손셀렉터 `header h1 {}1
- 자식셀렉터
header > p { }
- 🔥자식과 자손의 차이는?
- 후손 : 부모 안에 있는 모든 자식에게 영향을 미침
- 자식 : 부모 안에 있는 자식 요소에만 영향을 미침
- 인접 형제 셀렉터
section + p { }
- 형제 셀렉터
section ~ p { }
4. 레이아웃 : 화면을 나누는 방법
- 기본적으로 콘텐츠의 흐름은 좌에서 우로, 위에서 아래로 흐른다. 먼저 수직으로 분할하고 수직으로 분할된 div 에서 height 속성을 이용해 수평 분할 해보기
- HTML 이 가지고있는 기본 스타일이 레이아웃 잡는데 방해가 될 수 있다. 이경우 몇 줄의 코드를 적용시킨다면 레이아웃 잡는데 도움이 된다.
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
-
flex : 부모 박스에
display:flex
를 적용해줌으로, 부모박스의 자식박스는 왼쪽츠로 차례대로 붙게 된다. 범위를 알고싶을때는border : 1px dotted red
등으로 범위를 빨리 확인 할 수 있다. -
방향(flex-direction) 기본적으로 수직으로 분할되지만, 수평으로도 분할 할 수 있다. 속성은 부모박스에 적용한다. row(기본값), column(수직)
-
⭐️grow, shrink, basis( 팽창지수, 수축지수, 기본크기)⭐️ 자식 박스에 어떠한 속성도 주지 않으면, 그저 오른쪽으로 컨텐츠 크기만큼 배치된다. 이때 자식박스의 flex 속성 기본 값은 다음과 같다.
flex : 0 1 auto;
- 각각을 따로 지정할 수도 있음.
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
🧐grow, shirink 는 단위가 없으며, 비례하는 값이다. 박스를 여러개로 나누었을 때 각 자식 박스가 갖는 grow 값의 총 합이 n일때 이 떄의 1은 1/n의 크기를 의미한다.