【问题标题】:Adding svg as a pseudoelement添加 svg 作为伪元素
【发布时间】:2020-06-30 12:44:49
【问题描述】:

我试图在两个不同的 div 之后放置一个 svg 作为伪元素。 我的代码是

    .mydiv:after{
           content: url("data:image/svg+xml;charset=UTF-8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' width='2em' height='1.5em' ><path d='M32,43.71a3,3,0,0,1-2.12-.88L12.17,25.12a2,2,0,0,1,0-2.83l1.42-1.41a2,2,0,0,1,2.82,0L32,36.47,47.59,20.88a2,2,0,0,1,2.82,0l1.42,1.41a2,2,0,0,1,0,2.83L34.12,42.83A3,3,0,0,1,32,43.71Z'/></svg>");
           position:relative;
    }

和 HTML

    <h4><div class="mydiv">...</div></h4>
    <small><div class="mydiv">...</div></small>

我的问题是 h4 和 small 有不同的尺寸 - 因此,svg 的尺寸和对齐方式需要不同。如何更改代码以使 svg 始终适应其前面的内容?

【问题讨论】:

标签: css svg pseudo-element


【解决方案1】:
.mydiv:after{
       content:"";
       display:inline-block;
       width:20px;
       height:20px;
       background-image:url("data:image/svg+xml;charset=UTF-8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' width='2em' height='1.5em' ><path d='M32,43.71a3,3,0,0,1-2.12-.88L12.17,25.12a2,2,0,0,1,0-2.83l1.42-1.41a2,2,0,0,1,2.82,0L32,36.47,47.59,20.88a2,2,0,0,1,2.82,0l1.42,1.41a2,2,0,0,1,0,2.83L34.12,42.83A3,3,0,0,1,32,43.71Z'/></svg>");
       background-size:contain;
       background-position:bottom center;
       background-repeat:no-repeat;
}

【讨论】:

  • 这不起作用...它使 h4 和 small 的 svg 大小仍然相同。
  • 我认为这是一个很好的答案,使用 em 而不是 px 作为宽度和高度
  • 根据你的字体大小改变高度,例如如果是h1,添加h1 &gt; .mydiv:after{height:1.5rem;}small &gt; .mydiv:after{ height:1rem; }
猜你喜欢
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 2011-11-12
  • 2017-11-29
  • 1970-01-01
相关资源
最近更新 更多