问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

CSS中overflow-y: visible;不起作用的解决方法

发布网友 发布时间:2024-10-09 19:22

我来回答

1个回答

热心网友 时间:2024-10-09 19:37

本篇文章给大家带来的内容是关于CSS中overflow-y: visible;不起作用的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
场景
最近要做的一个需求是移动端的h5页面,要求有一排可选择的卡片, 超出容器部分可以左右滑动,同时每张卡片左上角要有一个删除按钮。如下图:
心想:so easy, 在父容器上加一个max-width: 200px; white-space: nowrap; overflow-x: auto;不就搞定了嘛。Demo如下:
<div class="container"> <div class="son"> <div class="delete_btn"></div> </div> <div class="son"> <div class="delete_btn"></div> </div> <div class="son"> <div class="delete_btn"></div> </div></div>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来处理。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
超喜欢你的 农行面签 带什么 农行面签需要什么 宝贝药物“黑名单”,爸妈要清楚 借呗用了一次就关闭了怎么办 什么的鸟儿,什么的树木,什么的流水和什么的岩石,汇成了一幅什么的... 什么的小溪填空词语 微信视频号直播“晚安电台”类目怎么上?语音直播开了也不在这个类目中... 帝国时代系列现在出到几了? 以后呢? 求东京巴比伦所有的歌,有罪,soildgold 大都市的孩子,kiss kiss,所有的... 谁知道口琴怎么吹,有什么技巧谢谢了,大神帮忙啊 ...之后不能给 div设置width 和 height,求解释,求帮忙 怎样自学半音阶口琴 ...之间(不包括﹣a和a)恰有2007个整数,则a的取值范围为( )。 若a为有理数,在a与-a之间有1997个整数数a的取值范围 若a为有理数,在-a与a之间有1997个整数,求a的取值范围。 若A为有理数,在负A与A之间(不含负A,A)有1997个整数,A的取值范围是? 若a为有理数,在-a与a之间有1997个整数,求a的取值范围。要过程!!! 帮个忙、若a为有理数,在-a与a之间(不含-a与a)有1997个整数,则a的取值... 抄写什么经书最旺财 若a为有理数,在-a与a之间(不包括-a和a)恰有1997个整数,则a的取值范 ... 若a为有理数,在-a与a之间(不含-a与a)有1997个整数,则a的取值范围是什么... 贫血最常见和最早出现的症状是什么 我消方块贼六游戏安卓游戏高速下载 葡萄拉花后可以用甲霜锰锌吗? 中国僵尸和外国僵尸谁先咬死谁哇?我很费解 什么一二级市场 中国版和美国版僵尸有何区别? 3x-7y=1+3x+7y=13的方程组二元一次方程? 方程组:3X-7Y=1,5X-4Y=17怎么解? 大家看看,奔图打印机,放入纸张,打印机抽屉 关不上怎么回事?_百度... 打印机一次出2张纸怎么回事? 打印机一次出多张纸如何解决_打印机一次出多张纸的解决方法 ...杏仁10g,紫苑5g,金银花12g,木蝴蝶5g,陈皮39,桔梗8g,沙参 桔梗、甘草、元参、麦冬、北沙参、桑叶、川贝、紫苑、枇杷叶、款冬花... 我女儿很喜欢吃葡萄干,吃多了会对身体有什么坏处吗 素炸串品种 ...不能用手摸,你能想出几种判断方法?请写出来 方法一: 方法二:_百度... 实验桌上备有凸透镜和凹透镜各一块,为了研究凸透镜成像规律,小明必须... ...若不能用手摸,你能想出几种判断方法?请写出来 土豆切成丝后泡在水里~~可以泡个2,3天吗?有什么害处吗? 约吗是什么意思啊? 陌陌上问“约吗”是什么意思 女生说约吗是什么意思? ...鼠标 怎么调置 什么DPI HZ 刷新率 要详情 最好带图。我玩CF... 这四招就能轻松鉴别邮票真假 邮票怎么看真假 快来学学这几条邮票辨伪小妙招 邮票怎么辨别真假 藕和菜花能不能一起吃呀