我希望我的<fieldset>
元素通过填充其包含元素并在设置为<div>
时显示滚动条来表现得像香草overflow: auto
。
例如,我不明白为什么this example中的字段集比其包含的div更宽:
<div class=outer>
<fieldset class=inner>
fooooooooooooooooooooooooooooooooooooo
</fieldset>
</div>
<div class=outer>
<div class=inner>
fooooooooooooooooooooooooooooooooooooooo
</div>
</div>
和相应的css:
.outer {
width: 60px;
}
.inner {
overflow: auto;
display: block;
height: 60px;
border: 1px solid red;
}
答案 0 :(得分:5)
事实证明,罪魁祸首(在某些情况下)是webkit中的用户代理样式表设置:
fieldset {
min-width: -webkit-min-content;
}
样式表中的 setting min-width: 0;
更正了Chrome 27,Safari 6.0.2和WebKit Nightly r146031中的问题。它无法解决Chrome 25和FireFox 19.0.2中的问题。
无论哪种方式,这都无法解决问题。
答案 1 :(得分:2)
<fieldset>
不会从父div继承宽度。 .inner
div 执行继承宽度和shinks。您只需将width: inherit
添加为.inner
即可解决此问题。请注意,<fieldset>
也可能会获得一些额外的填充和边距。
答案 2 :(得分:0)
要修复您的fieldset
或将其设置为示例中的div
,请添加以下css ::
fieldset{
margin:0px;
padding:0px
}
你需要首先重置边距和填充,使其像下面的div一样,然后添加你想要的宽度:
.inner {
width:60px;
}
答案 3 :(得分:0)
Fieldset版本比div版本宽的原因是因为 除非另有指定,否则fieldset有自己的默认填充。
请参阅:http://jsfiddle.net/RDVY7/
我将此添加到您的CSS:
fieldset {
margin:0 ;
padding:0 ;
}
它解决了这个问题。如果要在fieldset版本之间留出间距
和你的div,只需调整margin:
元素。