gtxyzz

CSS 布局 - 浮动实例

gtxyzz web技术 2022-07-06 781浏览 0

本页提供常见的浮动案例。

网格 / 等宽的框

通过使用 float 属性,可以轻松地并排浮动内容框:

实例

* {
  box-sizing: border-box;
}
.box {
  float: left;
  width: 33.33%; /* 三个框(四框使用 25%,两框使用 50%,以此类推) */
  padding: 50px; /* 如果需要在图片间增加间距 */
}

并排浮动的框:

框中的一些文本。

框中的一些文本。

框中的一些文本。

请注意,我们还用了 clearfix hack 来处理布局流,并添加了 box-sizing 属性,以确保框不会由于额外的内边距(填充)而损坏。尝试删除此代码以查看效果。

————————————————————

什么是 box-sizing?

您可以轻松地并排创建三个浮动框。但是,当您添加一些内容来扩大每个框的宽度(例如,内边距或边框)时,这个框会损坏。 box-sizing 属性允许我们在框的总宽度(和高度)中包括内边距和边框,确保内边距留在框内而不会破裂。

您可以在我们的 CSS Box Sizing 这一章中学习有关 box-sizing 属性的更多知识

——————————————————————————

图像并排

这种框格(The grid of boxes)也可以用来并排显示图像:

实例

.img-container {
  float: left;
  width: 33.33%; /* 三个框(四框使用 25%,两框使用 50%,以此类推) */
  padding: 5px; /* 如果需要在图片间增加间距 */
}
CSS 布局 - 浮动实例  
CSS 布局 - 浮动实例  
CSS 布局 - 浮动实例  

请注意,我们还用了 clearfix hack 来处理布局流,并添加了 box-sizing 属性以确保图像容器不会由于额外的内边距(填充)而损坏。请尝试删除此代码以查看效果。

——————————————————————————————————

等宽的框

在上例中,您学习了如何以相等的宽度并排浮动框。但是,创建具有相同高度的浮动框并不容易。不过,快速解决方案是设置一个固定的高度,如下例所示:

实例

.box {
  height: 500px;
}

Box 1

Some content, some content, some content

Box 2

Some content, some content, some content

Some content, some content, some content

Some content, some content, some content

这个例子不是很灵活。如果可以保证框中始终有相同数量的内容,则可以使用 CSS 高度,但并非总是如此。如果您在手机上尝试上例(或调整浏览器窗口的大小),则会看到第二个框的内容将显示在框的外部。

如果这不是您想要的,请返回教程并学习另一个解决方案。

——————————————————————————————

这么做就失去了弹性。如果可以保证框中始终有相同数量的内容,那是可以的。但是很多时候,内容是不一样的。如果您在手机上尝试上例,则会看到第二个框的内容将显示在框的外部。这是 CSS3 Flexbox 派上用场的地方 - 因为它可以自动拉伸框使其与最长的框一样长:

实例

使用 Flexbox 创建弹性框

框 1 - 这是一些文本,以确保内容真的很高。这是一些文本,以确保内容真的很高。这是一些文本,以确保内容真的很高。这是一些文本,以确保内容真的很高。
框 2 - 我的高度与框 1 保持一致。

请尝试调整浏览器窗口的大小,以查看弹性布局。

注释:Internet Explorer 10 或更早的版本不支持 Flexbox。

————————————————————————————————————————

导航菜单

将 float 与超链接列表一起使用,来创建水平菜单:

实例

————————————————————————————————

Web 布局实例

使用 float 属性完成整个 Web 布局也很常见:

.header, .footer {
  background-color: grey;
  color: white;
  padding: 15px;
}
.column {
  float: left;
  padding: 15px;
}
.clearfix::after {
  content: "";
  clear: both;
  display: table;
}
.menu {
  width: 25%;
}
.content {
  width: 75%;
}



————————————————————

Shanghai

The City

Shanghai is one of the four direct-administered municipalities of the People's Republic of China. Welcome to Shanghai!

You will learn more about web layout and responsive web pages in a later chapter.


属性 描述
box-sizing 定义元素的宽度和高度的计算方式:它们是否应包含内边距和边框。
clear 指定哪些元素可以在被清除的元素旁边以及在哪一侧浮动。
float 指定元素应如何浮动。
overflow 指定如果内容溢出元素框会发生什么情况。
overflow-x 指定当溢出元素的内容区域时,如何处理内容的左/右边缘。
overflow-y 指定当溢出元素的内容区域时,如何处理内容的上/下边缘。


发表评论