您现在的位置是:网站首页> 编程资料编程资料
CSS中overflow-y: visible;不起作用的原因分析及解决方法css 设置overflow:scroll 滚动条的样式 深入理解CSS overflow:hidden——溢出,坍塌,清除浮动css中text-overflow属性与文本截断详解详解CSS中zoom属性或overflow:auto属性清除浮动的作用使用CSS的overflow属性防止float撑开div的方法CSS属性text-overflow的使用问题使用CSS隐藏元素滚动条的示例代码css 给div添加滚动并隐藏滚动条
2021-09-04
1086人已围观
简介 小编最近遇到这样的需求,移动端的h5页面,要求有一排可选择的卡片, 超出容器部分可以左右滑动,同时每张卡片左上角要有一个删除按钮。接下来通过本文给大家介绍CSS中overflow-y: visible;不起作用的原因分析及解决方法,需要的朋友参考下吧
场景
最近要做的一个需求是移动端的h5页面,要求有一排可选择的卡片, 超出容器部分可以左右滑动,同时每张卡片左上角要有一个删除按钮。如下图:

心想:so easy, 在父容器上加一个max-width: 200px; white-space: nowrap; overflow-x: auto;不就搞定了嘛。Demo如下:
.container { max-width: 500px; overflow-x: auto; white-space: nowrap; } .son { display: inline-block; width: 200px; height: 200px; background-color: lightblue; position: relative; margin-right: 20px; } .delete_btn { width: 20px; height: 20px; position: absolute; top: 0; left: 0; background-color: red; transform: translateX(-50%) translateY(-50%); }
原本以为一切顺利,结果得到的结果如图:

看第矩形左上角的红色方块,原本为20 * 20的红色方块有一部分被隐藏了。我想应该是overflow影响的,所以想通过overflow-y: visible;来解决,结果是不行的。细心的朋友应该记得overflow的默认值就是visible。那么原因是什么呢?
Why
找了好久,大致了解到是如下原因
The computed values of ‘overflow-x’ and ‘overflow-y’ are the same as their specified values, except that some combinations with ‘visible’ are not possible: if one is specified as ‘visible’ and the other is ‘scroll’ or ‘auto’, then ‘visible’ is set to ‘auto’. The computed value of ‘overflow’ is equal to the computed value of ‘overflow-x’ if ‘overflow-y’ is the same; otherwise it is the pair of computed values of ‘overflow-x’ and ‘overflow-y’.
大致意思是,当overflow-x为scroll或者auto时,overflow-y被设置为auto,反之亦然。这就很尴尬了,那怎么解决这个问题呢。
ps: 上面那段话说是来自于w3c的文档,但是我找了半天没找到原文,麻烦找到了的小伙伴留个链接~ [手动狗头]
How
终究还是想让左上角的红色方块显示完整的,那么解决方案呢,我这里采用的是在container上添加以下样式
padding-top: 20px; margin-top: -20px;
原理其实挺简单的,加了padding-top: 20px;后,绝对定位的红色方块就有空间显示了,不会超出容器体积,然后通过margin-top: -20px;抵消位置的变化.如图

ps: 第一个红色方块左边被遮住的部分同样的思路解决,即通过padding-left和margin-left来处理。
总结
以上所述是小编给大家介绍的CSS中overflow-y: visible;不起作用的原因分析及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
相关内容
- 纯css实现立体摆放图片效果的实例代码CSS3实现的3D立体文字时钟效果源码基于CSS3制作立体效果导航菜单CSS3实现的鼠标经过立体翻转切换特效源码CSS实现有立体感的横向按钮式菜单效果代码一款纯css3实现的3D立体翻转导航特效源码基于HTML5+CSS3实现鼠标悬停3D立体式图片效果源码html5+css3实现的会翻动的3D立体图书效果源码
- css实现二维码扫码框的示例代码CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS绘制三角形的实现代码(border法)利用css绘制三角形的方法及拓展纯CSS绘制三角形箭头图案技术解析Html+CSS绘制三角形图标css绘制透明三角形用CSS3绘制三角形的简单方法纯CSS绘制三角形箭头效果用CSS代码绘制三角形 纯CSS绘制三角形的代码CSS中三角形的绘制与巧妙应用实例详解
- 利用CSS3动画实现圆圈由小变大向外扩散的效果实例CSS3地图动态实例代码(圆圈向外扩散)HTML5结合CSS3实现的光感圆圈动画特效源码jquery+css3动态圆圈运动背景特效代码jQuery+css3实现漂亮的以圆圈方式显示的彩色时钟效果CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
- 使用CSS实现无滚动条滚动的两种方法CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- rem布局原理解析css基于媒体查询和 rem 的响应式布局实践详解html5页面 rem 布局适配方法移动端rem布局的两种实现方法详解H5 活动页之移动端 REM 布局适配方法浅谈移动端的自适应布局问题(响应式、rem/em、Js动态)使用CSS3的rem属性制作响应式页面布局的要点解析
- css将两个元素水平对齐的方法(兼容IE8)CSS水平对齐示例介绍CSS教程:水平对齐(text-align)-CSS教程-网页制作-网页教学网
- 实现CSS圆环的5种方法(小结)css制作收缩圆环旋转效果实例代码css3 clip实现圆环进度条的示例代码图解CSS3制作圆环形进度条的实例教程CSS实现圆环旋转加载动画
- 纯css实现漂亮又健壮的tooltip的方法 div+css样式自制带小三角的tooltips效果CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)纯CSS3实现自定义Tooltip边框涂鸦风格的教程用简单的jquery+CSS创建自定义的a标签title提示tooltip关于CSS Tooltips(鼠标经过时显示)的效果怎么用纯CSS制作带小三角的tooltip提示框
- css实现左侧固定右侧自适应的布局方式css实现元素居中的N种方法div水平布局两边对齐的三种实现方法waterfall瀑布流布局+动态渲染的实现页面中有间隔的方格布局如何完美实现方法css实现六种自适应两栏布局方式使用flex布局轻松实现页面布局的示例代码使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例
