CSS를 시작해보자 ~
1. 필요 기초 지식 : css, html
2. 필요 소프트웨어 : node.js, vite
=> 강의 #1.2 를 참조
npm run dev
를 해야 개발 서버가 열린다 / 끄는 건 ctrl+c
새로고침 없이도 바로 반영이 되는 멋진 서버이다.
flexbox 가 생기기 전의 삶을 체험해보자
.box
-> < div > box < /div >
이런식으로 만들어주는 축약키.box {
width: 200px;
height: 200px;
background-color: tomato;
}
이 box들은 block이기 때문에 나란히 설 수 없다.
그러나 displat:inline
는 width height를 지원하지 않기 때문에 박스가 사라져버린다.
=> 해결법 : display: inline-block;
.box:first-child{
margin-right: 300px;
}
.box:last-child{
margin-left: 300px;
}
이런식으로 마진을 주면서 띄워야한다. 하지만 창 크기가 좀만 변해도 끔찍해진다... 인간이 간격을 계산하지 않아도 되는 시스템은 없을까?
body{
display: flex;
}
.box {
width: 200px;
height: 200px;
background-color: tomato;
}
단순 display:flex
설정만 해도 애들이 옆에 붙는다.
justify-content
body{
display: flex;
justify-content: space-between;
}
바로 공간이 생긴다. 무섭다...
flex-direction
justify-content
align-items
justify-content
- main axis에서 이동시킨다.
align-items
- cross axis에서 이동시킨다.
flex-wrap
flex-flow
flex-flow: row wrap;
식으로 적는다.align-content
gap
order
.box:nth-child(3){
background-color: blueviolet;
order: 2;
}
.box:nth-child(6){
background-color: #5cecff;
order: 1;
}
align-self
.box:first-child {
align-self: flex-start;
}
.box:last-child {
align-self: flex-end;
}
flex grow
flex grow
는 child 에게 그들이 얼마나 공간을 차지할 수 있는지 지정해준다. 반응형 디스플레이에서 유용한 방식. .box:first-child {
background-color: tomato;
flex-grow: 1;
}
.box:last-child {
background-color: teal;
flex-grow: 1;
}
1:1 로 설정하였을 때
2:1로 설정하였을 때
-> 비율로 움직인다! 유동적이다!
flex-shrink
찌그러뜨렸을 때 줄어드는 반응이 다르다.
flex-basis
flex-basis
를 통해 자라는 시작점을 지정할 수 있다.flex-basis
는 min width의 역할을 한다. flex-basis
는 max width의 역할을 한다. .box:first-child {
background-color: tomato;
flex-grow: 1;
flex-basis: 500px;
}
.box:last-child {
background-color: teal;
flex-grow: 1;
}
flex-basis
는 height로도 작용한다. flex-direction이 column이 될 경우, basis는 높이가 된다.flex
flex-grow
flex-shrink
flex-basis
를 한 번에 조정할 수 있는 함수 flex : grow shrink basis
방식으로 지정하면 된다. Day 2 만든 과제, 뿌듯하당...
flexbox froggy 게임을 통해 flexbox를 연습할 수도 있다