【发布时间】:2017-12-31 03:01:21
【问题描述】:
我在布局的第二列中有一个水平滚动的 div。出于某种原因,这个 div 的内容会拉长我的页面并破坏我的布局。我已将main__listing 确定为有问题的div。为了测试这是有问题的div,我将宽度更改为10%。它将 div 的内容缩小到您期望的荒谬大小,但是我的页面仍然损坏。我曾经使用 Firefox 开发工具来查找以像素为单位的宽度(290 像素)。然后我将宽度设置为 290px。这修复了我的页面。我需要 div 是流动的,所以这不是一个真正的修复,但我想知道为什么会这样。
TL;DR 宽度设置为 % 的 div 的宽度与设置为相同大小(以像素为单位)的 div 不同。
CSS:
.main__listings {
width: 100%;
}
.horizontal_scroll {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
.card {
flex: 0 0 200px;
margin: auto 10px;
}
HTML:
<div className="main__listings">
<h1>Local Competitions</h1>
<div className="horizontal_scroll">
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
<div className="card">
<h2>Competition Name</h2>
<img src="http://via.placeholder.com/280x280" alt="" width="140" height="140"/>
</div>
</div>
</div>
【问题讨论】:
-
在标题中回答你的问题,百分比是(总屏幕宽度“或高度”)* .(你想要的百分比)所以一个例子是想要一个图像是 20%屏幕宽度。在 1820 像素宽的屏幕/浏览器窗口上,宽度为 1820 * .20 = 364 像素。如果您仅使用像素定义宽度,则无论屏幕尺寸如何,它始终是您选择的已定义像素数量。如果您缩放屏幕,这将不断变化。
-
是的,但是在任何给定的屏幕尺寸下,都有对应的像素尺寸匹配。我有一个按百分比设置一次的 div,然后按像素设置。 div 大小不随百分比变化,但按像素设置时变化。在这两种情况下,div 的内容都发生了变化。
标签: html css flexbox horizontal-scrolling