【问题标题】:how to provide own image to svg for background?如何将自己的图像提供给 svg 作为背景?
【发布时间】:2018-10-15 23:00:26
【问题描述】:

我正在构建一个 React 应用程序,并且有一部分我需要制作一个倾斜的 div,该 div 也有一个背景图像。

形状就像这里显示的蓝色 div - slanted div shape 现在,我可以按照我链接到的图像所示进行操作,但是由于有背景图像,我无法使用它,因为我必须在 2 个 div 中使用它。

所以,我想使用 svg 来创建形状以及背景,然后在该 div 中添加其他内容,例如文本。 那么,我应该怎么做才能做到这一点。

这是我正在尝试的,但我无法同时显示背景图像和倾斜。 只是想补充一点,这个 svg 在这样的网格内。这是一个用于布局的材质 ui 网格。 我希望这张图片将这个网格的整个空间作为背景图片。我会像往常一样在这个网格上写文字。

     <Grid container > 

<Grid item xs={12} sm={12} md={12} lg={12} className='mscbackground' > 

<h2> asfasfdasdfasfdasfd <span className='blueword'> ASDFASDFASDF</span> </h2> 
JLSAKSJFDKLAJSLKDFJALKSJFDKLAJSLKFDJALKSJFDLKJLKSDJFLKJALKSDJFLKAJSDLKFJALKSJDFKLAJSLDKFJaksjdflkajsldfkjalkdfjslakjdslkfjalksdjflkasjdfkljalskdjflkasjdflkjalksdjflkasjdlkjflkasdjflkajsdlkfjalksdjflkasjdlfkj 


</Grid> 



</Grid>

我用过的css

.mscbackground {
    height: 450px;
    padding-top: 50px;
    padding-left: 50px;
    line-height: 2.5;
    text-align: center;
    color: #D9D9D9;  
    width:100%;
    background:
     linear-gradient(to bottom right,transparent 49%,#fff 50%) bottom/100% 7% no-repeat,
     url('./assets/black-and-white-music-headphones-life.jpg')center/cover no-repeat;
  }

但它不起作用。背景图像根本没有显示。

那么,有什么想法可以让它工作吗??

【问题讨论】:

  • 如果您展示了您的代码,我们如何知道元素的外观,svg 与其他元素的关系,是否在 html 或 css 等中应用,将会很有帮助
  • 已将整个网格项目添加到原始帖子中
  • 那么,有什么想法吗??

标签: css reactjs svg


【解决方案1】:

您不能为path 添加背景。使用 SVG,您可以考虑如下所示的剪辑路径:

svg {
  width:200px;
}
<svg viewbox="0 0 300 200">
  <defs>
    <clipPath id="circle"> 
       <polygon points="0,0 300,0 300,100 0,200" fill="white" />
    </clipPath>
  </defs>
<image width="300" height="200" xlink:href="https://picsum.photos/300/200?image=0" clip-path="url(#circle)"/>
</svg>

如果您不需要透明度,这里有一个简单的 CSS 解决方案:

.box {
  height:200px;
  width:300px;
  background:
   linear-gradient(to bottom right,transparent 49%,#fff 50%) bottom/100% 40% no-repeat,
   url(https://picsum.photos/300/200?image=0) center/cover no-repeat;
}
<div class="box">

</div>

【讨论】:

  • react 不允许我使用这个 xlink:href= inn image 标签
  • @faraz 我添加了另一个解决方案,你可以检查一下
  • 知道如何使斜面不那么陡峭吗?
  • @faraz 尝试调整49% 的值,使其更大或更小48.5% 或49.5%,直到你得到你想要的
  • 你能再回答一个吗?文本不是留在盒子里,而是在盒子外面。这是为什么?当我放置 padding-bottom 时,我会在下面看到一条边界线。这是为什么?你能解释一下或指向一个链接,它可以更好地解释线性渐变中的这种技术吗?
猜你喜欢
  • 2019-07-01
  • 2017-02-03
  • 2014-03-24
  • 2012-07-16
  • 2021-07-29
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多