【发布时间】:2017-08-08 14:08:25
【问题描述】:
我遇到了一个问题,即 div 在被其他内容下推后无法调整大小。我附上了一个例子。单击“切换内容”按钮以查看问题。如果您调整浏览器的大小,则 div 将恢复为全宽。有没有办法解决这个问题?
我还提供了一个屏幕截图来显示该行为,因为它似乎并非在所有浏览器上都发生。它在 Safari 中始终如一地发生。当您按下“切换内容”按钮时,最后一个 div“4)”不会展开,除非您调整浏览器的大小。
document.getElementById("button").onclick = function() {
var display = document.getElementById("two").style.display == "none" ? "block" : "none";
document.getElementById("two").style.display = display;
document.getElementById("three").style.display = display;
}
#float
{
float:left;
}
#float > img
{
float:left;
width: 300px;
height: 300px;
}
.content
{
overflow: hidden;
border: 1px solid gray;
margin: 10px;
}
<button id="button">Toggle Content</button>
<br><br>
<div id="float"><img src="https://www.apple.com/ac/structured-data/images/knowledge_graph_logo.png?201703170823"></div>
<div class="content">1) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div id="two" class="content" style="display: none">2) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
<div id="three" class="content" style="display: none">3) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
<div class="content">4) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
【问题讨论】:
-
什么浏览器和版本?也许我不明白你的问题,但我没有看到它在 Mac 上的 Chrome 59 中做任何我不期望的事情
-
好的,我想这可能是一个 Safari 错误。我使用的是 Safari 版本 10.1.2 (12603.3.8)。
-
啊,是的。我在 Safari 中打开它并查看问题。同一个版本,应该是bug。您可以通过在切换功能中将 div 的宽度重置为
auto来解决问题 -
这是一个更简单的示例,但我在我的主项目中使用 Chrome 进行了测试,但我仍然看到这个问题有时也会在该浏览器中发生。它总是发生在 Safari 中。
-
嗯。尝试在
.content类上添加width:auto。这可能足以防止大多数浏览器猜测。