借助CSS(或JQuery?)自动调整宽度
我有一堆需要向左浮动的借助CSS(或JQuery?)自动调整宽度,jquery,css,Jquery,Css,我有一堆需要向左浮动的节点。当float left大于其父容器时,这些节点宽度的总和。父节点的宽度不是增加,而是扩展父节点的高度,基本上向下延伸到下一行 是否有解决此问题的CSS解决方案,或者我是否需要一个jQuery脚本来根据父节点中有多少子节点来更改父节点的大小?没有CSS解决方案。不过,您可以按照您的建议使用jQuery来完成它。我不确定我是否100%清楚问题是什么以及您希望解决什么问题,但仅使用CSS: 如果在父对象上设置的高度等于li的高度,则可以防止li拉伸父对象的高度 溢出:隐藏;
节点。当float left大于其父容器时,这些节点宽度的总和。父节点的宽度不是增加,而是扩展父节点的高度,基本上向下延伸到下一行
是否有解决此问题的CSS解决方案,或者我是否需要一个jQuery脚本来根据父节点中有多少子节点来更改父节点的大小?没有CSS解决方案。不过,您可以按照您的建议使用jQuery来完成它。我不确定我是否100%清楚问题是什么以及您希望解决什么问题,但仅使用CSS: 如果在父对象上设置的高度等于li的高度,则可以防止li拉伸父对象的高度
溢出:隐藏;除非您想要滚动条,否则也可能需要在父屏幕上显示。我想我理解您的要求,但可能不理解。看看这个。我在CSS上做得太过火了,但它只是说明了这一点
浮动元素的直接父元素应该有
display:inline block
属性。你能用一个例子快速解释一下你的意思吗?是的……我有点明白了。糟糕,谢谢你的努力。我不喜欢所有css,除了
驻留在没有定义宽度的
中,但该节点的父节点具有定义的宽度。问题是当
的浮动向左时,宽度是从“祖父母”节点继承的。clearfix会解决这个问题吗?()浮动元素存在于DOM流之外,因此不考虑它们的高度和宽度。不,我总是使用ghostclear
div。问题不一定与float本身有关,而是与父容器的大小有关。它也都在一个Joomla模板中,这个模板有自己定义的宽度。如果你检查这个,然后转到“为什么很糟糕”部分,你就会明白我的意思。你要求一个CSS解决方案,就是这样。处理跨浏览器问题(IE7是以前的版本)完全不同。这种方法的固有缺陷就是我正在处理的问题。你只是重复了我的问题。如果你看看我给你的链接,它在标题下,“巨大的缺点”。寒冷
<div class="navItems">
<div class="navOutline">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<!-- Add more items and it'll expand -->
<li><a href="#">Item 5</a></li>
</ul>
</div>
</div>
.navItems ul { list-style:none; margin:0; padding:0; }
.navItems li { display:inline; }
.navItems li:not(:last-child) { margin-right:10px }
.navItems .bumper { margin-right:15px; }
.navItems {
float:left;
font-size:14px;
padding:5px;
background:#FFF;
box-shadow:0px 0px 20px rgba(0,0,0,0.25);
-o-box-shadow:0px 0px 20px rgba(0,0,0,0.25);
-ms-box-shadow:0px 0px 20px rgba(0,0,0,0.25);
-moz-box-shadow:0px 0px 20px rgba(0,0,0,0.25);
-webkit-box-shadow:0px 0px 20px rgba(0,0,0,0.25);
}
.navOutline {
margin:auto auto;
padding:10px;
background:#FFF;
border:1px dashed #CCC;
}
.navItems a { text-decoration:none; color:#000; }