为什么overflow:visible样式不生效,会自动变成auto

问题场景

当给父容器加上overflow:visible auto,样式时,x轴方向也变成了auto了,很费解,明明设置的是visible却变成了auto,因为内部子元素x轴上有内容溢出,想让它正常显示而不是隐藏或加滚动条。

问题原因

我在MDN找到了原因:

当 overflow-y 的值为 hidden、scroll 或者 auto,而 overflow-x 属性的值为 visible(默认值)时,该值会被隐式地计算为 auto。

visible
溢出的内容不会被截断,且可以显示在元素边距(padding)框的左右边缘之外。元素盒子不是滚动容器。

hidden
如有必要,溢出的内容会被截断以从水平方向适应元素的边距框,不会显示滚动条。

clip
在溢出截断边缘(使用 overflow-clip-margin (en-US) 属性定义)上的溢出内容会被截断。即,距元素内边距框指定宽度(为 overflow-clip-margin 的 值,若未设置则为 0px)范围内的内容会溢出。clip 和 hidden 的区别是 clip 关键字还禁止所有滚动,包括程序性滚动(programmatic scrolling)。其不会创建新的格式化上下文。如果要创建新的格式化上下文,请将 overflow: clip 与 display: flow-root 一起使用。元素盒子不是滚动容器。

scroll
如有必要,溢出的内容会被截断以从水平方向适应元素的边距框。无论内容是否发生溢出,浏览器总是显示滚动条。(这可以避免滚动条的显示与消失所导致的元素尺寸不确定的问题。)而打印机可能会打印溢出的内容。

auto
元素边距框中的溢出内容会被截断,且溢出内容可通过滚动以进行浏览。与 scroll 关键字值不同的是,用户代理只在内容溢出时显示滚动条,默认不会显示滚动条。如果内容可以适应元素的边距框,则看起来与 visible 相同,但仍然会创建新的区块格式化上下文。桌面浏览器会在内容溢出时显示滚动条。

前面两条解释是导致问题出现的原因。
有兴趣可以看MDN原说明:跳伞MDN

总结

如果有要滚动的区域,在container外面再套一层
css我不是精通、掌握,而是听说,哈哈!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Detectiveboy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值