>  기사  >  웹 프론트엔드  >  div+css 플로팅 솔루션

div+css 플로팅 솔루션

高洛峰
高洛峰원래의
2017-03-31 11:15:301698검색

如何清楚浮动(一)

  已知一个大的div容器,这个容器包含了两个子div容器,然后在这两个子div容器的后面再添加一个div(这个div表示清除浮动的div容器),清楚浮动的div容器设置css样式为clear:both,此时,大的div标签的内部(左右两边/*css5*/)浮动就清除了。

  如果有一个大的div容器2664b5c137162ed32cb2c4b60e3a831f 16b28748ea4df4d9c2150843fecfba68 ,这个大的div包含了一个子div容器4cd6539b02a5cf52b7697d7aec70ae5416b28748ea4df4d9c2150843fecfba68, sub-div 컨테이너는 너비, 높이, 배경색을 설정하고 내부, 여백을 설정하지 않으며 이때 하위 div 컨테이너는 기본적으로 왼쪽으로 설정됩니다. 하위 div 컨테이너는 부동 상태로 유지됩니다(float) 브라우저의 속성을 상속하며 레이아웃 기능이 없습니다. 그런 다음 하위 div 컨테이너의 float를 float:left로 설정했습니다. float:left를 설정한 후 하위 div 컨테이너가 부동하고 하위 div 컨테이너가 큰 div의 상단에서 일정 거리에 있다는 것을 발견했습니다. 컨테이너.

<body>
        <div class="divcss5">
            <div class="clear"></div>
        <!--<div class="clear eft"></div>
                    <div class="clear ight"></div>-->
        </div> 
    </body>

margin 속성

으로 부동합니다. 그런 다음 margin-top:10px이고 하위 div 컨테이너는 원본을 기준으로 10px 아래로 이동했습니다. 즉, 부동은 margin-top 속성의 오프셋에 영향을 주지 않습니다. 마찬가지로 margin-left, margin-right에도 영향을 주지 않습니다. margin-bottom속성이 가져야 하는 오프셋입니다.

Float에는 위쪽, 왼쪽, 오른쪽, 아래쪽 속성이 없습니다.

그런 다음 이제 margin-top:10px;를 삭제하고 하위 div 컨테이너에 대해 top:10px를 설정한 다음 수직 좌표는 발생하지 않습니다. 즉, 플로팅에는 상단 속성이 없습니다. 마찬가지로 왼쪽, 오른쪽, 아래쪽 속성이 없습니다.

그러면 어떤 상황에서 위쪽, 왼쪽, 오른쪽, 아래쪽 속성을 설정하여 플로팅에 영향을 미칠 수 있나요?

플로팅에는 위쪽, 왼쪽, 오른쪽, 아래쪽 속성이 있습니다(조건부 설정 상대 위치 위치)

그래서 하위 div 컨테이너에 상대적인 상대 위치를 추가했습니다. 그런 다음 top:10px를 설정했는데 갑자기 하위 div 컨테이너가 아래쪽으로 10px 오프셋된 것을 발견했습니다.

계속해서 하위 div 부동의 상태 를 position:relative;로 설정한 다음 margin-left:10px; sub-div 컨테이너가 오른쪽으로 수평으로 이동합니다. 10px의 오프셋이 변경되면 margin-top, margin-right, margin-bottom이 모두 같은 방식으로 변경됩니다.

즉, 하위 div 컨테이너에 float:left를 설정할 때 margin-left를 설정하면 작동하지만 top을 설정하면 아무런 효과가 없습니다. Top은 상대 위치가 하위 div 컨테이너로 설정된 경우 부동 상태에서만 작동할 수 있습니다. 그러면 left와 top이 상대 위치에 있을 때만 작동할 수 있다는 의미입니까? 이제 실험을 해 보겠습니다. 하위 div 컨테이너에서 float:left;position:relative; 를 삭제했습니다. 부동 위치나 상대 위치는 없으며 해당 CSS 코드는 다음과 같습니다. 다음과 같습니다. 클리어{너비: 200px;배경: #f2e;color:#030617;높이: 20px;top:50px;왼쪽: 10px;}; , 결과적으로 sub-div 컨테이너는 수평 및 수직 축에서 전혀 이동하지 않았으므로 상대 위치가 설정된 경우 왼쪽 및 위쪽만 작동하는 것으로 나타났습니다. 마진은 포지션 설정 여부에 관계없이 작동합니다.

위에서 부동 부동을 계속합니다. 이제 브라우저의 부동 속성을 상속하도록 설정하면 이때 하위 div가 부동이 아니고 왼쪽에 있는 것을 볼 수 있습니다. 기본. 마찬가지로, 하위 div에 플로팅 스타일 없음 초기를 설정하면 플로팅 효과가 발생하지 않습니다. 하위 div 컨테이너에 대해 왼쪽 및 오른쪽 부동이 설정된 경우에만 하위 div 컨테이너가 부동으로 나타납니다.

부동소수를 지우는 방법(2)

다음으로 부동소수점을 지우는 다른 방법을 사용합니다. HTML 코드는 여전히 위 코드, 즉 대형 컨테이너 div의 CSS 코드입니다. divcss5{패딩:10px 0;width: 100%; 왼쪽: 50%;오른쪽: 50%;배경: #007CB5;}, 하위 div 컨테이너의 CSS 코드: .clear{width: 200px; background: #f2e ;color:#030617;height: 20px;float:left;} 이때 보이는 것은 플로팅 효과입니다. 동일한 원리로 하위 div 컨테이너가 큰 컨테이너 위에 떠 있습니다. 여전히 clear:both를 사용할 수 있습니다. CSS 의사 요소 :after는 매우 간단한 CSS 코드입니다. css 의사 클래스 를 상위 컨테이너에 작성하세요. divcss5:after{content: "1";clear : 양쪽;display: block;} 이때 우리가 보는 것은 대형 컨테이너의 플로트가 지워진 것이고 브라우저에서는 다음을 수행할 수 있습니다. 하위 div 컨테이너가 대형 div 컨테이너 안에 포함되어 있는지 확인하세요. 브라우저에서 요소를 보면 after가 상위 컨테이너에 포함되어 있음을 알 수 있습니다. 따라서 이 레이어는 .divcss5로 구현된다는 점을 제외하면 상위 컨테이너 내에 명확한 부동 div를 추가하는 것과 동일합니다. :후에 .

위 내용은 div+css 플로팅 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.