我正在尝试从Angular的html中将URL图像传递到CSS上,但我无法做到这一点:
我的CSS是:
card-profile_visual {
height: $visual-height;
overflow: hidden;
position: relative;
background: linear-gradient(to bottom, darken(#545559, 10%), saturate(darken(#3A4A7B, 2%), 20%), saturate(darken(#3A4A7B, 15%), 20%));
&:before,
&:after {
display: block;
content: '';
width: 100%;
height: 100%;
position: absolute;
z-index: 0;
background: url(myUrl) no-repeat center center/cover;
opacity: 0.5;
mix-blend-mode: lighten;
}
}
我的html是:
<div class="card-profile_visual" [style.background-image]="'url('+offer.photo_url+')'"></div>
我如何实现将offer.photo_url传递给CSS:
背景:url(myUrl)无重复中心居中/封面;
非常感谢
答案 0 :(得分:1)
使用ngStyle并与CSS Variables一起使用,如下所示:
代替:
CSS:
card-profile_visual {
height: $visual-height;
overflow: hidden;
position: relative;
background: linear-gradient(to bottom, darken(#545559, 10%), saturate(darken(#3A4A7B, 2%), 20%), saturate(darken(#3A4A7B, 15%), 20%));
&:before,
&:after {
display: block;
content: '';
width: 100%;
height: 100%;
position: absolute;
z-index: 0;
background: url(myUrl) no-repeat center center/cover;
opacity: 0.5;
mix-blend-mode: lighten;
}
}
HTML:
<div class="card-profile_visual" [style.background-image]="'url('+offer.photo_url+')'"></div>
使用此功能:
CSS:
card-profile_visual {
height: $visual-height;
overflow: hidden;
position: relative;
background: linear-gradient(to bottom, darken(#545559, 10%), saturate(darken(#3A4A7B, 2%), 20%), saturate(darken(#3A4A7B, 15%), 20%));
&:before,
&:after {
display: block;
content: '';
width: 100%;
height: 100%;
position: absolute;
z-index: 0;
background: var(--my-image) no-repeat center center/cover;
opacity: 0.5;
mix-blend-mode: lighten;
}
}
HTML:
<div class="card-profile_visual" [ngStyle]="{'--my-image': ' + offer.photo_url + '}"></div>
希望它能对您有所帮助。
答案 1 :(得分:1)
您可以在url
属性中使用content
content: url(imageUrl);
答案 2 :(得分:0)
尝试一下
<div class="card-profile_visual" [style.backgroundImage]="'url('+offer.photo_url+')'"></div>
要在CSS的伪元素中添加背景图片,您可以这样做
.card-profile_visual:after{
background: url(myUrl) no-repeat center center/cover;
}