十九,浮动:float属性

float属性设置:
1,left–元素向左浮动
2,right–元素向右浮动
3,none–默认值。元素不浮动。
总结:
给谁添加了float,就将谁脱标,后面的内容会顶上来显示。
如果顶上去以后,脱标的内容没有改变位置,就会出现后者被前者(拖标内容)覆盖的情况。
如果没有改变位置,就出现该在的地方。

1,float的崩溃
当父元素没有设置高度的情况下,将子元素设置为浮动(float)父一级的块级元素高度
发生破坏(又称为破坏,崩塌)
div–>在没有设置高度和宽度的情况下:
高度为:div内内容的高度
宽度:为父一级的宽度

2,float的包裹性
包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
行级元素都会出现块级元素包裹多出(基准线)
解决:
1)将img转换为块级元素 vertical-align:bottom
2)垂直对齐方式:底部对齐;行级元素转块级元素

<html>
<head>
   <style type="text/css">
    div{
     
     
    	background-color: yellow;
    	float: left;
    }
    img{
     
     
    	vertical-align: bottom;
    }
   </style>
</head>
<body>
   <div>
   	<img src="image/3.jpg"/>
   </div>
</body>
</html>

3,使用float进行图文混排
float的设计初衷–>实现图文混排(环绕方式),文字和矩形区域,能够进行环绕排列
随着技术进入–>例如用于商品列表并排显示

<html>
<head>
   <style type="text/css">
    div{
    
    
    	background-color: yellow;
    	float: left;
    }
    img{
    
    
    	vertical-align: bottom;
    }
    p{
    
    
    	text-align: justify;
    	line-height: 20px;
    }
   </style>
</head>
<body>
   <div>
   	<img src="image/3.jpg"/>
   </div>
   <p>
   	包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
行级元素都会出现块级元素包裹多出(基准线)
解决:
1)将img转换为块级元素 vertical-align:botom
2)垂直对齐方式:底部对齐;行级元素转块级元素  
   </p>
</body>
</html>
<html>
<head>
   <style type="text/css">
    div{
    
    
    	background-color: white;
    	float: left;
    }
    img{
    
    
    	vertical-align: bottom;
    	float: left;
    }
    p{
    
    
    	text-align: justify;
    	line-height: 20px;
    }
   </style>
</head>
<body>
   <div>
   	<img src="image/3.jpg"/>
   	<p>
   	包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
行级元素都会出现块级元素包裹多出(基准线)
解决:
1)将img转换为块级元素 vertical-align:botom
2)垂直对齐方式:底部对齐;行级元素转块级元素  
   </p>
   </div>
   
</body>
</html>

4,float清除浮动
一,需要清除浮动的原因:
1,为了父元素不会出现“高度崩塌”
2,如果强制规定了外层容器的尺寸,则显得就不那么灵活了,高度就就不能自动适应了
(以后的数据,大多都是从后台获取的,这样内容的多少和版本就会不一致)
3,从某个元素开始我们不再需要浮动效果了。
方法一:
清除浮动代码–>clear: both(right and left);–>表示清除元素之前的浮动,如果本元素之后还有浮动,是不受这段清除浮动代码的影响的。
clear: left–>清除左浮动
clear:right–>清除右浮动
方法二:
额外添加一个清除浮动的div,防止清除div的代码
#clearDiv{clear: both;}
上边距–>top: 10px; position: relative;(设置边距时注意定位)
方法三:(目前一些大型网站流行的方法,当网站内容很多时,可以防止出现一个些意料外的问题)
::after–>伪元素
#clearDiv::after{
content: “”;–>冒号里为空,因为需要clearDiv中有点内容,但
不在浏览器中展示
visibility: hidden;–>将内容进行隐藏(防止一些误操作导致
clearDiv中出现额外的内容而导致洁面变
形)
height: 0px;–>将行高恢复到默认。
display; block;–>块状显示,将content 转换成跨级元素
clear: both;
}
专门针对IE浏览器清除浮动的方法:
#clearDiv{ zoom: 1; }
zoom–>ie浏览器专用的,作用–>使页面里的对象可以重新加载、重新计算。从而起到重新渲染的效果。
可以非常有效的解决ie浏览器的一些bug、例如 外边距的重叠、浮动不能清除等。

猜你喜欢

转载自blog.csdn.net/qq_36792120/article/details/111223953