等高列一直是网页设计师的需求。如果所有列共享相同的背景,则等高无关紧要,因为您可以将该背景设置为父元素。但是,如果一个或多个列需要具有自己的背景,那么它对于设计的视觉完整性变得非常重要。


如果设计是非流体宽度,则此任务变得相当容易。对于固定宽度布局的最佳技术是 Dan Cederholm 的 伪列,其中列包装在容器元素中(您可能已经有了),并且该容器应用了垂直重复的图像背景,以模拟等高列的外观,即使元素本身实际上并没有增长。
当流体宽度和多列同时出现时,此任务变得更加困难。我们不能再使用静态图像来模拟多列的外观。但并非所有希望都破灭了。下面我们将研究一些完成流体宽度等高列的不同技术。
Doug Neiner 方法
Doug 在几个月前与我们进行的一次小型极客聊天中即兴想出了这个方法。其想法是使用 CSS3 渐变来创建列。渐变?!确实如此。我们通常认为渐变是颜色在距离上逐渐过渡到另一种颜色。但是,我们通过声明“颜色停止点”来使用 CSS 创建渐变,这些颜色停止点是颜色将完全按照该点指定的颜色显示的特定位置。诀窍是使用重叠的颜色停止点。这样,您就可以使一种颜色停止,另一种颜色开始,而不会出现任何可见的“渐变”。
看看如何通过在 0% 和 100% 标记处声明一个颜色停止点,并在 20%/40%/60%/80% 标记处声明两个颜色停止点,从而获得五列背景。
.five-columns {
background-image: -webkit-gradient(linear,
left top,
right top,
color-stop(0, #eee),
color-stop(20%, #eee),
color-stop(20%, #ccc),
color-stop(40%, #ccc),
color-stop(40%, #eee),
color-stop(60%, #eee),
color-stop(60%, #ccc),
color-stop(80%, #ccc),
color-stop(80%, #eee),
color-stop(100%, #eee)
);
background-image: -webkit-linear-gradient(
left,
#eee,
#eee 20%,
#ccc 20%,
#ccc 40%,
#eee 40%,
#eee 60%,
#ccc 60%,
#ccc 80%,
#eee 80%,
#eee 100%
);
background-image: -moz-linear-gradient(
left,
#eee,
#eee 20%,
#ccc 20%,
#ccc 40%,
#eee 40%,
#eee 60%,
#ccc 60%,
#ccc 80%,
#eee 80%,
#eee 100%
);
background-image: -ms-linear-gradient(
left,
#eee,
#eee 20%,
#ccc 20%,
#ccc 40%,
#eee 40%,
#eee 60%,
#ccc 60%,
#ccc 80%,
#eee 80%,
#eee 100%
);
background-image: -o-linear-gradient(
left,
#eee,
#eee 20%,
#ccc 20%,
#ccc 40%,
#eee 40%,
#eee 60%,
#ccc 60%,
#ccc 80%,
#eee 80%,
#eee 100%
);
}
此 CSS 应用于所有列的包装器。因为我们对这些颜色停止点使用百分比,所以此模拟的五列背景图像将像您在流体宽度设计中预期的那样伸展和收缩。您可以将其视为伪列的现代扩展。
标记本身是该包装器内的一系列列。
<div class="five-columns group">
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
</div>
注意“group”类,它是 clearfix 类,用于使父包装器即使包含仅浮动子元素也能保持其高度(否则它通常会折叠)。
我认为这是一个相当巧妙的想法。请注意,只有现代的 Gecko 和 WebKit 浏览器支持 CSS3 渐变,因此您的 Opera 和旧版 IE 访问者将看不到列背景。但是,即使在 IE 6 中,列结构也应保持完整。
此方法允许通过使用负和正左边距来调整列位置,从而实现源顺序独立性。这是一个 Doug Neiner 方法的演示,其中源顺序中第一个列被移动到中间。
Nicolas Gallagher 方法
Nicolas Gallagher 发布了 一篇精彩的文章,介绍了如何使用 CSS2 伪元素来实现许多难以实现或需要额外 HTML 杂乱的效果。
其想法是将父包装器设置为相对定位。这为内部的绝对定位设置了上下文。然后,我们将三个列中的每个列设置为父元素宽度的三分之一,并在其内部相对定位,根据需要使用相对定位将其推开。这也允许源顺序独立性。
两个可见的背景色列由绝对定位的块级伪元素(:before 和 :after)生成,这些伪元素再次是宽度的三分之一,但高度为父元素的 100%。这两个“列”具有负 z-index 值,因此它们可以位于列的可见文本内容下方。第三个“列”实际上只是包装器的背景颜色显示出来。由于包装器的高度将由最高的列的高度设置,因此这可以正常工作。
.pseudo-three-col {
position: relative;
background: #eee;
z-index: 1;
width: 100%;
}
.pseudo-three-col .col {
position: relative;
width: 27%;
padding: 3%;
float: left;
}
.pseudo-three-col .col:nth-child(1) { left: 33%; }
.pseudo-three-col .col:nth-child(2) { left: -33.3%; }
.pseudo-three-col .col:nth-child(3) { left: 0; }
.pseudo-three-col:before, .pseudo-three-col:after {
content: " ";
position: absolute;
z-index: -1;
top: 0;
left: 33.4%;
width: 33.4%;
height: 100%;
background: #ccc;
}
.pseudo-three-col:after {
left: 66.667%;
background: #eee;
}
使用表格
有时,一种经过验证且可靠的方法可以完成工作。确保实现流体宽度等高列的一种方法是使用一个表格单元格行。以防您忘记了它的外观,它看起来像这样
<table id="actual-table">
<tr>
<td>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
</td>
<td>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
</td>
<td>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
</td>
<td>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
</td>
<td>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
</td>
</tr>
</table>
为每个表格单元格指定一个百分比宽度,使其总计为 100%,您就完成了。即使您随后向单元格应用填充,表格也会正确排列自身。
#actual-table { border-collapse: collapse; }
#actual-table td {
width: 20%;
padding: 10px;
vertical-align: top;
}
#actual-table td:nth-child(even) {
background: #ccc;
}
#actual-table td:nth-child(odd) {
background: #eee;
}
现在假设该表格标记让您感到不适。您实际上可以使用普通的 div 标记,但仍然强制其表现得像表格一样。在这种情况下,我们将执行以下操作
<div id="css-table">
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
</div>
然后使用 CSS 表格
#css-table {
display: table;
}
#css-table .col {
display: table-cell;
width: 25%;
padding: 10px;
}
#css-table .col:nth-child(even) {
background: #ccc;
}
#css-table .col:nth-child(odd) {
background: #eee;
}
除了使用舒适的标记之外,我们实际上还节省了一些标记,因为我们可以直接从表格到表格单元格。没有元素需要模拟表格行。
那么 CSS 表格是我们梦想的答案吗?它们有点酷,但它们在 IE 7 中不受支持,因此如果您有兴趣走这条路,我建议您只使用实际的表格标记。使用 CSS 表格实际上没有任何明显的优势。
两种表格方法最显着的缺点是源顺序依赖性。实际上无法使源顺序中的第一列出现在第一列以外的任何位置。
唯一布局方法
有史以来最经典的布局之一是 唯一布局。在一个演示中,等高列得到了解决。这是一种相当巧妙的技术,至今仍然非常有效。其想法,像往常一样,是为所有列使用一个包装元素。此包装器设置为隐藏溢出,这不仅可以清除浮动列,还可以隐藏超出包装器范围的任何内容。这尤其重要,因为我们将强制列的高度非常高,然后使用隐藏溢出将其切掉。这里的魔法在于,虽然我们使用大量的底部填充来强制列更高,但我们使用等量的负底部边距来吸回包装器的高度。这正是我们需要的效果。
标记与我们之前看到的没有什么不同
<div id="one-true" class="group">
<div class="col"><h3>I am listed first in source order.</h3><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
</div>
然后 CSS 只是浮动列以及边距/填充技巧。
#one-true { overflow: hidden; }
#one-true .col {
width: 27%;
padding: 30px 3.15% 0;
float: left;
margin-bottom: -99999px;
padding-bottom: 99999px;
}
#one-true .col:nth-child(1) { margin-left: 33.3%; background: #ccc; }
#one-true .col:nth-child(2) { margin-left: -66.3%; background: #eee; }
#one-true .col:nth-child(3) { left: 0; background: #eee; }
#one-true p { margin-bottom: 30px; } /* Bottom padding on col is busy */
请注意,列底部的填充是由内部内容向下推生成的,因为我们不能依赖列本身的底部填充,因为它正忙于其花哨的技巧。这里的源顺序独立性与我们已经介绍过的相同,通过使用左边界进行调整。
Flexbox 方法
Flexbox 可以轻松处理这种情况。这是一个参考,其中包含所有功能和浏览器支持等。
标记再次非常干净
<div class="flexbox">
<div class="col"><h3>I am listed first in source order.</h3><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
<div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
</div>
CSS 需要一些供应商前缀(或使用 Autoprefixer)来启动 flex 布局
.flexbox {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
overflow: hidden;
}
从那里,我们可以非常轻松地使它们的宽度相等
.flexbox .col {
flex: 1;
}
可以将align-items
属性设置为拉伸以确保它们等高,但这是默认值!因此我们根本不需要设置它。
最后保存最佳方案,我们可以通过将列的顺序设置为所需位置来更改列的位置。最好明确设置所有列的所需位置;我发现仅设置某些列存在问题。尽管如此,能够在没有布局技巧的情况下更改位置仍然很棒。
.flexbox .col:nth-child(1) {
background: #ccc;
order: 1;
}
.flexbox .col:nth-child(2) {
background: #eee;
order: 0;
}
.flexbox .col:nth-child(3) {
background: #eee;
order: 2;
}
JavaScript 选项
当然,还有 JavaScript 等高列解决方案。我们在 “行中等高块” 中对此进行了一些探讨,并且 Michah Godbolt 提供了一个很好的 CodePen 演示,说明了此方法。
如果您想使用 jQuery 插件,请查看 matchHeight,它可以帮助您使选定元素的高度相等。
快速笔记
- 使用百分比进行布局在 WebKit 中并不完美
- 在这个演示中,我使用了诸如:nth-child 之类的方法来定位一些列。如果你为你的列指定特定的类名并使用这些类名,你可能会获得更好的跨浏览器兼容性。我更感兴趣的是在这里研究理论,而一些花哨的现代技术只在 :nth-child 可以工作的浏览器中有效。
- 额外提示:如果你只有两列,可以使用类似于伪列的技术来实现流体宽度列。这在 CSS-Tricks 当前(v7)的设计中使用。布局是 2 列流体,侧边栏的背景颜色来自此图像。该列能够增长,因为该背景的放置使用百分比使其能够随着容器元素宽度的增长而正确调整。
background: url(sidebar.png) repeat-y 61.7% 0;
- 弹性布局模型与CSS3 布局模块非常不同。显然,就实际实现而言,风向正在转向弹性布局。
这太全面了!很棒的工作和一个很棒的参考。
快速说明:你的 Nicolas Gallagher 方法链接是 404,Chris。我记得之前用过的一种方法,它与 Nicolas 的方法非常相似,你使用绝对定位,但我之前不知道的是,你可以在元素的两侧使用绝对定位来“吸附”到其相对容器的边缘。所以,如果你使用 top: 0; 和 bottom: 0; 进行绝对定位,它会将列拉到底部。我不确定浏览器兼容性,但据我所知,它在 IE 中有效,如果它在那里有效……好吧,你知道剩下的。
顺便说一句,我看到你在 11 月 16 日参加 JQuery 峰会,听起来很有趣。
Chris,一如既往的精彩!我一定会收藏这个页面。谢谢
广告。“Nicolas Gallagher 方法”
我宁愿这样编写伪元素代码
为什么
bottom: 0;
比height: 100%
更好?因为它更加灵活。你可以控制距离;例如bottom: 1px;
(尝试用 height 来实现 :))。我学习了这种机制感谢 Google。
你还要注意 IE7、gecko 1.9x(K-Meleon、FF2.x)和 FF3.0(虽然我不确定后者)。你无法完全控制这些浏览器中伪元素的定位。它们会破坏你的布局。至少应避免显式声明高度和边框(尽管你可以使用 rgba 或更好的 hsla 声明边框颜色,因为我认为 FF3.0 会忽略该声明)。声明
content: '';
而不是content: ' ';
也可能更健康,但这可能取决于 :)。感谢 Chris 发布这篇全面的文章!
我是这种“工作”的跨浏览器解决方案的忠实粉丝,所以我更喜欢“伪列”和/或“表格”方法。
这是一个很好的布局示例
http://chikuyonok.ru/2010/01/liquid-site-markup/
嗨,Chris,
matthew james taylor 的解决方案怎么样?
http://matthewjamestaylor.com/blog/ultimate-multi-column-liquid-layouts-em-and-pixel-widths
我之前用过它,它非常有用。
我前段时间使用过这种技术,效果非常流畅。起初我打算完全依靠 js 解决方案。
我真的很喜欢 Matthew 的布局。我对他们的一些设计元素有点异议,但总的来说它们都很棒。
如果示例在所有主要浏览器上都能正常工作。
至少对我来说,这些解决方案在 IE7 中都不起作用。我不想尝试任何 IE7 都无法处理的东西。
太棒了!我唯一看到的麻烦是它在 IE6 上不起作用,如果它在那里起作用,我可能会完全崩溃哈哈。想想看,它为什么能起作用!
我的天哪,IE6 真的该消失了,我已经厌烦了它
很棒的文章。我正在使用 javaScript 来处理我的列……显然这不是理想的——但我认为这是最干净的方法。
你对为此使用 jS 的看法是什么?
One True Layout 方法一直对我有用。
我知道这很挑剔,但我就是觉得使用 #css-table {display: table;} 有点奇怪。如果它必须完全像表格一样显示,那么它可能是有原因的,它可能只是一个表格?
接下来会发生什么?
h2.paragraph { display: table; }
span.heading { display: h2 }
不过,总结得很好!!非常有用。
真正可悲的是,唯一一个似乎可以在所有浏览器中(是的,甚至包括 IE6)正常工作的解决方案是表格。没有黑客手段,没有特定于供应商的选择器,什么也没有。可悲。
嗨,jQuery 插件怎么样?我通常使用http://www.cssnewbie.com/equal-height-columns-with-jquery/。它简单快捷。
“以防万一你忘记了它的样子,是这样的”
哈哈!
flexbox 方法在 Firefox 中通过对代码进行一些更改后可以完美地工作。首先,你需要将子元素也定义为盒子,方法是将其 display 设置为“(前缀-)box”。为了确保盒子能够在不设置特定宽度的情况下换行,你需要设置(前缀-)box-flex 属性,如果要让一个特定的盒子比其他盒子更大,则可以设置为 1 或更高。之后,在子盒子中将(前缀-)box-orient 设置为 vertical 将使你获得不同水平大小的盒子,但能够小于其内容。我不确定这是否是 Firefox(和 Google Chrome)中的一个错误,但在执行这些步骤后,在盒子上设置任何大小都会使它们都具有相同的宽度。
要使所有盒子都具有相同的高度,而无需任何其他方法,你只需删除(前缀-)box-align 属性(或将其更改为“stretch”),即可使所有盒子都具有相同的高度,而无需任何边距/填充或溢出裁剪。
这是一个修复后的 CSS,可以在 Firefox 或 Webkit 中使用
#flexbox {
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
}
#flexbox .col {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-flex: 1;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-flex: 1;
display: box;
box-orient: vertical;
box-flex: 1;
padding: 30px 3%;
width: 300px; /* 就我目前所见,这可以是任何以像素为单位的值,它将保持不变 */
}
Elastic CSS 框架已经这样做了很长时间,并且在所有浏览器中正确地解决了子像素四舍五入问题。
jQuery 需要成为选项之一。正如其他人提到的,它可以很容易地用来解决这个问题。回退只是不均匀的列。
此外,使用 jQuery 进行跨浏览器 nth-child。
我认为只需要 3 行,也许 4 行 jQuery 就可以使它变得动态并在所有浏览器中都能正常工作。nth-child 万岁!
我阅读了有关 Paul Irish 的 Flexbox 方法的信息,我真的很喜欢它的简洁性。像这样的解决方案的问题在于它在浏览器支持方面非常有限。我想知道是否有人拥有类似于 PIE 的东西来处理这些属性。
CSS 框架 YAML 提供了一个可用于生产环境的跨浏览器解决方案,用于创建高度一致的灵活列,至今已有近两年(2009年1月),该方案基于 CSS 表格(适用于现代浏览器)和 IE 的 One true Layout 方法。
http://www.yaml.de/fileadmin/examples/06_layouts_advanced/equal_height_boxes.html
Chris,
文章很棒,我设计网页大约两年了,这个问题一直困扰着我。
另外,网站更新也很棒……我不知道新外观上线多久了,但看起来很棒!
干杯!
Firefox 中的“one true layout”存在一个相当严重的错误。页面锚点会导致页面内容消失。在 3 版本中肯定存在这个问题,但现在可能已经修复了。除此之外,在我看来,它是所有方法中最好的。
你想让表格中的一组列按照预期的方式显示。使用良好的老式
<table>
元素!当然,它可能不性感、不酷炫,但它……JS、CSS 和 Javascript 的“方法”?!为什么我们需要这么多复杂和创造性的解决方案来解决一个根本不是问题的问题?
为什么我们会忘记最简单的解决方案?这就像用等离子切割机来剪裁一张纸一样?我们忘记怎么用剪刀了吗?
我们有些人没有时间重新发明轮子……
我完全理解使用简单且久经考验的方法的愿望。我在文章中包含了两种使用表格的方法。然而,寻求 CSS 方法的一个重要原因是我们使用 CSS 的原因,即布局和设计与标记的抽象。例如:假设你有 1000 页的 HTML 使用三列表格布局进行标记。现在设计需要更改,并且需要交换左右列。如果你的布局是 CSS,你可以通过更改 CSS 来完成。如果你的布局是标记中的表格,你将需要进行 1000 次更改。
使用良好的老式
<TABLE<
元素!当然,它可能不性感、不酷炫,但它**在所有地方都能正常工作**。很棒的内容,使用 div 模拟表格实际上帮助我解决了我网站中的一个问题。我不得不使用 div 内的表格,我知道这是不好的做法,但这避免了使用这种变通方法。
感谢分享不同方法的代码,评论中 Matthew James Taylor 的链接非常棒,感谢 Dennis。LT
很棒的文章,Chris。
之前没有意识到有这么多方法可以实现等高列!
为什么不提及 Javascript 解决方案?
jQuery 可以获取盒子的高度。你可以比较所有元素的高度,获取最高的高度,然后将其他元素的高度设置为该高度。很简单。
我在工作中使用了这种技术;
http://www.webanywhere.co.uk/education/products
点击“查看产品”
你可以查看 Javascript 文件的源代码,并搜索“#packages .package-fold”以查看实际的技术。
此示例在任何 IE(IE6、IE7、IE8)浏览器中均无法正常工作。
一两年前我遇到了这个问题,最终使用了 Tom Deater 的一个简洁的 jQuery 插件 http://www.tomdeater.com/jquery/equalize_columns/ 客户需要该网站在 ie6 中工作,因此这似乎是最容易实施和可靠的解决方案。
以下技术不使用图像、额外的标记、CSS3、伪类、Javascript 或绝对定位。
它只使用边框和负边距
http://www.smashingmagazine.com/2010/11/08/equal-height-columns-using-borders-and-negative-margins-with-css
很棒的总结……我想出了一个新的纯 CSS 跨浏览器解决方案,您可能对此感兴趣:http://thelucid.com/2010/12/03/the-solution-to-fluid-inconsistencies-and-equal-height-columns/
忘记提了,它在 Safari、Chrome、Firefox 和 IE6 及更高版本中都能正常工作。
几年前我写过的方法是使用两个包装器,每个包装器都有自己的背景图像,使用百分比 background-position 值。您可以在 http://www.communitymx.com/abstract.cfm?cid=AFC58 查看教程。它不一定是最好的解决方案,但它仍然有效并且拥有非常广泛的浏览器支持。
很棒,按预期工作。我尤其喜欢填充和负边距方法。帮助我解决了一个在 Stack-Overflow 上发布的问题。干杯!
请注意,渐变方法在 Chrome(当前版本 35)中不可靠,因为它们使用 256 比例进行优化,从而导致舍入误差 - 因此颜色断点不在正确的位置。
查看此笔(http://codepen.io/elliz/pen/fCsay)以获取炫酷的动画演示(如果您使用的是 Chrome)以及指向 SO 问题/讨论和 Chrome 错误列表的链接。
有人知道如何解决这个问题吗
在“One True Layout Method”中,如果您有一个带有 id(例如
lipsum
)的特定<p>
,然后将页面加载为 mypage.html#target,则其余内容将被溢出:隐藏,因此页面中不再有更多内容……