css - 在 ionic 4+ 中设置 ion-toolbar shadow dom 的 .toolbar-container 样式

标签 css ionic-framework dom sass ionic4

我试过很多方法。但没有工作。 期待这样的风格

ion-toolbar {
    contain: none;
    .toolbar-container {
        overflow: visible;  // not working
        contain: none;  // not working
    }
}

有什么解决办法吗?

最佳答案

我使用新指令解决了这个问题:

ng generate directive allow-overflow

import { Directive, ElementRef } from '@angular/core';

@Directive({
  selector: '[appAllowOverflow]'
})
export class AllowOverflowDirective {

  constructor(el: ElementRef)
  {
    let toolbar : HTMLElement = el.nativeElement;
    setTimeout(() => {
      let container : HTMLElement = toolbar.shadowRoot.querySelector(".toolbar-container");
      if (container)
      {
        // (as any) is just to suppress a warning
        (container.style as any).contain = "none";
        container.style.overflow = "visible";
      }
    });
  }
}

然后我添加了 <ion-toolbar>像这样:

<ion-toolbar appAllowOverflow>
    ...
</ion-toolbar>

我还为 <ion-toolbar> 添加了这个 CSS 规则:

ion-toolbar[appAllowOverflow]
{
  contain: none;
}

关于css - 在 ionic 4+ 中设置 ion-toolbar shadow dom 的 .toolbar-container 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65415518/

相关文章:

javascript - Ionic 框架 -/audio 目录被跳过并且不存在于构建中

javascript - 当元素在文本周围插入然后被删除时,HTML 中的文本会在 DOM 中 split /格式错误(但保留内部文本)

JavaScript:构造函数可以创建 documentElement 对象吗?

javascript - 是否可以访问网页未解析的 CSS 文本?

css - Vim:将 CSS 从单行重新格式化为多行

html - 为什么带有position:absolute的元素放在::after伪元素后面

javascript - Morris.js - 如何将数据标签添加到条形图

html - Ionic 3 选择选项样式 css

html - 响应式地将 SVG 放置在父级中

javascript - Ionic Android 应用程序启动后出现黑屏