当前位置: 首页 > article >正文

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

文章目录

  • 一、清除浮动简介
  • 二、清除浮动语法
  • 三、清除浮动 - 额外标签法
    • 1、额外标签法 - 语法说明
    • 2、问题代码示例
    • 3、额外标签法代码示例





一、清除浮动简介



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

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

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


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

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





二、清除浮动语法



清除浮动语法 :

CSS 选择器 {
	clear: 属性值;
}

属性值取值 :

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

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





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




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


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

<div class="clear"></div>

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

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

2、问题代码示例


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

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


问题代码示例 :

<!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 就会有高度 ;


额外标签法代码示例 :

<!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>

展示效果 :

在这里插入图片描述


http://www.kler.cn/a/6056.html

相关文章:

  • 【HTML+CSS+JS+VUE】web前端教程-2-HTML5介绍和基础骨架
  • Visio 画阀门 符号 : 电动阀的画法
  • DeepSeek-V3与GPT-4o的对比详解
  • Leecode刷题C语言之字符串中最大的3位相同数字
  • 【网络安全 | 漏洞挖掘】通过监控调试模式实现价值$15k的RCE
  • STM32Flash读写BUG,坑—————4字对齐
  • 计算机组成原理:5. 输入输出系统
  • Higress 0.7.0 版本发布:GA 进入倒计时
  • 学会吊打面试官之list
  • 通过两道一年级数学题反思自己
  • LeetCode222. 完全二叉树的节点个数(二分查找+二进制表示路径法)
  • 免 交 互
  • 2023年6月18日的CDGA/CDGP数据治理认证考试报名开始啦!
  • 主机系统扫描程序设计
  • 阿里6年,一个32岁女软件测试工程师的心声
  • Unity Render Streaming 云渲染
  • Spring Security 6.0系列【6】源码篇之表单登录认证流程
  • 信息系统项目管理师第四版知识摘编:第12章 项目质量管理​
  • 前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取
  • 【新2023Q2模拟题JAVA】华为OD机试 - 拼接 URL
  • matlab笔记总结(1)
  • (LDR6020)国产第一颗PD MCU 可以用于1to2快充线 无线充底座 手机散热背夹方案
  • 【蓝桥杯】【嵌入式组别】第十三节:PWM输入捕获编程
  • 2023-2029年中国环烷基润滑油行业竞争状况及投资前景趋势报告
  • Vue的数据更新了但页面没有更新及数据频繁更新而页面只更新一次
  • 蓝桥杯2019年国赛——递增序列