”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > CSS 布局技术 - 浮动、清除和传统布局:老派酷炫

CSS 布局技术 - 浮动、清除和传统布局:老派酷炫

发布于2024-08-21
浏览:474


本文是我自己的网站上提供的更大系列文章的一部分。单击此处了解有关 CSS 101:系列的更多信息。完全免费!

欢迎来到过去的爆炸!在 Flexbox 和 Grid 像现代网页设计的超级英雄一样席卷全球之前,曾经有一段时间浮动和清除统治了 CSS 世界。如果您是网页设计新手,您可能会想,“浮动和清除到底是什么?我为什么要关心?”好吧,系好安全带,因为我们即将踏上 CSS 历史的怀旧之旅。

剧透:今天您可能会发现一些很酷的技巧!

CSS Layout Techniques - Floats, Clears, and Legacy Layouts: The Old School Cool

浮动:最初的布局骗子

将 float 想象成 CSS 世界中叛逆的少年 - 总是突破界限并造成一些混乱。浮动最初设计用于将文本包裹在图像周围,但聪明的开发人员很快意识到他们也可以使用它们来创建布局。

img {
    float: left;
    margin-right: 15px;
}

上例中,float: left;使图像“浮动”到左侧,允许文本环绕它。在 Flexbox 和 Grid 出现之前,浮动是创建多列布局的流行选择。然而,它们可能有点挑剔,如果使用不小心,很容易导致布局问题。

通关:和平卫士

花车可能有点叛逆,但清除者是他们的维和者。清晰的属性就像调解者,介入解决浮动可能造成的混乱。如果您使用浮动并发现元素重叠或未按预期运行,则清除可以提供帮助。

.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

通过使用上述 CSS 添加clearfix 类,您可以确保所有浮动元素都包含在其父容器中。这是防止那些恼人的布局故障(元素似乎漂浮到深渊中)的好方法。

传统布局技术:复古复兴

在 Flexbox 和 Grid 抢尽风头之前,CSS 还有一些其他的技巧。下面看一些经典的布局技巧:

  • Inline-Block:创建水平布局的简单方法。通过将元素设置为 display: inline-block;,您可以将它们并排排列,而不需要浮动。
.box {
    display: inline-block;
    width: 30%;
    margin-right: 2%;
}
  • 表格布局:是的,表格不仅仅用于表格数据!您可以使用 display: table;、display: table-row; 和 display: table-cell;创建类似网格的布局。
.container {
    display: table;
    width: 100%;
}

.item {
    display: table-cell;
    width: 33%;
}

这些方法在很大程度上被现代布局技术所掩盖,但仍然可以让我们一睹网页设计的演变。

现代应用:新旧融合

那么,浮动和透明在现代网页设计世界中仍然占有一席之地吗?绝对地!虽然 Flexbox 和 Grid 现在是创建布局的首选工具,但浮动和清除在某些情况下仍然有用,例如简单布局或使用遗留代码时。

例如,您可以使用浮动来进行文本换行,或者当您想以简单的方式对齐少量元素时。但对于复杂的响应式布局,Flexbox 和 Grid 是您最好的朋友。

总结一下

浮动、清除和其他遗留布局技术可能看起来像是过去的遗物,但它们是 CSS 丰富历史的一部分。了解它们可以为您奠定坚实的基础,并帮助您欣赏现代布局系统的强大功能。另外,在处理较旧的项目或奇怪的设计挑战(或那些可怕的面试轮次)时,了解这些老派技巧可以派上用场。

编码愉快!


嘘!如果您喜欢所读内容,请单击此处查看 CSS 101:系列。完全免费!

版本声明 本文转载于:https://dev.to/gdebojyoti/css-layout-techniques-floats-clears-and-legacy-layouts-the-old-school-cool-2apj?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    编程 发布于2025-05-24
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call ...
    编程 发布于2025-05-24
  • MySQL中如何高效地根据两个条件INSERT或UPDATE行?
    MySQL中如何高效地根据两个条件INSERT或UPDATE行?
    在两个条件下插入或更新或更新 solution:的答案在于mysql的插入中...在重复键更新语法上。如果不存在匹配行或更新现有行,则此功能强大的功能可以通过插入新行来进行有效的数据操作。如果违反了唯一的密钥约束。实现所需的行为,该表必须具有唯一的键定义(在这种情况下为'名称'...
    编程 发布于2025-05-24
  • 为什么HTML无法打印页码及解决方案
    为什么HTML无法打印页码及解决方案
    无法在html页面上打印页码? @page规则在@Media内部和外部都无济于事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: bo...
    编程 发布于2025-05-24
  • PHP SimpleXML解析带命名空间冒号的XML方法
    PHP SimpleXML解析带命名空间冒号的XML方法
    在php 很少,请使用该限制很大,很少有很高。例如:这种技术可确保可以通过遍历XML树和使用儿童()方法()方法的XML树和切换名称空间来访问名称空间内的元素。
    编程 发布于2025-05-24
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 考虑文档中给出的示例:这是内部发生的事情: 现在在3月3日添加另一个月,因为2月在2001年只有2...
    编程 发布于2025-05-24
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。 This article delves into the differences betwee...
    编程 发布于2025-05-24
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-05-24
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-05-24
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-05-24
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-05-24
  • 使用jQuery如何有效修改":after"伪元素的CSS属性?
    使用jQuery如何有效修改":after"伪元素的CSS属性?
    在jquery中了解伪元素的限制:访问“ selector 尝试修改“:”选择器的CSS属性时,您可能会遇到困难。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    编程 发布于2025-05-24
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-05-24
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-05-24
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-05-24

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3