1. column-count / column-width
column-count: 1;
1
이고, 값이 2 이상이면 해당 숫자만큼 container를 만들 수 있다.column-width: auto;
auto
이고, 지정한 px 단위를 기준으로 최적의 너비를 자동으로 판단한다.
.container { column-count: 2; }
2. column-rule
width
style
color
;
.container { column-count: 3; column-rule: 4px dashed black; }
3. column-gap
.container { column-count: 3; column-rule: 3px dotted; column-gap: 80px; }
filter: blur(px);
- blur 함수를 통해 px 단위로 요소의 흐름 단위를 조절할 수 있다.(4px 정도만 되도 많이 흐려짐)
filter: grayscale(100%);
- 기본 값: 100%, %의 값 만큼 회색이 된다. 값이 낮아질 수록 색이 나타나고 값이 올라갈 수록 회색이 된다.
filter: invert();
- 기본 값: 100%, % 만큼 색상 반전
filter: drop-shadow(x축거리 y축거리 흐림정도 색상);
- drop-shadow(10px 20px 30px red); 등으로 쓴다.
- container의 배경에 맞게 그림자가 생성된다. 배경 색상, 이미지가 없는 경우 내부 아이템의 경계에 생성되고, 배경이 있다면 그 배경에 맞게 그림자가 생성된다.
filter: brightness(1); 기본값: 1, 밝기 조절
filter: contrast(100%); 기본값: 100%, 대비 조절
filter: opacity(100%); 기본값: 100%, 투명도 조절, 0~100% 사이 값만 가능
filter: saturate(100%); 기본값: 100%, 채도 조절
filter: sepia(100%); 기본값: 0, sepia톤(오래된 사진, 바래져 있는 느낌)을 의미.
filter: hue-rotate(0deg); 기본값: 0deg, hue: 색상을 의미,
backdrop-filter: filter-func;
- 자기 자신에게 filter를 적용하는 것이 아니고, 해당 요소의 배경에 보이는 요소 뒤에 위치하는 요소에 filter 속성을 적용한다.
@supports (속성: 값 // 또는 함수) {
// 브라우저에서 괄호 안의 기술을 사용할 수 있으면 중괄호 안의 내용이 실행되고, 지원하지 않으면 실행되지 않는다.
selector { style }
}
@supports not (속성: 값 // 또는 함수) {
// 브라우저에서 괄호 안의 기술을 사용할 수 없으면 중괄호 안의 내용이 실행된다.
selector { style }
}
@supports (display: grid) {
div {
display: grid;
}
}
// 브라우저가 display: grid를 지원하면 그대로 grid를 적용시킨다. 지원하지 않는 경우 실행되지 않는다.
@supports (기능1) and (기능2) and (기능3) { style }
@supports (기능1) or (기능2) or (기능3) { style }
@supports (selector(.container)) {
선택자 {
속성: 값;
}
}
@media 타입 and (기능) { 스타일 }
@media (max-width: 1024px) { 스타일 }
// all 타입에 최대 너비가 1024px 까지 중괄호 안의 스타일을 적용한다.
@media not all and (max-width: 1024px) { 스타일 }
// all 타입에 최대 너비가 1024px이 아닐 때 중괄호 안의 스타일을 적용한다.
// 여기서 not 연산자를 사용할 때는 타입을 명시해줘야 작동한다.
@media
not all and (max-width: 1024px) and (min-width: 768px),
tv and (display-mode: fullscreen)
{ 스타일 }
// 여러개의 @media를 입력할 때는 쉼표로 구분하여 작성할 수 있다.
html 파일에서의 사용: @media는 .css 파일에서 사용되지만, .html 파일에서 link 태그 내부에 입력해서 사용할 수 있다.
<head>
<link rel="stylesheet" href="./css/main.css">
<link rel="stylesheet" href="./css/main-media.css" media="(max-width: 1024px) and (min-width: 768px)">
</head>
// html의 link 태그 내에 media 속성을 입력하면 css 파일에서 미디어 쿼리를 입력한 것과 동일한 속성을 적용시킬 수 있다.
html, css를 배우고 나서 javascript를 배우는 데에 집중하느라 html, css에는 소홀히 했었다. html, css를 완전히 아는 것이 아니더라도 대략적으로 알고 있는 내용을 검색을 통해서 필요할 때 가져다 사용할 수 있을 줄 알았다. 그러나 오늘 새롭게 알게 된 내용들이 많았다.
@media의 경우 사용을 해봤지만 정확하게 아는 것은 아니었고, @media screen and (max-width: 1024px) 이렇게만 사용해서 만약 @media 기능을 응용해야 했었다면 쉽게 느껴지지 않았을 것이다.
CSS column, filter, @supports에 대해서는 이미 배웠거나 사용했거나 본적은 있었을지 모르겠지만 처음 보는것처럼 생소했다. 지금이라도 알게된 것이 다행이고, 이런 기능들을 통해서 더 다양한 기능들을 구현할 수 있게 될 것이라고 생각한다.
CSS는 어렵다. 정적인 웹 사이트를 보고 클론하여 스타일을 적용하는 것은 어려워도 어느정도 가능한 수준이라고 생각하지만, Animation 같은 CSS로 동적인 웹 사이트를 보고 클론하는 것은 쉽지 않다.
지금까지는 단순히 내 컴퓨터의 chrome 브라우저에서 정상적으로 작동하면 당연하게 넘어갔었는데, @supports 기능으로 크로스 브라우징 같은 문제를 해결할 수 있을것이라 생각한다.
Javascript도 마찬가지지만 CSS는 특히 사용할수록 금방 손에 익고 실력이 늘어가는 게 느껴지는 분야라고 생각하고, 사용하지 않을수록 금방 잊혀지게 되는 것이라 생각한다.
오늘 배운 내용들, 앞으로 배우게될 CSS 내용들을 지속적으로 공부하다 프로젝트를 진행하게 되면 배운 내용을 적극적으로 사용하여 프로젝트를 진행할 예정이다.