【问题标题】:Edit shadow DOM in ionic 4 - ion-slides在 ionic 4 中编辑 shadow DOM - ion-slides
【发布时间】:2020-08-07 19:38:53
【问题描述】:

我有一个 ionic 4 slides 组件,我想在其中更改分页项目符号的样式

<ion-slides class="lyt-carousel" pager="true" [options]="slideOpts">
      <ion-slide>
        <h1>Slide 1</h1>
      </ion-slide>
      <ion-slide>
        <h1>Slide 2</h1>
      </ion-slide>
      <ion-slide>
        <h1>Slide 3</h1>
      </ion-slide>
    </ion-slides>

我可以通过以下代码更改项目符号的颜色(代码 #1)bt 我想添加更多自定义项,例如边框颜色、填充等,这是目前我无法做到的(代码#2)

代码 #1

.lyt-carousel {
  --bullet-background-active: red;
  --bullet-background: white;
  }

代码 #2

ion-slides {
  .swiper-pagination-bullets {

    margin-top: 15px;
    .swiper-pagination-bullet {
      border: 5px solid blue;
    }
  }
}

【问题讨论】:

    标签: html css angular ionic-framework ionic4


    【解决方案1】:

    虽然::ng-deepdeprecated。看看here

    :host ::ng-deep .swiper-pagination-bullets {
    
      margin-top: 15px;
    
      .swiper-pagination-bullet {
        border: 5px solid blue;
      }
    }
    

    我会推荐一个更好的方法来实现你自己的风格是从选项中设置它。这里是API 参考,供进一步需要

    slideOpts = {
      initialSlide: 0,
      speed: 400,
      pagination: {
        el: '.swiper-pagination',
        type: 'bullets',
        renderBullet: (index, className) => {
          return '<span style="border: 5px solid blue;"class="' + className + '"></span>';
        }
      }
    };
    

    【讨论】:

    • 实际上不需要 ::ng-deep ,因为它已被贬低。 View Encapsulation 是一个角度属性,使用它我可以达到预期的结果link。另一个网站link 在那里他们解释了影子 DOM 和插槽的概念。
    • 是的。我在我的评论中附加了一个链接,其中包含您刚刚分享的相同链接。无论如何,我确实指出,我建议实现这一目标的更好方法是从 options 设置它。
    猜你喜欢
    • 2021-04-01
    • 2019-11-09
    • 2023-03-24
    • 1970-01-01
    • 2019-10-10
    • 2019-12-19
    • 2020-03-03
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多