html - CSS 变换比例忽略 z-index 和渐变

标签 html css linear-gradients

我在 ::after 上使用 linear-gradient 来制作这样的对象,一个消失的边框。现在我想使用 scale 使其中之一如此活跃(选中)但看起来它忽略了 z-index: -1; 并显示所有渐变。我想像其他人一样显示选定的。

.Winter-Plans {
    width: calc(100%/5 - 16px);
    min-height: 360px;
    position: relative;
    border-radius: 20px;
    background: white;
    padding: 80px 15px 35px 15px;
    margin: 0 8px 20px 8px;
    box-sizing: border-box;
    float: left;
}

.Winter-Plans::after {
    position: absolute;
    top: -1px;
    bottom: -1px;
    left: -1px;
    right: -1px;
    background: linear-gradient(to top, #ddd, white);
    content: '';
    z-index: -1;
    border-radius: 20px;
}

.Winter-Plans.Selected {
    transform: scale(1.1);
}
<div class="Winter-Plans">
</div>
<div class="Winter-Plans Selected">
</div>
<div class="Winter-Plans">
</div>

这个标题有很多主题,我试过了,但没有一个能解决我的问题。 ps:我无法更改 html 结构,因此我使用了 ::after

最佳答案

transform 将创建一个堆叠上下文,强制将伪元素绘制在元素内部,不再位于元素外部/后面。相关问题以更好地理解问题:Why can't an element with a z-index value cover its child?

考虑使用不需要伪元素的多个背景来实现相同效果的不同方法

.Winter-Plans {
    width: calc(100%/5 - 16px);
    min-height: 360px;
    border-radius: 20px;
    background: 
      linear-gradient(white,white)         padding-box, /* cover only the padding area*/
      linear-gradient(to top, #ddd, white) border-box;  /* cover the border area*/
    border:1px solid transparent; /* a transparent border for our gradient */
    padding: 80px 15px 35px 15px;
    margin: 0 8px 20px 8px;
    box-sizing: border-box;
    float: left;
}

.Winter-Plans.Selected {
    transform: scale(1.1);
}
<div class="Winter-Plans">
</div>
<div class="Winter-Plans Selected">
</div>
<div class="Winter-Plans">
</div>

如果您需要具有透明背景和带有半径的边框渐变的解决方案,请查看:Border Gradient with Border Radius

关于html - CSS 变换比例忽略 z-index 和渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59334683/

相关文章:

html - 如何制作不同尺寸的 flex 元素以在包裹时填充父级

java - NoClassDefFound错误: Error in running applet in appletviewer

html - 响应式和全高侧边栏

css - 我的菜单中使用的填充在 Firefox 和 Chrome 之间相差 1px,我该如何解决这个问题?

javascript - 渐变过滤器可防止在没有文本的 IE9 DIV 中单击事件

javascript - Jquery 下拉悬停菜单仅适用于第一个 <li>

javascript - 模板驱动的“起始日期”和“截止日期”表单验证

html - 更改 R Shiny 文本输入指令的字体系列/大小/样式

css - 如何修复重复的线性渐变

html - CSS 渐变边框显示不正确