css float布局详解,css float 的作用及用法
大家好,如果您还对css float布局详解不太了解,没有关系,今天就由本站为大家分享css float布局详解的知识,包括css float 的作用及用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
CSS+div布局中float:left具体解释
希望我的回答对你有帮助,用我的经验并且结合当初学习的教程:
看到你的问题首先针对的问题是float浮动问题,你得显示问题和position没有一丁点关系,因此ab显示和abc显示的问题就是简单的float设置问题,因此你所说的问题有没有设置position效果都是一样,你可以验证一下。css中float的守则就是如果浮动就都浮动,如果不浮动就都不浮动,这样能够很有效的解决你上面的问题,但是也有特殊的情况:例如父div中有abc,a不浮动,bc浮动。这样也显示正常。
至于原因我个人只能按照float脱离文档流来解释了(可以理解成脱离了正常的文档显示顺序)。不知道对你有没有帮助,下面给你一个w3c教程的地址,很权威的标准教程,慢慢学习吧
CSS float浮动布局
属性值
float是最开始出现的一种布局方式,主要解决:文本在图像周围环绕,也即应用于图像。但是在css中,任何元素都可以浮动,浮动元素会生成一个块级框,而不论它本身是何种元素。
元素一般是处于普通流中,也即块级元素独占一行,从上往下依次显示布局。行级元素可以在一行显示多个,按照顺序进行显示布局。
而添加了 float布局的元素则会脱离原来所在的文档流。并‘漂浮’在当前所在的文档流的位置(如果前一个元素没有添加 float布局的情况下),由于当前元素文档流实际上没有被元素占用,因此当前元素之后的元素会按照普通流布局的方式,占用当前元素的文档流。表现为:丢失空间
也即:
此时由于第一个元素添加了 float:left,则脱离了原来的文档流,后面元素会向上移动,占用第一个元素的空间。
如果第二个元素也添加了 float,那么可以这样去思考,由于第一个元素的原因,第二个元素所处的文档流变成了第一个元素所处的文档流,此时再给第二个元素添加 float,那么也会像第一个元素一样,脱离当前的文档流,使得当前元素和第一个元素一样处于'漂浮'状态,并紧跟着第一个元素显示一排。
同样,如果第二个元素后面还有其他元素,那么也会向上移动,改变原来所处的文档流位置。
注意:添加了 float的元素,只是在会脱离当前所在的文档流,但是仍然漂浮在当前文档流上一层,而不是说直接脱离整个文档流,跑到所有文档流的最顶部。
从上面案例可以看出,添加了浮动的元素会影响其后元素的布局。此外由于元素脱离原来的文档流,且父盒子没有添加高度属性,那么父盒子无法感知到子盒子的存在,因此父盒子不会被撑开。
知道了 float带来的不好的地方,则需要去清除浮动带来的影响。
方法一:采用css clear属性
将该属性添加在被浮动影响的后面元素,即可以清除浮动
则受浮动影响的元素就可以正常显示了
因此在受浮动影响的父元素,就可以利用此方法,在浮动元素之后新增加一个元素,使新增加的元素清除浮动,这样新增加的元素的位置就在浮动元素的下面,使得在一定程度上实现了撑开盒子的作用。
方法二:BFC
其次还可以采用BFC,使得父元素形成独立的空间,也即可以感知子元素的高度和宽度,在一定程度上也不会影响外面的元素的布局。
浮动元素边界不能超过父元素的padding
元素浮动后会变为块元素包括行元素如 span,所以浮动后的元素可以设置宽高。
通过形状浮动可以让内容围绕图片,类似于我们在word中的环绕排版。要求图片是有透明度的PNG格式。
shape-outside定义了一个可以是非矩形的形状,相邻的内联内容应围绕该形状进行包装。默认情况下,内联内容包围其边框, shape-outside提供了一种自定义此包装的方法,可以将文本包装在复杂对象周围而不是简单的框中。
理解:使用形状值来定义浮动区域的浮动,这将使得内联内容会环绕着形状,而不是产生浮动的边框。
关键字属性值
函数值属性
url值
文字通过给定的图片,并且通过计算图片的透明度后获取的形状区域进行围绕,这里需要注意的是此效果必须在服务器端预览,本地预览会报图片跨域问题,给定的图片必须是有透明区域的图片
渐变值
按照给定的渐变通过计算排除透明通道后得到的形状,然后文字按照此形状的边缘进行环绕
最后:函数值/url/linear-gradient可以和关键字属性值搭配使用,此时关键字属性作为基本形状提供相应的参考框盒。
clip-path使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。且此方式原来的区域仍然存在,只是显不显示的问题。裁剪之后只有规定的区域可以显示。
基本语法
其中:
CSS中float属性怎么使用
使用CSS中的float属性可以将应用的元素从原本的位置移动到左上或向右移动。不适用于float的内部元素,如文本等会被设置在float元素的周围。
我们来看float的具体使用方法
float属性描述如下
float:值;值的部分有以下几个
none:不指定元素的位置。(初始值)
left:把元素移到左边。
right:把元素移到右边。
另外,如果值是inherit的话,会继承父元素float的值
如果在同一元素中设置了position属性的初始值(static)以外的值的话,就不能使用float属性。
如果要将float属性应用于块元素的话,必须先设置width属性的宽度。
如果想清除floate属性的话,在clear属性中输入相同值(比如float输入left就输入left、float输入right就输入right)。另外,clear输入both的值的话,两边都可以清除。
下面我们来看float属性应用的具体示例
首先我们来看float:left;
在宽度为170px,高度为100px的盒子中设置图像和文字,在图像上设置float属性为left时的例子。
代码如下:
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" rel="external nofollow" rel="external nofollow" href="sample.css">
</head>
<body>
<p class="content1"><img src="img/mouse.png" alt="图像" style="width: 45px;height: 45px">
在图像上使用float:left的例子:文字在右侧显示,剩下部分的文字在图像的下面被显示</p>
</body>
</html>CSS代码
p.content1{background-color:#b0e0e6; width: 170px; height: 100px;}
img{float: left;}在浏览器上显示如下效果
图像在左侧显示,文字环绕在图像右侧和下侧。
然后我们再来看float:right;
代码如下
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" rel="external nofollow" rel="external nofollow" href="sample.css">
</head>
<body>
<p class="content1"><img src="img/mouse.png" alt="图像" style="width: 45px;height: 45px">
在图像上使用float:right的例子:文字在左侧显示,剩下部分的文字在图像的下面被显示</p>
</body>
</html>CSS代码
p.content1{background-color:#b0e0e6; width: 170px; height: 100px;}
img{float: right;}在浏览器上显示如下效果
图像在右侧显示,文字围绕在图像左侧和下侧。
如果你还想了解更多这方面的信息,记得收藏关注本站。