【问题标题】:div cutted when no vertical scroll in browser当浏览器中没有垂直滚动时,div被剪切
【发布时间】:2021-10-02 02:48:14
【问题描述】:

我有闲置财产:

div{width:300px;}

一切都很好,因为有一个垂直滚动(宽度为 17px)。

但是当我在没有垂直滚动的地方有相同的 div 时,就会出现空白(因为当然没有 17px 垂直滚动条)

我的问题是:解决这个问题的正确方法是什么?

可能是这样的逻辑?

if !scrollbarY 
then div.width=div.width + scrollbarY 
else div.width

或者可能放置一个不需要的垂直滚动?

【问题讨论】:

  • 您能否提供一个有效的 sn-p,因为我发现很难想象到底发生了什么 - div 如何适合其父级以及如何确定父级的宽度。

标签: javascript css scrollbar


【解决方案1】:

如果您设置div {overflow: scroll;},滚动条部分将显示是否需要滚动条(或者如您所说的无效)。如果您设置div {overflow: auto;},它只会在必要时显示滚动条部分。运行代码 sn -p 以查看两者的示例。

.one,
.two,
.three {
  width:300px;
  height: 50px;
  display: block;
  margin-bottom: 3rem;
  border: 1px solid pink
}

.one {
  overflow: scroll
}
.two,
.three {
  overflow: auto
}
<div class="one">
  jlnka sdflj knasd
</div>
<div class="two">
  jlnkasdf ljknas dflkjn.
</div>
<div class="three">
  jlnkasdf ljknas dflkjn asdflkj nasdflk jnasdfl kjnasdf lkjnasd flkjnas dflkjnas dflkjnas dflkjnas dfkljnas dfkljnas dlfkjnas
</div>

【讨论】:

  • 我的问题的完美解决方案可能是:当没有侧边栏时,整个 div 应该在 div 维度上保持边距。当有侧边栏时,div 应该保持不变
  • 不确定我是否按照您的意思说:“应该在 div 维度上保持边距。当有侧边栏时,div 应该保持不变”
  • 正确!感谢您更正句子
  • @MaykelContrerasCamacho 我没有改变任何东西,我只是复制了你句子中我不明白的部分。不知道你在那句话中的意思。
  • 让我解释一下...我们正在谈论的主 div 有一个固定的宽度。如果有一个垂直滚动(即verticalScrollWidth=17px)是一个经度添加。影响界面。当然,我可以为每个视图制作一个不同的 div(我即将这样做),但我想知道是否有更好的方法......呃哦......我没有说 div 已经对齐 -内部的中心元素,这取决于从中心到右侧的距离。也许我会更好地解释这一点。
猜你喜欢
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 2010-09-19
  • 2016-04-28
相关资源
最近更新 更多