角样式背景图片url +线性渐变

时间:2018-08-06 14:48:56

标签: css angular

我想在使用渐变的同时将图片放在div中。经过一番尝试,我最好的解决方案是这样:

<div 
  class="form-edit-picture-wrapper"
  [style.background-image]="'linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%), url(/assets/hands.jpeg)'"
>

但仍然无法正常工作。

有帮助吗?

5 个答案:

答案 0 :(得分:1)

使用纯CSS而不是内联样式!

.form-edit-picture-wrapper{
    background: linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%),
    url(/assets/hands.jpeg)
}

您还需要设置高度和宽度,因为您提供的div中似乎没有内容。

答案 1 :(得分:0)

如果要在模板中使用它,可以使用[ngStyle]指令。

[ngStyle]="{background: 'linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%), url(/assets/hands.jpeg)'}"

这里是一个快速的example

答案 2 :(得分:0)

消毒并可以工作:

.ts文件中的

import { DomSanitizer } from '@angular/platform-browser';

在导出类中添加:

bgImage:any;

在构造函数中添加:

private sanitizer: DomSanitizer

然后创建图像网址并进行清理:

this.bgImage = this.sanitizer.bypassSecurityTrustStyle('linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%),url(/assets/hands.jpeg)');

多数民众赞成在消毒部分。

现在在您的html中:

<div [style.background-image]="bgImage">

还有另一种方法可以不使用ngStyle进行消毒:

<div [ngStyle]="{'background-image': 'linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%),url(/assets/hands.jpeg)'}"></div>

希望有帮助!

答案 3 :(得分:0)

使用@Nikhil Chandu回答,但使用管道。

制作类管道:

import { Pipe, PipeTransform } from "@angular/core";
import { DomSanitizer, SafeHtml, SafeStyle } from '@angular/platform-browser';

@Pipe({
    name: 'sanitizeStyle'
})
export class SanitizeStylePipe implements PipeTransform {

    constructor(private _sanitizer:DomSanitizer) {
    }

    transform(v:string):SafeStyle {
        return this._sanitizer.bypassSecurityTrustStyle(v);
    }
}

使用 sanitizeStyle

<div [style.background-image]="'linear-gradient()' | sanitizeStyle">

答案 4 :(得分:-2)

您可以这样做:

<div class="image">
 <image src="url" alt="">
</div>

.css文件:

.image {
  background: linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%);
  background: -webkit-linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%);
  background: -moz-linear-gradient(-225deg, rgba(0,0,0,0.6) 50%, rgba(0,36,61,0.6) 80%);
}