开发笔记📐 发现👽 人物👮 趣闻💦
CSS:overflow-x和overflow-y滚动条配置冲突的问题

CSS:overflow-x和overflow-y滚动条配置冲突的问题
2018-06-06 22:19:57   点击:

问题情景还原:

对一个元素设置CSS overflow-x: hidden; 和 overflow</a>-y: visible;

理想状况下,在X轴超出部分隐藏,Y轴超出部分显示。然而,overflow-y元素属性并没有生效。

原因分析:

一般来说“overflow-x”和“overflow-y”的计算值与它的指定值相同,但是在特定的情况下两者会有冲突:

如果其中一个指定为“visible”,而另一个是“scroll”或“auto”,那么“visible”就会被设置为“auto'”。在Gecko,Safari,Opera中,'visible'与'hidden'结合时也会变成'auto'。

也就是说,如果同一个元素X,Y轴上,其中一个设置了visible,另外一个设置了scoll或者auto,这时候,visible属性自动转变为auto。

解决方案:

在目标属性外,嵌套父层,一个设置overflow-x: hidden;另外一个设置, overflow-y: visible; 即可。

例:

修复前代码

#content {
    height: 100px;
    width: 200px;
    overflow-x: hidden;
    overflow-y: visible;
}

使用一个包装 div来应用overflow-x和overflow-y不同的DOM元素,进行修复后代码如下:

#wrapper {
    height: 100px;
    overflow-y: visible;
}
#content {
    width: 200px;
    overflow-x: hidden;
}

CSS overflow

上一篇:CSS:after选择器简单说明 以及如何用after对clearfix进行改进
下一篇:Ubuntu下Vsftpd安装和各种命令详解 搭建服务器ftp客户端