1

我做了一些谷歌搜索,发现了许多关于我试图解决的问题的参考资料,但都提出了我不能使用的相同解决方案。问题是我有一个侧边栏向右浮动,一些 div 需要扩展到侧边栏剩余的宽度,但是当侧边栏不再阻止它们这样做时,它们会扩展到全宽。

jsfiddle 在这里:http: //jsfiddle.net/qdk3n/

在其他地方找到的解决方案是应用于overflow: hidden;这些.left项目。这完全达到了我想要的效果:与侧边栏共享​​水平空间的 div 只会扩展到侧边栏,但其他 div 会扩展到允许的最大宽度。不幸的是,左侧 div 内会有一个绝对定位的项目超过 div 的大小,如果我 apply 会被裁剪overflow: hidden;,所以我不能使用它。有什么方法可以在不使用的情况下完成我想做的事情overflow: hidden;

注意:在页面呈现时间之前,我不知道侧边栏或任何左侧 div 的大小,并且我不能以任何方式、形状或形式使用 Javascript(因为这适用于禁用 JS 的用户)。我可以在所有这些中设置的唯一尺寸是侧边栏的宽度;div 需要流畅,我不能随意选择其中的一些来仅扩展部分方式。

另请注意:我见过这个:Div stretch 然后环绕其他浮动 div。这正是我想要做的,但唯一真正的解决方案是overflow: hidden;属性,我不能使用它。

4

1 回答 1

0

除非我错过了什么,否则我认为不可能完全实现您的要求。

overflow: hidden;改变 ( ) 元素行为的原因display: block;是所谓的“块格式化上下文”,您可以在此处阅读;

https://developer.mozilla.org/en/CSS/block_formatting_context http://www.communitymx.com/content/article.cfm?cid=6BC9D

从技术上讲,您可以通过浮动左侧 div 来保留元素display: block;并让它们尊重浮动侧边栏,但这不太可能达到您想要的效果。

但是,左侧 div 中的任何内联内容都将尊重浮动侧边栏,所以我真的不认为 div 需要像您描述的那样表现(也许详细说明您背后的原因以获得更具建设性的反馈)。

于 2012-05-12T01:24:10.563 回答