Front-End/CSS

[CSS] html/css 프로젝트 실습 중 놓쳐 막혔던 부분 + 몰랐던 부분

sihyeong 2022. 10. 22. 00:48

1. position : absolute

  •  막힌 부분 : absolute 후에 top : 10px; 을 했으나 어디갔는지 안보이는 현상
상위 엘리먼트 중 relative를 가진 가장 가까운 엘리먼트의 내부를 기분으로
배치가 이루어진다.

나의 경우엔 부모 중 relative를 가진 엘리먼트가 없어, 부모를 벗어나
가장 바깥 부모(브라우저 화면 제일 위)로 이동하여 안보였던 것이다.

absolute를 이용해 부모를 기준으로 배치하고 싶다면
부모 속성으로 relative 사용
한줄요약 : absolute 사용 시 부모에 relative 사용하자

 

2. box-sizing : border-box

  • 막힌부분 : margin, padding 등으로 원하는 크기와는 달라지는 현상
이 같은 경우는 margin, padding, border, content를 수정하여
원하는 크기를 만들 수 있다.

하지만 box-sizing : border-box를 사용하면
한번에 원하는 크기로 수정이 가능하다.
한줄요약 : 원하는 크기로 만들려면 box-sizing : border-box; 하면 편하다

 

3. display : flex / flex-wrap : wrap

  • 막힌부분 : flex를 이용하여 위와 같은 레이아웃 구성
flex-direction : row (기본속성) 일 때
flex가 적용된 엘리먼트에 flex-wrap : wrap을 해주고
C 엘리먼트의 크기를 크게 키워 준다면

wrap처리되어 다음 행으로 넘어가 flex로 2/1 형식의 레이아웃 구성 가능
한줄요약 flex-wrap : wrap 사용 시 flex로 2/1 레이아웃 구성 가능

 

4. em

  • em은 font-size를 기준으로 적용된다.
font-size : 15px;
width = 0.8em;

width = 15(font-size) * 0.8 = 12px;

 

5. outline

  • border의 외곽
border보다 바깥에 있는 영역이다.

border은 레이아웃에 관여하기 때문에 레이아웃에 문제가 생길 수 있음
outline은 레이아웃에 관여하지 않고 화면에만 보임

 

6.  ~ 일반 형제 결합자

 앞쪽 선택자 요소의 부모 요소가 같고, 
 
 뒤쪽 선택자의 요소가 뒤에 위치할 때 선택합니다

예제

p ~ span {
  color: red;
}
<span>이건 빨강이 아닙니다.</span>
<p>여기 문단이 있습니다.</p>
<code>그리고 코드도 있습니다.</code>
<span>이제 빨강입니다!</span>
<code>더 많은 코드가 있습니다.</code>
<span>이것도 빨강입니다!</span>
이건 빨강이 아닙니다.

여기 문단이 있습니다.

그리고 코드도 있습니다. 이제 빨강입니다! 더 많은 코드가 있습니다. 이것도 빨강입니다!