상추의 IT저장소

CSS)Flex에서 Gap 본문

CSS

CSS)Flex에서 Gap

구너상추 2024. 9. 23. 14:10

gird에서의 gap

gird 속성 사용 시 자식요소의 box의 여백(공간)을 주기 위한 속성의 값이다.

 

gap과 margin의 차이는 무엇일까?

margin : 엘리먼트 요소 이외외 것에도 여백이 생긴다.
gap : 엘리먼트 요소에만(!!) 여백이 생긴다.(단, 인접요소가 없다면 적용되지 않는다.)

 

margin을 활용한 여백 주기

margin을 이용하여 여백을 주는 방법은 아래의 코드로 확인할 수 있다.

<div class="out_box">
  <div class="box">
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
  </div>
</div>
 .out_box{
padding: 30px;
}
.box{
display: flex;
flex-wrap: wrap;
width: 600px;
font-size: 0;
background: blue;
margin: -10px
}
.in_box{
display: inline-block;
vertical-align: top;
width: calc(33.3333% - 10px);
height: 200px;
margin: 5px;
background: violet;
}

확인하는 것과 같이 부모에 margin 값을 마이너스(-)값을 주는 꼼수로 이러한 여백을 만들 수 있다. 하지만, 이것의 단점은 부모요소가 content 영역을 벗어나는 것을 볼 수 있다.

물론 좌/하, 상/왼 만주는 방법도 있지만, 이것또한 열마다 재지정을 하는 이슈가 발생되어 css코드가 늘어나게된다.

 

gap을 활용한 여백 주기

아래의 코드를 확인하세요.

<div class="out_box">
  <div class="box">
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
    <div class="in_box">
    </div>
  </div>
</div>
.out_box{
  padding: 30px;
}
.box{
  display: flex;
  flex-wrap: wrap;
  width: 600px;
  font-size: 0;
  background: green;
  gap: 15px;
}
.in_box{
  display: inline-block;
  vertical-align: top;
  width: calc(33.3333% - 10px);
  height: 200px;
  background: yellow;
}

gap은 margin처럼 부모의 margin값을 마이너스(-)하지 않아도 자식 요소들의 여백을 줄 수 있다.

 

flex에서도 gap을?

2017년 초 gird가 브라우저에서 지원을 하였지만, ie는 사라진 순간까지도 gird와 gap을 지원하지 않았다.

(ie10,11에선 -ms-를 이용한 부분적 제한이 있었음)
그렇기 때문에 ie까지 대응하기위해 flex를 사용할때는 gap을 사용할 수 없었다.
하지만, 2022년 ie의 서비스 종료로 다시금 gap라는 속성을 flex에 적용한 사례가 웹페이지에서 목격이 된다.

 

 

사용방법은 gird사용과 동일

p{
	display: flex;
    gap: 10px;
}

이와 같이 flex를 지정한 곳에 gap을 사용하면 된다.

 

'CSS' 카테고리의 다른 글

CSS) Grid 레이아웃  (0) 2023.01.24
CSS) flexbox - flex 아이템에 적용하는 속성들  (0) 2023.01.05
CSS) font-face 사용하기  (0) 2022.12.20
CSS) flexbox - flexcontainer에 적용되는 속성  (0) 2022.11.10
CSS) 선택자  (0) 2022.11.05