介绍
这篇文章给大家分享的是有关CSS中overflow-y:可见;不起作用怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
场景
最近要做的一个需求是移动端的编辑页面,要求有一排可选择的卡片,超出容器部分可以左右滑动,同时每张卡片左上角要有一个删除按钮。
心想:很简单,在父容器上加一个max-width: 200 px;空白:nowrap;}overflow-x:汽车;不就搞定了嘛.Demo如下:
& lt; div类=癱ontainer"比; & lt; div类=皊on"祝辞 & lt; div类=癲elete_btn"祝辞& lt;/div> & lt;/div> & lt; div类=皊on"祝辞 & lt; div类=癲elete_btn"祝辞& lt;/div> & lt;/div> & lt; div类=皊on"祝辞 & lt; div类=癲elete_btn"祝辞& lt;/div> & lt;/div> & lt;/div> .container { max-width: 500 px; overflow-x:汽车; 空白:nowrap;} } .son { 显示:inline-block; 宽度:200 px; 身高:200 px; background - color: lightblue; 位置:相对; margin-right: 20 px; } .delete_btn { 宽度:20 px; 高度:20 px; 位置:绝对的; 上图:0; 左:0; 背景颜色:红色; 变换:translateX translateY (-50%) (-50%); }
原本以为一切顺利,结果得到的结果如图:
看第矩形左上角的红色方块,原本为20 * 20的红色方块有一部分被隐藏了。我想应该是溢出影响的,所以想通过overflow-y:可见;来解决,结果是不行的。细心的朋友应该记得溢出的默认值就是可见的。那么原因是什么呢?
为什么找了好久,大致了解到是如下原因
“overflow-x”的计算值和“overflow-y”是相同的指定值,除了一些组合“可见的”是不可能的:如果> padding-top: 20 px; margin-top: -20 px;
原理其实挺简单的,加了padding-top: 20 px;后,绝对定位的红色方块就有空间显示了,不会超出容器体积,然后通过margin-top: -20 px;抵消位置的变化。如图
ps:第一个红色方块左边被遮住的部分同样的思路解决,即通过padding-left和margin-left来处理。
感谢各位的阅读!关于CSS中overflow-y:可见;不起作用怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!