我正在使用ng-bootstrap创建旋转木马,我想要将箭头颜色或图像从白色更改为黑色,因为我有白色背景图像并且它们是不可见的。我的问题是我无法获得跨度,我不知道如何在scss中调用它。我正在使用bootstrap 4和ng-bootstrap for angular https://ng-bootstrap.github.io/#/components/carousel/examples。当我在控制台中更改图像URL时,它可以工作。我试图直接获得箭头但没有任何反应。
我的代码:
<div class="col-lg-6">
<div class="imageCarousel">
<ng-container *ngIf="product.images">
<ngb-carousel>
<ng-template id="imageSlide" ngbSlide *ngFor="let image of product.images | slice: 1">
<img [src]="image">
</ng-template>
</ngb-carousel>
</ng-container>
</div>
</div>
SCSS:
.imageCarousel {
max-height: 500px;
text-align: center;
color: $color2;
.carousel .slide {
width: 50px;
height: 50px;
background-image: url("https://storage.googleapis.com/staging.pc-shop-260af.appspot.com/ic_keyboard_arrow_right_black_24px.svg");
}
img {
// border: 2px solid blue;
max-width: 100%;
max-height: 400px;
}
}
答案 0 :(得分:4)
ngb-carousel使用SVG图像作为控件,您可以使用自己的prev和next按钮覆盖它:
.carousel-control-prev-icon{
background-image: url('https://apufpel.com.br/assets/img/seta_prim.png')
}
.carousel-control-next-icon{
background-image: url('https://apufpel.com.br/assets/img/seta_ult.png')
}
答案 1 :(得分:2)
仅在将封装设置为ViewEncapsulation时,Eduardo给出的答案才有效(无),这可能会对CSS的其他方面产生意想不到的副作用。
相反,:: ng-deep伪类可用于定位有问题的特定CSS。在您的scss文件中,使用以下命令:
::ng-deep .carousel-control-prev-icon{
background-image: url('your-replacement.svg');
}
::ng-deep .carousel-control-next-icon{
background-image: url('your-replacement.svg');
}
答案 2 :(得分:1)
是的,它已解决,但有时您需要将视图封装设置为None
@Component({
selector: "app-builder",
templateUrl: "./builder.component.html",
styleUrls: ["./builder.component.css"],
encapsulation: ViewEncapsulation.None
})
答案 3 :(得分:1)
首先,我建议升级到ng-bootstrap v6 +,它将ngb组件ViewEncapsulation正确设置为None,从而可以通过全局CSS或通过未封装的组件CSS进行设置。请参阅(https://github.com/ng-bootstrap/ng-bootstrap/issues/3479)。
第二,只需重新设置SVG并将 fill 属性更改为所需的颜色,即可覆盖SVG。
.carousel-control-next-icon {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='rgb(50, 54, 57)' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e") !important;
}
或者,如果您只是想获得更多对比度,则可以反转颜色:
.carousel-control-next-icon,
.carousel-control-prev-icon {
filter: invert(1);
}
在主机组件上设置封装:ViewEncapsulation.None 不是最佳做法。明智的做法是对项目styles.scss(或在angular.json中指定为全局样式文件的任何内容)进行这些输入更改
答案 4 :(得分:0)