前端开发面试题—CSS清除浮动的方法

简介: 今天分享一下我遇到的一个面试题,是关于CSS浮动布局的问题,问的是CSS清除浮动的方法有哪些?

今天分享一下我遇到的一个面试题,是关于CSS浮动布局的问题,问的是CSS清除浮动的方法有哪些?

🧽什么是浮动布局

  • 首先我们要知道CSS浮动布局是使用的float属性来设置的,CSS的float属性将元素放在其容器的左侧或右侧,允许文本和内联元素环绕它。该元素将从页面的正常流中删除,但仍保留为流的一部分。(与绝对定位相反, 绝对定位的元素忽略float属性)
  • float的属性值
描述
left 元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit 规定应该从父元素继承 float 属性的值。


  • 使用语法
/* Keyword values */float: left;
float: right;
float: none;
float: inline-start;
float: inline-end;
/* Global values */float: inherit;
float: initial;
float: revert;
float: revert-layer;
float: unset;
/*left元素必须浮动在其包含块的左侧。right元素必须浮动在其包含块的右侧。none元素不得浮动。inline-start元素必须浮动在其包含块的起始侧。左边是脚本,右边是脚本。ltrrtlinline-end元素必须浮动在其包含块的末端。这是脚本的右侧,脚本的左侧。ltrrtl*/


  • 具体在页面中怎么浮动就不演示了

🧽clear属性

  • CSS的clear属性指定一个元素是否必须移动 (清除浮动后) 到在它之前的浮动元素下面。clear 属性适用于浮动和非浮动元素。
  • clear的属性值
描述
left 在左侧不允许浮动元素。
right 在右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。
  • 使用语法
/* Keyword values */clear: none;
clear: left;
clear: right;
clear: both;
clear: inline-start;
clear: inline-end;
/* Global values */clear: inherit;
clear: initial;
clear: unset;
/* none元素不会被向下移动以清除浮动。left元素被向下移动以清除左浮动。right元素被向下移动以清除右浮动。both元素被向下移动以清除左右浮动。inline-start元素被向下移动以清除其包含块的起始侧浮动,即 ltr 时清除左浮动,rtl 时清除右浮动。inline-end元素被向下移动以清除其包含块的结束侧浮动,即 ltr 时清除右浮动,rtl 时清除左浮动。*/


  • 其中,使用带clear属性(设置为clear:both)空标签就是清除浮动的方法之一

🧽清除浮动其他方法

  • 🧼使用CSS overflow属性
  • 如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:
    然后我们可以向包含元素添加 overflow: auto; overflow: hidden;,来解决此问题
#container {
overflow: auto;
/*overflow: hidden;*/}

  • 🧼使用CSS ::after伪元素(clearfix Hack
  • 如果一个元素里只有浮动元素,那它的高度会是 0。如果你想要它自适应即包含所有浮动元素,那你需要清除它的子元素。一种方法叫做clearfix,即clear一个不浮动的 ::after 伪元素。
/* ::after 选择器向选定的元素之后插入内容  content:" "; (注意这里有一个空格)生成内容为空  display: block; clear:both; 清除前面元素浮动带来的影响  */.container::after {
content: "";
display: block;
clear: both;
}
  • image.gif另一种写法
.container::after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

image.gif

  • 具体在页面中的清除效果就不演示了
目录
相关文章
|
1天前
|
缓存 安全 Java
【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)
单例模式下,“饿汉模式”,“懒汉模式”,单例模式下引起的线程安全问题,解锁思路和解决方法
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
133 4
|
1月前
|
缓存 监控 前端开发
CSS 提高性能的方法
【10月更文挑战第24天】在实际应用中,还需要根据具体项目的特点和需求,灵活选择和组合这些方法,不断进行优化和改进。同时,随着技术的不断发展,也需要持续关注新的性能优化技巧和最佳实践,以保持在性能优化方面的领先地位。你对 CSS 性能优化还有哪些深入的思考和经验呢?欢迎进一步交流和分享。
|
1月前
|
前端开发
css页面顶部底部固定,中间自适应几种方法
【10月更文挑战第22天】css页面顶部底部固定,中间自适应几种方法
|
2月前
|
前端开发 容器
CSS 中几种常用的换行方法
CSS 中几种常用的换行方法
35 1
|
3月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
21 2
|
3月前
|
前端开发
前端基础(十一)_Float浮动、清除浮动的几种方法
本文介绍了浮动的概念、属性、特性以及清除浮动的几种方法,并通过实例演示了如何使用CSS实现元素的浮动和处理浮动带来的问题。
112 3
|
3月前
|
前端开发 JavaScript
jQuery css() 方法
jQuery css() 方法
25 3
|
3月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
51 2
|
2月前
|
前端开发 UED
css性能优化的方法
css性能优化的方法
32 0

热门文章

最新文章