【问题标题】:CSS - Using a pseudo-element for an image maskCSS - 为图像蒙版使用伪元素
【发布时间】:2013-11-05 11:39:38
【问题描述】:

我正在页面上显示图像,我希望添加蒙版以实现特定的边框和角落效果。

为此,我希望通过以下方式使用伪元素:

img
{
    height: 58px;
    left: 0;
    position: absolute;
    top: 0;
    width: 58px;
    z-index: 1;

    &:after
    {
        background-image: url(images/frame.gif);
        content: " ";
        height: 58px;
        left: 0;
        position: absolute;
        top: 0;
        width: 58px;
        z-index: 2;
    }
}

但面具图像永远不会出现。我还尝试添加一个负的左边距和上边距以将伪元素“拉”回<img>,但仍然没有。

我的 CSS 中是否存在明显错误,或者问题是否在于伪元素的固有限制?

【问题讨论】:

  • 你在使用一些 CSS 框架吗? &:after 不是有效的 CSS 规则...
  • @JonathanNaguin 那少了.. awj,先尝试保留内容然后添加背景图像..
  • 您不能在图像中使用伪元素。您必须将图像包装在 div 中并在其上使用 :after

标签: css less mask pseudo-element image-masking


【解决方案1】:

默认情况下,img 标签是一个内联元素,它不是添加 after 伪类的容器。我会建议以下代码:

div.container {
    img {
        display: block;
        height: 58px;
        left: 0;
        position: absolute;
        top: 0;
        width: 58px;
        z-index: 1;
    }
    &:after {
        display: block;
        background-image: url(images/frame.gif);
        content: " ";
        height: 58px;
        left: 0;
        position: absolute;
        top: 0;
        width: 58px;
        z-index: 2;
    }
}

注意伪类也是块元素。

【讨论】:

  • 完美运行,谢谢。另外,为了完整起见,我应该补充一点,content: " "; 无效 - 我不应该在那里。
  • 在这种情况下,div.container 应该设置自己的position: relativeabsolute,否则子元素将定位于设置了position 的下一个最高父元素。
猜你喜欢
  • 1970-01-01
  • 2020-10-04
  • 2020-05-13
  • 2011-06-26
  • 2018-08-07
  • 2019-12-24
  • 1970-01-01
  • 2011-11-11
  • 2018-08-05
相关资源
最近更新 更多