css

CSS float 사용방법 정리

grovy 2023. 2. 25. 19:05
728x90

float요소 ?

  • float 라는 단어는 원래 ‘뜨다’ 라는 의미이며
    웹페이지에서 이미지를 어떻게 띄워서 텍스트와 함께 배치할 것인가에 대한 속성입니다
  • 여기서 떠 있다(float)는 의미는 요소가 기본 레이아웃 흐름에서 벗어나
    요소의 모서리가 페이지의 왼쪽이나 오른쪽에 이동하는 것입니다.
  • block 요소는 세로로 나열되지만 float요소를 이용하여 가로로 배치 가능 !

 

하단 두 코드는 적용 &미적용 한것입니다

See the Pen Untitled by getgrovy (@getgrovy) on CodePen.

See the Pen non float: left by getgrovy (@getgrovy) on CodePen.

float요소들 

  • left : 요소를 왼쪽 방향으로 부유하게 설정
  • right : 요소를 오른쪽 방향으로 부유하게 설정
  • none : 기본값(default), 요소를 띄우지 않는다.

float를 쓰면 생기는 문제점 !

  • 플로팅한 요소는 문서의 흐름을 벗어나기때문에 레이아웃을 무너뜨리게 되는 현상이 나타남
  • 이런 문제를 해결하기 위해서는 float 을 해제해 주어야해
  • 여기서 해제한다는 의미는 float을 해제하지않고 문제생긴 부분에 float의 영향을 받지 않도록 하는거야

 

문제점 해결방법 1 2 3 4 5

1. clear 속성부여

 clear 속성을 부여하여 float효과를 해제 

  • left : 왼쪽에 floating 된 요소를 지정 해제
  • right : 오른쪽에 floating 된 요소를 지정 해제
  • both : 왼쪽 오른쪽 모두 floating 된 요소를 지정 해제
  • none : 기본값(default), floating 을 해제하지 않음

2. 부모 요소에 float 적용

.parent { float: left; }
  • 플롯된 요소가 자식 요소일 경우에 부모요소는
    자식 요소(문서 흐름에서 벗어남)를 감싸지 못하는 특징으로 인해 레이아웃이 무너진 형태처럼 보여
  • 위처럼 부모에 float요소를 줄경우는 자식 요소의 높이를 인지하게 되지만
    부모 요소도 float 된 요소가 되어 인라인 블럭의 특징을 가지고 되기 때문에 아웃에 따라 사용해야해

3. 부모요소에 display:inline-block 적용

.parent { display: inline-block; }
  • - 부모 요소는 자식 요소의 높이를 인지하게 되지만 되지만
    부모 요소에 정의된 인라인블럭 속성 특성 때문에 본인 영역만큼만 너비를 가져
  • float은 클리어되지만 부모태그가 inline-block이 되면서 의도하지 않은 레이아웃이 나타날수있어

4. 부모요소에 overflow:hidden 적용

.parent { overflow: hidden; }
  • overflow: auto;를 적용해도 되지만
    자식 요소 너비가 부모 요소 너비보다 클 경우에 스크롤이 생기기 때문에 권장되지 않아!
  • overflow 특징대로 넘치는 것을 숨겨주는 속성이야
  • 자식, 자손 요소들 중에서 부모 요소 박스를 벗어나서 보여주어야 될 경우에
    overflow: hidden 값으로 인해 보여주고자 하는 요소가 안보이기때문에 잘써야해

5. micro clearfix hack

.clearfix:before, .clearfix:after {
    display: block;
    content: '';
    line-height: 0;
}
.clearfix:after {
    clear:both;
}
  • CSS 연구전문가인 니콜라스 갤러거가 고안한 방법(micro clearfix hack)이야 ! 
  • 가장 최신에 나온 방법이며 css에 만들어 놓고 요소들에게
    clearfix 라는 class만 주면 되어서 가장 간편하고 오류가 적은 방법이야 

앞으로 이 방법으로만 레이아웃을 만들지 않을까 싶어 안뇽!