Important : BEM(Block Elements Modifier) 규칙을 따라 코드 작성하기. https://css-tricks.com/bem-101/
폰트 찾아쓸 수 있는 곳 https://fonts.google.com/
아이콘 찾아 쓸 수 있는 곳
https://heroicons.com/
https://fontawesome.com/
Font Awesome
<script
src="https://kit.fontawesome.com/6478f529f2.js"
crossorigin="anonymous"
></script>
이 코드를 바디 태그 가장 밑에 적으면 font awesome이 설치된다. 그러면 font awesome 사이트에서 마음에 드는 아이콘을 골라 코드에서 원하는 곳에 복붙하면 된다.
HTML Shortcut
"!" = html 기초 코드들 생성
"link:css" = CSS 파일 연동 코드 생성
".classname*(원하는 div 개수) = classname을 클래스네임으로 하는 div이 적은 수만큼 생성된다.
우리가 원하든 원하지 않든 브라우저가 알아서 html에 적용시키는 스타일이 있다. (margin, padding 등등) 이걸 없애는 방법이 있는데, reset css 라는 것이다.
https://cssdeck.com/blog/scripts/eric-meyer-reset-css/ 본 홈페이지에 있는 코드를 복사해서 CSS 폴더에 reset.css 파일을 따로 만든 후 거기에 붙여넣기 해주고, 사용하던 css 파일에 reset.css 파일을 import 해주면 된다. Then we can start from scratch. -> @import "reset.css";
이런 식으로 form 태그에 method를 get으로 지정하고 input들에 이름을 준 후, 로그인 사이트에서 각각 input을 입력하면, action으로 작동되는 다음 페이지 friends.html의 url이 아래와 같이 뜬다. (입력한 인풋 각각 11314, 14141)
(Shortcut) 아래와 같이 네비게이션 코드를 쓰려면 VSC에서 nav>ul>li*(필요한 li 개수)>a 를 적어준 후 엔터를 누르면 된다. 생성을 해준 직후 커서가 "" 안에 가 있을 것이다. 그때 #를 클릭해준 후 tab을 누르면 커서가 li 코드 안으로 들어가며, 거기에 리스트 이름을 적어주고 tab을 클릭하고 이 과정을 반복해 두 번째 사진과 같이 코드를 완성한다.
CSS 박스 사이즈 조정, box-sizing: border-box
만약 박스 width를 250px로 설정하고 padding을 25px로 설정한다면 콘텐츠가 들어갈 곳을 250px로 유지하면서 padding을 25px로 만들기 위해 실질적인 박스 크기는 275px가 된다. 따라서 만약 아이콘이 가로로 네 개 있는 박스를 width: 100%, padding: 25px로 설정하면 아이콘 하나가 밀려나서 보이지 않을 수도 있는 것. 이 경우 "box-sizing: border-box"를 써준다. 이로 하여금 CSS에게 It doesn't matter if I put padding here. Do not modify the size of my box. 라고 말해주는 것이다. 이 코드를 첫번째 예시에 넣으면 전체 박스 크기를 250px로 유지하며 콘텐츠 영역은 225px, 패딩 25px가 되는 것.
UPPERCASE
대문자는 디자인이다. 때문에 HTML에서는 소문자로 작성해주고 CSS에서 대문자로 변경해준다. text-transform: uppercase;
z-index
z-index 속성으로 order of layers 지정할 수 있다. 이는 position: fixed/absolute; 등과 흔히 쓰인다(위 값들을 지정하면 레이어 형태로 계산되기 때문). By default, z-index is set to 0. 숫자가 낮을수록 맨앞에 온다
ex. z-index: 1;
border-radius 차이 주기
각각 코너의 다른 border-radius를 주고 싶다면 예를 들어, border-top-left-radious: 0px; 이런 식으로 주면 된다.
Modifier 사용
만약 for example, 카카오톡 채팅창을 만들 때 수신/발신 message row에 차이를 주고 싶을 때, 만들어둔 수신 message row를 복붙해서 발신 message row를 만들되, class 명을 따로 추가해서 css에 변화를 줄 수 있다.
display: flex, order 지정
부모 태그가 flex display 지정되어 있는 자식 태그들이 나타나는 순서를 뒤집고 싶을 때, order을 사용하면 된다. order: 1; 이런 식으로. order: 0; 이 가장 먼저 나타난다.
flex-direction: row/column-reverse;
위의 방법은 태그를 많이 적어야 하므로 대신 부모 태그에 flex-direction을 활용해 row/column을 뒤집어줄 수 있다.
VH/VW
vh: viewport height
vw: viewport width
예를 들어,
width: 100vw;
height: 100vh;
본 애니메이션을 플레이하고 opacity 0, 마지막 키프레임 값이 애니메이션이 끝난 이후에도 계속 유지하게 하고 싶다?
forwards를 적어주면 된다.
이렇게 한 경우 문제가 뭐냐면 겉으로 봤을 땐 opacity 0이 된 코드가 사라졌지만 그 html 코드는 아직 거기 있다는 것, 그렇게 되면 그 아래 깔린 다른 것들을 클릭할 수 없게 된다. 그렇다면 어떻게 해야할까? 간단한 것들에 대해선 아래와 같이 visibility: hidden;을 애니메이션에 추가해주면 된다. 하지만 실제로 html을 없애고 싶다거나 한다면 이렇게 해서는 안 되고 javascript를 써야할 것.