어제가 CSS 마지막 내용인 줄 알았는데 오늘도 CSS만 배웠다. 아직 CSS에 대한 내용이 한참 더 남은 것 같다.
역시 디자인 관련 언어다 보니 상당히 내용이 많은 것 같다. JavaScript와 React도 많이 궁금한데 비중이 많이 줄어들 것 같아서 조금 걱정이다.
<body>
<h1>CSS 단위 연습</h1>
<div class="box percent-box">%단위</div>
<div class="box em-box">em단위</div>
<div class="box rem-box">rem단위</div>
<div class="box viewport-box">vw/vh단위</div>
</body>
.em-box {
font-size: 16px;
width: 10em;
background-color: lightyellow;
}
.rem-box {
font-size: 16px;
width: 10rem;
background-color: lightsalmon;
}
.percent-box {
width: 50%;
background-color: lightcyan;
}
.viewport-box {
width: 70vw;
height: 10vh;
background-color: azure;
}
각 요소별 position 속성이 정의되어 있어야 사용 가능
요소를 1차원 구조로 쉽게 정렬하고 공간을 분배할 수 있도록 해주는 속성
display: flex; 로 flex 선언
flex-direction: : 정렬 방향 설정
justify-content: : 정렬 방향에 대한 정렬
align-items: : 정렬 방향의 수직에 대한 정렬
flex-warp: : 아이템 줄바꿈
gap: : 요소간의 거리
웹 페이지를 행과 열로 나누어 2차원 레이아웃을 설계할 수 있도록 해주는 속성
display: grid; 로 grid 선언
grid-template-columns: : 열의 크기 정의
repeat(3, 1fr); : 3개의 열을 1:1:1 비율로 설정200px 2fr 1fr; : 3개의 열을 200px 2:1 비율로 설정grid-template-rows: : 행의 크기 정의
justify-content: / align-items: / gap: 등은 Flex와 동일하게 적용
각 요소별 grid-column / grid-row 속성으로 grid에서의 위치 설정 가능
1 / 3 / auto / span 2transform: translate(x, y) : 요소를 x, y축 방향으로 이동
transform: translateX(n) : 요소를 x축 방향으로 n만큼 이동
transform: translateY(n) : 요소를 y축 방향으로 n만큼 이동
transform: scale(n) : 요소를 n(비율)만큼 확대 / 축소transform: rotate(deg) : 요소를 입력 값만큼 회전 (deg=각도)CSS를 배울수록 JavaScript에 대한 기대감이 높아지는 것 같다. CSS만으로도 꽤 높은 퀄리티의 웹을 제작할 수 있을 것 같은데, 여기에 JavaScript의 기능적인 부분이 더해진다면 어떨지 상당히 기대가 되는 부분이다.