CSS float:none right left的使用

本文详细介绍了CSS float属性的用法,包括left、right浮动的原理,元素的浮动与普通流的关系,以及clear属性对浮动元素的影响。通过实例演示了如何实现块级元素并排、文字环绕图片和2x2布局的常见场景。

float属性

float的属性值有none、left、right,有几个要点:

1、只有横向浮动,并没有纵向浮动。
当元素应用了float属性后,将会脱离普通流,元素脱离【普通文本流】,且不占位置(普通文本流详见:CSS position:static\left\right\fixed使用_小新空荡荡的博客-优快云博客_position 设置left),和position:absolute类似,浮动元素之后的元素相当于没有它一样排版。

例如:span1占了位置

<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
    <style type="text/css">
        #span1 {
            background-color: sandybrown;
            float: left;
        }
    </style>
</head>

<body>
    <span id="span2">
	span2
</span>
    <span id="span1">
	span1
</span>
</body>

</html>

2、浮动元素的后一个元素会围绕着浮动元素(典型运用是文字围绕图片)

float:left图片别文字环绕图1

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		<style type="text/css">
			img {
				width: 50px;
				height: 50px;
				float: left;
			}
		</style>
	</head>
	<body>
		<img src="resource/baidu.jpg">
		百度是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。 [1]
		“百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于
		2000年1月1日在中关村创建了百度公司。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于
		2000年1月1日在中关村创建了百度公司。
	</body>
</html>


3、设置浮动,元素的前一个元素不会受到任何影响

例如:让两个块状元素并排显示,必须让两个块状元素都应用float

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		<style type="text/css">
			#left {
				/* 宽度为屏幕的30% */
				width: 30%;
				height: 100px;
				background-color: aqua;
				float: left;
			}

			#right {
				width: 30%;
				height: 100px;
				background-color: red;
				float: left;
			}
		</style>
	</head>
	<body>
		<div id="left">
			left
		</div>
		<div id="right">
			right
		</div>
	</body>
</html>

 float:left从左开始浮动,right从右开始浮动,如上图设置的float:left,如何改成float:right结果如下:

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		<style type="text/css">
			#left {
				/* 宽度为屏幕的30% */
				width: 30%;
				height: 100px;
				background-color: aqua;
				float: right;
			}

			#right {
				width: 30%;
				height: 100px;
				background-color: red;
				float: right;
			}
		</style>
	</head>
	<body>
		<div id="left">
			left
		</div>
		<div id="right">
			right
		</div>
	</body>
</html>

clear属性配合float使用

1. clear: none -- 允许浮动元素 (默认值) 。
2. clear: left -- 在左侧不允许浮动元素 。
     clear:left 的含义是如果当前元素的左侧有浮动元素,那么就强制该元素另起一行 。

3. clear: right -- 在右侧不允许浮动元素 。
     clear:right 的含义是如果当前元素的右侧有浮动元素,那么就强制该元素另起一行 。
   
4. clear: both -- 在左右侧均不允许浮动元素 。

注意: 设置 clear 属性时, 只对当前浮动元素生效, 对于其他的元素标签没有效果,及换行与否是当前元素是否换行 。 

例如: 页面中有两个 div , 同时设置 float: left, 当我们对第一个元素设置 clear: right时(如果右侧有浮动元素,那么就强制该元素另起一行,因为此元素就是一行的第一个元素已经是新的一行了), 并不能使第二个元素排列在第二行。 如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#left {
				width: 100px;
				height: 100px;
				background-color: blue;
				float: left;
				/* 右侧如果有浮动元素则另起一行,由于是第一个元素了不会另起一行了 */
				clear: right;
			}

			#right {
				width: 100px;
				height: 100px;
				background-color: red;
				float: left;
			}
		</style>
	</head>
	<body>
		<div id="left">
			left
		</div>
		<div id="right">
			right
		</div>
	</body>
</html>

   clear常用案例:页面布局,例如:做2x2布局。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#left {
				width: 100px;
				height: 100px;
				background-color: blue;
				float: left;
			}

			#right {
				width: 100px;
				height: 100px;
				background-color: red;
				float: left;
			}

			#content {
				width: 200px;
				height: 100px;
				background-color: bisque;
				/* 元素两侧如由浮动元素则另起一行 */
				clear: both;
			}
		</style>
	</head>
	<body>
		<div id="left">
			left
		</div>
		<div id="right">
			right
		</div>
		<div id="content">
			content
		</div>
	</body>
</html>

 postion和float同时使用:

元素同时应用了position: relative、float、(top / left / bottom / right)属性后,则元素先浮动到相应的位置,然后再根据(top / left / bottom / right)所设置的距离来发生偏移。right浮动定位后,再发生的偏移。

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title></title>
		<style type="text/css">
			#left {
				/* 宽度为屏幕的30% */
				width: 30%;
				height: 100px;
				background-color: aqua;
				float: left;
			}
			#right {
				width: 30%;
				height: 100px;
				background-color: red;
				/* float position:同时使用先float后postion */
				float: left;
				position: absolute;
				/* 具体body left 50px;压住了left的内容 */
				left: 50px;
			}
		</style>
	</head>
	<body>
		<div id="left">
			left
		</div>
		<div id="right">
			right
		</div>
	</body>
</html>

### CSS 中 `float` 属性设置为 `none` 的效果 在 CSS 中,`float` 属性用于控制元素在容器中的浮动行为。当将 `float` 属性设置为 `none` 时,表示该元素不会浮动,并且会遵循正常的文档流[^1]。这意味着该元素不会影响其他元素的布局,也不会被其他浮动元素所环绕。 以下是 `float: none;` 的主要效果和使用场景: 1. **取消浮动**:如果一个元素之前被设置了 `float: left;` 或 `float: right;`,通过将其 `float` 属性重新设置为 `none`,可以取消浮动效果并恢复到正常文档流中[^1]。 2. **与其他元素的交互**:当 `float` 设置为 `none` 时,该元素将不再对其他浮动元素产生环绕效果。例如,静态定位的内容将不会环绕浮动元素,而是形成一个矩形块与浮动元素相邻[^1]。 3. **清除布局问题**:在某些情况下,父容器可能由于子元素浮动而无法正确包裹其内容。通过将子元素的 `float` 属性设置为 `none`,可以解决这种布局问题。 以下是一个简单的代码示例,展示如何使用 `float: none;`: ```css /* 父容器 */ .parent { border: 1px solid black; } /* 默认浮动的子元素 */ .child { float: left; width: 50px; height: 50px; background-color: lightblue; } /* 取消浮动的子元素 */ .no-float { float: none; background-color: lightcoral; } ``` ```html <div class="parent"> <div class="child">Float</div> <div class="no-float">No Float</div> </div> ``` 在这个例子中,`.child` 元素会向左浮动,而 `.no-float` 元素则不会浮动,并且会按照正常的文档流进行排列。 ### 注意事项 - 如果需要清除浮动的影响,还可以使用 `clear` 属性(如 `clear: both;`),但这与 `float: none;` 的作用不同。`clear` 是用来确保元素不会与浮动元素在同一行显示,而 `float: none;` 是直接取消浮动。 - 在现代布局中,推荐使用 Flexbox 或 Grid 布局替代传统的浮动布局,以实现更灵活和可维护的设计[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小新空荡荡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值