前端开发面试题—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

  • 具体在页面中的清除效果就不演示了
目录
相关文章
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
45 4
|
10天前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
21 4
|
16天前
|
缓存 监控 前端开发
CSS 提高性能的方法
【10月更文挑战第24天】在实际应用中,还需要根据具体项目的特点和需求,灵活选择和组合这些方法,不断进行优化和改进。同时,随着技术的不断发展,也需要持续关注新的性能优化技巧和最佳实践,以保持在性能优化方面的领先地位。你对 CSS 性能优化还有哪些深入的思考和经验呢?欢迎进一步交流和分享。
|
20天前
|
前端开发
css页面顶部底部固定,中间自适应几种方法
【10月更文挑战第22天】css页面顶部底部固定,中间自适应几种方法
|
23天前
|
存储 前端开发 JavaScript
前端的全栈之路Meteor篇(四):RPC方法注册及调用-更轻量的服务接口提供方式
RPC机制通过前后端的`callAsync`方法实现了高效的数据交互。后端通过`Meteor.methods()`注册方法,支持异步操作;前端使用`callAsync`调用后端方法,代码更简洁、易读。本文详细介绍了Methods注册机制、异步支持及最佳实践。
|
30天前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
148 1
|
1月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
1月前
|
前端开发 容器
CSS 中几种常用的换行方法
CSS 中几种常用的换行方法
25 1
|
1月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
51 2
|
1月前
|
前端开发 JavaScript
掌握微前端架构:构建现代Web应用的新方法
本文介绍了微前端架构的概念及其在现代Web应用开发中的优势与实施方法。微前端架构通过将应用拆分成独立模块,提升了开发效率和灵活性。其核心优势包括技术栈灵活性、独立部署、团队协作及易于维护。文章详细阐述了定义边界、选择框架、管理状态和通信等关键步骤,并讨论了状态同步、样式隔离及安全性等挑战。微前端架构有望成为未来Web开发的重要趋势。