如何使用 ngStyle (angular2) 添加背景图像?

IT技术 javascript html css angular
2021-02-27 12:07:17

如何使用 ngStyle 添加背景图片?我的代码不起作用:

this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';

<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
6个回答

我想你可以试试这个:

<div [ngStyle]="{'background-image': 'url(' + photo + ')'}"></div>

看你的ngStyle表情,我猜你漏掉了一些“'”......

测试。使用 RC.1。根据他们在此处所说的内容,RC.2 和更新版本不需要它
2021-04-19 12:07:17
我更喜欢this.photo = `url(${photo})`; [style.background-image]='photo'
2021-04-26 12:07:17
请记住,图片 URL(图片名称)中的空格可能会导致无声[ngStyle][style.background-image]渲染失败。
2021-04-30 12:07:17
这很好。我曾经使用过它并且效果很好。不错👍
2021-05-01 12:07:17

你也可以试试这个:

[style.background-image]="'url(' + photo + ')'"

如何使用这种方法进行条件样式设置?假设我想检查照片是否不为空然后只应用这种样式?
2021-04-19 12:07:17
@redfox05 我想 ngStyle 是一种语法糖。主要区别在于 ngStyle 允许您应用多个 css 规则,但 [style.<css_prop>] 只允许应用一个。下一个是等价的: <div [ngStyle]="{ color: 'red', 'font-size': '22px' }">First</div><div [style.color]="'red'" [style.font-size.px]="22">Second</div>
2021-04-30 12:07:17
我已经使用了这种 [style.css] 方法,但我无法让 [style.background-repeat] 工作,你知道为什么吗?
2021-04-30 12:07:17
import {BrowserModule, DomSanitizer} from '@angular/platform-browser'

  constructor(private sanitizer:DomSanitizer) {
    this.name = 'Angular!'
    this.backgroundImg = sanitizer.bypassSecurityTrustStyle('url(http://www.freephotos.se/images/photos_medium/white-flower-4.jpg)');
  }
<div [style.background-image]="backgroundImg"></div>

也可以看看

看起来您的样式已被清理,要绕过它,请尝试使用 DomSanitizer 中的 bypassSecurityTrustStyle 方法。

import { Component, OnInit, Input } from '@angular/core';
import { DomSanitizer, SafeStyle } from '@angular/platform-browser';

@Component({
  selector: 'my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})

export class MyComponent implements OnInit {

  public backgroundImg: SafeStyle;
  @Input() myObject: any;

  constructor(private sanitizer: DomSanitizer) {}

  ngOnInit() {
     this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle('url(' + this.myObject.ImageUrl + ')');
  }

}
<div *ngIf="backgroundImg.length > 0" [style.background-image]="backgroundImg"></div>

改用

[ngStyle]="{'background-image':' url(' + instagram?.image + ')'}"