掌握CSS浮动:从基础开始
发表时间: 2023-09-12 10:49
浮动是为了元素标签的并排显示问题。
我们在浏览网页的时候,经常会看到 几个 div 块是可以并排显示的, 浮动就是解决这样问题的方法之一。
float属性有以下的值
浮动的特点
一个浮动的例子
<!--一个浮动的例子--><style> .box1 { width: 600px; height: 200px; border: 1px solid #000; } .box1 .con1 { width: 200px; height: 200px; background-color: orange; float: left; } .box1 .con2 { width: 200px; height: 200px; background-color: blue; float: left; } .box1 .con3 { width: 201px; height: 200px; background-color: yellowgreen; float: left; }</style><div class="box1"> <div class="con1"></div> <div class="con2"></div> <div class="con3"></div></div>
一个顺序贴靠的例子
<!-- 一个顺序贴靠的例 子--><!-- 以下代码中 兄弟元素 con1, con2, con3 之间会进行顺序贴靠--><!-- con3 在贴靠 con2 的时候,发现父容器的宽度只能是400px, 分别被con1 和 con2 占据, 所以con3 会找 cont1 贴靠,最终con3 位于 con1右边, con2下边 --><style> .box1 { width: 400px; height: 200px; border: 1px solid #000; } .box1 .con1 { width: 200px; height: 200px; background-color: orange; float: left; } .box1 .con2 { width: 200px; height: 100px; background-color: blue; float: left; } .box1 .con3 { width: 200px; height: 100px; background-color: yellowgreen; float: left; }</style><div class="box1"> <div class="con1"></div> <div class="con2"></div> <div class="con3"></div></div>
清除浮动是为了 不影响设置浮动标签的后续的标签的布局展示。
因为,在一个父容器中,子元素浮动了,脱离了标准文档流,不在占用之前的位置,会导致 无法撑开没有设置高度的父元素;从而导致后续的结构挤压,造成整个页面布局的混乱。
<style> * { margin: 0; padding: 0; } div { height: 100px; } p { float: left; width: 100px; height: 100px; margin-right: 20px; background-color: red; }</style><body> <div> <p></p> <p></p> </div> <div> <p></p> <p></p> <p></p> </div></body>
<style> * { margin: 0; padding: 0; } .box2 { margin-top: 20px; clear: both; } p { float: left; width: 100px; height: 100px; margin-right: 20px; background-color: red; }</style><body><div> <p></p> <p></p></div><div class="box2"> <p></p> <p></p> <p></p></div></body>
<style> * { margin: 0; padding: 0; } .cleafix::after { content: ''; clear: both; display: block } p { float: left; width: 100px; height: 100px; margin-right: 20px; background-color: red; }</style><body><div class="cleafix"> <p></p> <p></p></div><div class="cleafix"> <p></p> <p></p> <p></p></div></body>
<style>* { margin: 0; padding: 0;}.clearboth { clear: both;}p { float: left; width: 100px; height: 100px; margin-right: 20px; background-color: red;}</style><body><div><p></p><p></p></div><div class="clearboth"></div><div><p></p><p></p><p></p></div></body>
<style>* { margin: 0; padding: 0;}div { overflow: hidden; margin: 20px;}p { float: left; width: 100px; height: 100px; margin-right: 20px; background-color: red;}</style><body> <!-- 两个div 第一个div中的元素在内部浮动 第二个元素中的div在内部浮动 但是两个父盒子之前不要互相影响 --> <div> <p></p> <p></p> </div> <div> <p></p> <p></p> <p></p> </div></bo