特点1 浮动实现字围(新闻)
<style>
.div1{
float: left;
background-color:palegoldenrod;
width: 100px;
height: 100px;
}
</style>
<body>
<div class="div1"></div>
HTTP 协议本身并不复杂,理解起来也不会花费太多学习成本,但纯
概念式的学习稍显单调。前端工程师也许对各种具有炫酷效果的页面
的实现技巧、赏心悦目的 UI 框架更感兴趣,但因此常常忽视了 HTTP
协议这部分基础内容。实际上,如果想要在专业技术道路上走得更坚
HTTP 协议本身并不复杂,理解起来也不会花费太多学习成本,但纯
概念式的学习稍显单调。前端工程师也许对各种具有炫酷效果的页面
的实现技巧、赏心悦目的 UI 框架更感兴趣,但因此常常忽视了 HTTP
协议这部分基础内容。实际上,如果想要在专业技术道路上走得更坚
</body>
效果:
浮动前:
<style>
.father{
width: 300px;
height: 300px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" background-color: palegoldenrod;"></div>
<div class="son" style="background-color: pink;"></div>
<div class="son" style="background-color: paleturquoise;"></div>
</div>
效果:
浮动后:
<style>
.father{
width: 300px;
height: 300px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" style="float:left;background-color: palegoldenrod;">
</div>
<div class="son" style="background-color: pink;"></div>
<div class="son" style="background-color: paleturquoise;"></div>
</div>
<style>
.father{
width: 300px;
height: 300px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" style="float:left;background-color: palegoldenrod;"></div>
<div class="son" style="float:left;background-color: pink;"></div>
<div class="son" style="float:left;background-color: paleturquoise;"></div>
</div>
效果:
特点5 如果一个元素没有设置高度,它的高度是靠里面的内容撑起来的。如果父元素内部元素都浮动了,那么会造成父元素的高度塌陷。
没有设置高度的情况(在本例中没有给父元素设置高度):
<style>
.father{
width: 300px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" style="background-color: palegoldenrod;"></div>
<div class="son" style="background-color: pink;"></div>
<div class="son" style="background-color: paleturquoise;"></div>
</div>
效果:
设置父元素的内部元素全部浮动,会造成父元素的高度塌陷的情况:
<style>
/* 没有给父元素设置高度的情况 */
.father{
width: 300px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" style=" float: left;;background-color: palegoldenrod;">
</div>
<div class="son" style=" float: left;;background-color: pink;"></div>
<div class="son" style=" float: left;;background-color: paleturquoise;">
</div>
</div>
效果:
加高法:
<style>
/* 加高法 */
.father{
width: 200px;
height: 200px;
border: 1px dashed red;
}
.son{
width: 50px;
height: 50px;
}
</style>
<div class="father">
<div class="son" style=" float: left;background-color: palegoldenrod;">
</div>
<div class="son" style=" float: left;background-color: pink;"></div>
<div class="son" style=" float: left;background-color: paleturquoise;">
</div>
</div>
效果:
小偏方(overflow:hidden):
.father{
width: 200px;
border: 1px dashed red;
overflow: hidden;
}
<div class="father">
<div class="son" style=" background-color: palegoldenrod;"></div>
<div class="son" style=" float: left;background-color: pink;"></div>
<div class="son" style=" clear: both;background-color: paleturquoise;"></div>
</div>
效果:
div
效果:
<span style="float: left;width:100px;height:100px;border: 1px solid salmon;">
span
</span>
效果:
<style>
.father{
float: left;
width: 200px;
border: 1px dashed red;
}
.son{
width:50px;
}
</style>
<div class="father">
<div class="son" style="float: left ;background-color: palegoldenrod;">
div
</div>
<div class="son" style="float: left ;background-color: palegreen;">div</div>
<div class="son" style="float: left ;background-color: papayawhip;">div</div>
</div>
效果:
元素浮动会造成影响(清除浮动):
1,对父元素造成的影响
父元素高度塌陷
解决:显示加高度(加高法) 小偏方(overflow:hidden) clear:both
加高法:简单 基本不用 大部分情况情况下,父元素的高度是需要子元素撑起来
overflow:hidden : 简单 使用了overflow:hidden 父元素的高度会随着子元素的高度变化而变化 overflow:hidden本职工作是用来处理溢出 在使用过程中,需要注意子元素如果想要超出父元素高度,此时overflow:hidden就不适合了。
clear:both 在所有子元素后面加一个空的div 在这个div上面加clear:both ---> 内qiang法
优点:clear:both专业清除浮动的 缺点:多写一个代码
2,对后面兄弟元素造成的影响
兄弟元素会向上移动
解决:在受影响的元素上面的加 clear:both
验证 内qiang法,在所有子元素后面加一个空的div 在这个div上面加clear:both
没有加空的div之前的效果:
加了空的div之后的效果:
<style>
.father{
width: 200px;
border: 1px solid rebeccapurple;
}
.son{
width: 50px;
height: 50px;
float: left;
}
.one{
background-color: palegoldenrod;
}
.two{
background-color: palegreen;
}
.three{
background-color: palevioletred;
}
</style>
<div style="width: 100px;height:100px;background:palevioletred;"></div>
<div style="float: left;width: 100px;height:100px;background:pink;"></div>
<div style="clear: both;width: 100px;height:100px;background:rebeccapurple;"></div>
效果:
项目中最常用清除浮动的方法: 利用伪元素 after
说白了,就是写一个清除浮动的类,如下:
.clear:after{content=""; display:block; clear:both; height:0; overflow:hidden;}
<style>
.clear:after{
clear: both;
overflow: hidden;
display: block;
content: "";
height: 0;
}
.father{
width: 300px;
border: 3px solid black;
}
</style>
<div class="father clear">
<div style="float: left;width: 100px;height:100px;background:palevioletred;"></div>
<div style="float: left;width: 100px;height:100px;background:pink;"></div>
<div style="float: left;width: 100px;height:100px;background:rebeccapurple;"></div>
</div>
效果: