如何设置 Angular 4 背景图片?

IT技术 javascript angular
2021-03-14 06:16:31

我正在尝试以下几行来设置背景图像。但它不起作用。在我的应用程序中不断设置背景图像的方式是什么。

应用程序组件.html

<div [ngStyle]="{'background' : 'url(./images/trls.jpg)'}">
    <router-outlet></router-outlet>
    <alert></alert>
</div>
6个回答

您可以使用ngStyle为 div 设置背景

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

或者您也可以使用内置的背景样式:

<div [style.background-image]="'url(/images/' + trls.img + ')'"></div>
@AkashAgrawal 使用[style.background-image]以避免覆盖已经设置的 css 属性不是更好吗
2021-04-23 06:16:31
你好。我有完全相同的问题,但这里的答案对我的情况没有帮助。
2021-04-26 06:16:31
@AkshayRaut,你把图片放在哪里了?可以分享完整的路径吗?
2021-05-04 06:16:31
您忘记在第一个解决方案中添加关闭花括号。它应该是 <div [ngStyle]="{background: 'url(./images/' + trls.img + ')'}"></div> 感谢您的提示。
2021-05-06 06:16:31
更新了答案@BiswajitPanday。谢谢!
2021-05-14 06:16:31

这对我有用:

把它放在你的标记中:

<div class="panel panel-default" [ngStyle]="{'background-image': getUrl()}">

然后在组件中:

getUrl()
{
  return "url('http://estringsoftware.com/wp-content/uploads/2017/07/estring-header-lowsat.jpg')";
}
如果你的 url 和我的一样有任何空格,你可能还想做一个 <your url string>.replace(/\s/g, "%20") 。
2021-04-22 06:16:31

以下答案适用于角度 4/5。

在 app.component.css 中

.image{
     height:40em; background-size:cover; width:auto;
     background-image:url('copied image address');
     background-position:50% 50%;
   }

同样在 app.component.html 中简单地添加如下

<div class="image">
Your content
</div>

这样我就可以在 Angular 4/5 中设置背景图像。

我完全同意!我只是说以下在角度上对我有用:)
2021-04-23 06:16:31
这不是 Angular,它只是普通的 HTML 和 CSS
2021-05-01 06:16:31
@SachinHatikankan ,此解决方案不适用于从 api 放置图像 url。这只是简单的 html&&css 解决方案。例如,要编写一些以角度将获取的 url 放入背景图像的内容,可以使用 [ngStyle]
2021-05-12 06:16:31
整个互联网上唯一对我有用的代码。谢谢你一百万次!
2021-05-13 06:16:31
这不是答案:他问的是如何通过 js 动态更改复制的图像地址值。
2021-05-15 06:16:31

如果您计划在整个项目中大量使用背景图像,您可能会发现创建一个非常简单的自定义管道来为您创建 url 很有用。

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'asUrl'
})
export class BackgroundUrlPipe implements PipeTransform {

  transform(value: string): string {
    return `url(./images/${value})`
  }

}

然后您可以添加没有所有字符串连接的背景图像。

<div [ngStyle]="{ background: trls.img | asUrl }"></div>

在 HTML 中

<div [style.background]="background"></div>

在typescript中

this.background= 
this.sanitization.bypassSecurityTrustStyle(`url(${this.section.backgroundSrc}) no-repeat`);

一个有效的解决方案。

在 Angular 4 中动态设置背景图像的推荐方法是什么