fieldset这个元素,估计用的人很少吧,或者说现在使用fieldset情况已经很少了,大部分都是使用其他元素模拟这个元素的ui。

今天我碰到一个很奇怪的现象。

fieldset里面的元素,他不会产生横向滚动条,哪怕我设置了外部所有父元素的宽度为100%,overflow-x: auto;

里面的子元素,如果比如pre这种代码块,不换行的,他会一直往右延伸,也就是超出原来的宽度,把fieldset撑的非常宽。

但是所有的父元素都是block,按道理宽度是自己占满不会超出的。

找了半天,理解出这么一段解释:

fieldset默认是以block方式解析的,也就是宽度是按照100%占满,但是他的默认css中,他有一个min-inline-size属性,他的值默认为min-content,可以理解为他的min-width默认是最小的内容宽度,加上min-width权重大于width,导致宽度失效并且发生溢出

那么我们的解决办法就很简单了,我们对min-width做一个限制,重置掉他的默认值即可。

min-width:none; none是默认值,所以我们换成其他的值就行了,比如:

min-width: inherit;

或者

min-width: 1px;

个人推荐固定一个px,如果这对你的布局无影响的情况下。

这样,fieldset元素宽度就会正常。

分类: CSS 标签: 宽度fieldset

评论

暂无评论数据

暂无评论数据

目录