如何清楚浮动(一)
已知一个大的div容器,这个容器包含了两个子div容器,然后在这两个子div容器的后面再添加一个div(这个div表示清除浮动的div容器),清楚浮动的div容器设置css样式为clear:both,此时,大的div标签的内部(左右两边/*css5*/)浮动就清除了。
如果有一个大的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 중국어 웹사이트의 기타 관련 기사를 참조하세요!