前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )

【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )

作者头像
韩曙亮
发布2023-03-30 08:34:21
5.6K0
发布2023-03-30 08:34:21
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、清除浮动简介


在开发页面时 , 遇到下面的情况 ,

父容器 没有设置 内容高度 样式 , 容器中的 子元素 设置了 浮动样式 , 脱离了标准流 , 高度会默认设置为 0 像素 , 这样就会导致各种显示混乱情况 ;

为了应对上述情况 , 可以 使用 " 清除浮动 " 操作 ;

清除浮动 主要作用 : 解决 父容器盒子模型 因为 子元素 被设置为 浮动元素 导致 高度默认为 0 像素 的问题 ;

清除浮动 效果 : 父容器 检测高度时 , 会考虑 浮动子元素 的高度 , 将浮动元素的高度 计算在父容器的总高度中 ;

二、清除浮动语法


清除浮动语法 :

代码语言:javascript
复制
CSS 选择器 {
	clear: 属性值;
}

属性值取值 :

  • left : 清除左侧浮动 ;
  • right : 清除右侧浮动 ;
  • both : 同时清除左右两侧浮动 ;

一般在使用的时候 , 只使用 clear: both; 一种样式 ;

三、清除浮动 - 额外标签法


1、额外标签法 - 语法说明

推荐使用 " 额外标签法 " , 在最后一个浮动元素的末尾 , 添加一个额外标签 , 如下 :

代码语言:javascript
复制
<div class="clear"></div>

使用 其它标签 也可以 , 如 :

代码语言:javascript
复制
<br class="clear"/>
  • 优点 : 容易理解 , 使用方便 ;
  • 缺点 : 添加的 额外标签 无意义 , 使得 HTML 结构混乱 ;

2、问题代码示例

下面的代码中 , 父容器 1 没有指定高度 , 内部设定了两个 浮动元素 , 没有指定标准流元素 , 因此默认状态下 , 其高度为 0 ;

父容器 1 的 兄弟元素 , 直接显示在了 父容器 1 的下方 , 父容器 1 只能将边框绘制出来 , 内容尺寸高度为 0 , 在两个边框下 , 就是 父容器 2 的盒子 ;

问题代码示例 :

代码语言:javascript
复制
<!DOCTYPE html> 
<html lang="en">
<head>    
	<meta charset="UTF-8" /> 
    <title>浮动清除 - 额外标签法</title>
	<style>
		/* 清除标签默认的内外边距 */
		* {
		   padding: 0;     
		   margin: 0;
		}
		
		/* 清除列表默认样式 ( 主要是前面的点 ) */
		li {
			list-style: none;
		}
		
		/* 设置总体背景 */
		body {
			background-color: #f4f4f4;
		}
		
		/* 插入图片自适应 */
		img {
			width: 100%;
		}
		
		/* 下面是正式内容 */
		
		/* 父容器 1 没有指定高度 , 默认 0 像素 */
		.father1 {
			width: 500px;
			background-color: pink;
			border: 2px solid green;
		}
		
		/* 子元素 1 */
		.son1 {
			float: left;
			width: 200px;
			height: 200px;
			background-color: blue;
		}
		
		/* 子元素 2 */
		.son2 {
			float: left;
			width: 250px;
			height: 250px;
			background-color: red;
		}
		
		/* 父容器 2 - 父容器 1 的兄弟元素 */
		.father2 {
			width: 700px;
			height: 150px;
			background-color: purple;
		}
	</style>
</head>
<body>
	<div class="father1">
		<div class="son1"></div>
		<div class="son2"></div>
	</div>
	<div class="father2"></div>
</body>
</html>

展示效果 :

在这里插入图片描述
在这里插入图片描述

3、额外标签法代码示例

在 父容器 1 father1 的 最后一个子元素 son2 后面 , 添加一个新的 子元素 , 为该子元素设置 clear: both; 属性样式 , 会自动将 son1 和 son2 当做标准流元素进行测量 , 此时 父容器 1 就会有高度 ;

额外标签法代码示例 :

代码语言:javascript
复制
<!DOCTYPE html> 
<html lang="en">
<head>    
	<meta charset="UTF-8" /> 
    <title>浮动清除 - 额外标签法</title>
	<style>
		/* 清除标签默认的内外边距 */
		* {
		   padding: 0;     
		   margin: 0;
		}
		
		/* 清除列表默认样式 ( 主要是前面的点 ) */
		li {
			list-style: none;
		}
		
		/* 设置总体背景 */
		body {
			background-color: #f4f4f4;
		}
		
		/* 插入图片自适应 */
		img {
			width: 100%;
		}
		
		/* 下面是正式内容 */
		
		/* 父容器 1 没有指定高度 , 默认 0 像素 */
		.father1 {
			width: 500px;
			background-color: pink;
			border: 2px solid green;
		}
		
		/* 子元素 1 */
		.son1 {
			float: left;
			width: 200px;
			height: 200px;
			background-color: blue;
		}
		
		/* 子元素 2 */
		.son2 {
			float: left;
			width: 250px;
			height: 250px;
			background-color: red;
		}
		
		/* 父容器 2 - 父容器 1 的兄弟元素 */
		.father2 {
			width: 700px;
			height: 150px;
			background-color: purple;
		}
		
		/* 清除浮动 */
		.son3 {
			clear: both;
		}
	</style>
</head>
<body>
	<div class="father1">
		<div class="son1"></div>
		<div class="son2"></div>
		<div class="son3"></div>
	</div>
	<div class="father2"></div>
</body>
</html>

展示效果 :

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、清除浮动简介
  • 二、清除浮动语法
  • 三、清除浮动 - 额外标签法
    • 1、额外标签法 - 语法说明
      • 2、问题代码示例
        • 3、额外标签法代码示例
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档