Home CSS 시작!
Post
Cancel

CSS 시작!

1. CSS 정리

글자 크기, 여백의 크기, 높이, 예외사항 등등 ‘사소해 보이는 것’을 잘 맞추자. 아님 이런것들로 인해 나중에 버그가 발생했을 때 어디서 버그가 발생했는지 알기 힘들기 때문

box-sizing:border-box 안 해주면 padding-top:50vh로 인해서 scroll-section-숫자의 박스 사이즈가 변경이 되어버린다. 그래서 box-size를 고정시켜주기 위해서 border-box를 한다. 이 모든것은 default.css에 포함되어있다. 아래는 w3school에서 border-box에 대한 정의이다.

The CSS box-sizing property allows us to include the padding and border in an element's total width and height.

  • 자식 height:100%로 해주면 부모 높이에 맞춰진다.

height

  • margin-right:auto 로 해두면 오른쪽에 있는 nav가 오른쪽으로 쏠리게 되면서 자동적으로 가운데 정렬이 된다. 그 이유는 auto로 하면서 오른쪽에 있는 여백을 모두 쓰게 되기 때문이다.

margin

  • 참고로 margin: 0 auto 라고 하면 좌우 여백이 균일하게 맞춰지면서 자동으로 가운데 정렬됨.

  • a:not(.product-name) 이라고 하면 product-name빼고 모든 a에 적용한다는 뜻.

1
2
3
4
.local-nav-links a:not(.product-name) {
  margin-left: 2em;
  /* .product-name 클래스만 빼고 margin-left 2em 만큼 적용 */
}
  • 우선순위를 앞에 두고 싶다고 하면 부모클래스 > 자식클래스를 명확하게 지정할것! (.local-nav-links .product-name 보다 local-nav-links a 가 덜 중요)

  • 숫자 rem: html 폰트 사이즈 곱하기 숫자(html의 px에 따라 달라짐, 창이 크든 작든 고정되었으면 할때 사용)

  • 숫자 em : 현재 속해 있는 font-size 곱하기 숫자. 즉 root가 아닌 font-size에 맞춰서 알아서 높이나 넓이가 변환이 되므로 더 유연하게 크기가 변경됨. 그럼 굳이 계산하지 않아도 알아서 font-size에 맞게 높이, 넓이 , 여백이 결정됨.

  • 50vh: 뷰포트(화면)의 높이의 반을 의미(창의 크기에 따라 달라짐)

  • float: 그림이나 글자가 어느 방향으로 자연스레 흐르게 할거냐를 결정할 수 있음.

  • #show-scene-‘숫자’(body의 id로써) #scroll-section-숫자 .sticky-elem {display:block}이라고 설정해주고, ‘숫자’ 만 바꾸어주면 해당 숫자에 속해있는 sticky-elem이 나타나게 만들었다.(body에 show-scene-숫자 클래스를 추가함.)

1
2
3
4
5
6
#show-scene-0 #scroll-section-0 .sticky-elem,
#show-scene-1 #scroll-section-1 .sticky-elem,
#show-scene-2 #scroll-section-2 .sticky-elem,
#show-scene-3 #scroll-section-3 .sticky-elem {
  display: block;
}
  • position:sticky를 이용해서 스크롤이 특정 위치에 도달하면 글이 고정되어 나타나게 하려고 했으나 지원하는 브라우저가 적어서 일단 fixed로 하고 자바스크립트로 조정하기로 결정.

  • 아주 미세한 버그도 그냥 넘기지 말고 디버깅하는게 좋다. 미세한 버그로 인한 문제는 찾기가 매우 힘들 수 있기 때문이다.

  • transform:translateY(20%) 이라고 하면 움직이고자 하는 객체 크기의 20% 길이만큼 아래로 내려보낸다. 따라서 %를 쓰면 유연하게 사용가능

  • 근데 사실 하드웨어 퍼포먼스는 translate3d가 더 좋아서 translateY를 구현한다하더라도 3d를 쓰는 추세이다.

  • section-0 h1 의 위치 변경할때 position:relative와 top:-10vh를 쓰는 이유는? relative는 absolute와 다르게 주변 element의 위치를 그대로 유지한채 바뀌는 것이다. 다른 element와의 위치관계를 그대로 유지한채 h1의 위치가 옮겨가야하므로 relative를 쓴다. 그리고 vh를 쓰는 이유는 scroll-section의 padding이 vh를 썼기 때문이다.

This post is licensed under CC BY 4.0 by the author.

-

자바스크립트 시작!