上下文: 我在一个屏幕上工作,我需要使用一个垫子抽屉,垫子抽屉将显示一个自定义组件.但是,定制组件嵌套在一个div中(使用class="mat-draer-ner-tainer"),并且这个div是由mat-draer组件自动添加的. 这是我的父屏幕的html组件的 struct (我从这里打开抽屉)

<mat-drawer>
    <custom-component-directive></custom-component-directive>
</mat-drawer>

在按Angular 添加div之后(如Chrome dev工具中所示)

<mat-drawer>
    <div class="mat-drawer-inner-container">
        <custom-component-directive></custom-component-directive>
    </div>
</mat-drawer>

问题是,div还为整个组件添加了一个滚动条(滚动条没有用,因为它不能根据表中的条目数量移动,并且无论条目的数量如何都保持不变),我已经从它内部向定制组件的table添加了我自己的虚拟滚动条.这最终会添加两个滚动条.

The whole thing ends up looking like this: Real content not disclosed in the image (markers applied) Real content not disclosed in the image (markers applied)

在使用Chrome开发工具进行实验后,我发现,如果我将overflow-y: hidden样式应用于生成的.mat-drawer-inner-container div,滚动条就会像预期的那样隐藏起来.

在实际组件中实际应用这一点.到目前为止,我试着做了以下几件事,但都没有成功:

  1. try 使用链接到parent组件的css访问mat-drawer-inner-container
.mat-drawer .mat-drawer-inner-container {
    overflow-y: hidden;
}
  1. try 使用自定义组件的CSS中的:host伪 Select 器访问该自定义组件指令的父元素
:host .mat-drawer-inner-container {
     overflow-y: hidden;
}
  1. 我try 将样式作为!important传递,以使其在第1部分和第2部分中都优先.
  2. 甚至使用内联样式作为绝望的最后手段.

我是一个CSS和造型新手一般,感谢任何帮助和建议.

推荐答案

有几个组件"即时"创建HTMLElement,因此当我们将.css添加到Components.css时,不能更改.css.css应该是"全局的".通常,我们在"style es.css"中添加.css,并带有"More Special"标签.

这就是为什么大多数material 的组件都有一个方法来指示"类",可以是面板类,也可以简单地将类添加到组件中.

例如:

<!--see the "example-container" class -->
<mat-drawer-container class="example-container">
  <mat-drawer mode="side" opened>Drawer content</mat-drawer>
  <mat-drawer-content>Main content</mat-drawer-content>
</mat-drawer-container>

styles.css中(或以所有应用程序的任何常规样式)

/*see the ".example-container<space>"*/
.example-container .mat-drawer .mat-drawer-inner-container {
  border:1px solid red;
  box-sizing: border-box;
  overflow-y: hidden;
}

NOTE: If we don't use the "more specific" .css, that's: only add the .css in styles.css this affect to all the mat-drawers in our application. This is the correct approach when we want to change the appearance to, 例如: all the mat-datepicker.

Css相关问答推荐

无法瞄准元素

需要Angular material 下拉面板有向下和向上箭头按钮

InertiaJS - Vue - Laravel:Using CSS Files

将CSS栅格行高设置为其余视口高度

如何使用CSS滚动驱动动画重复时间轴范围

如何使用Bootstrap将图像水平对齐,使其顶部和底部位于同一水平线上?

如何使用混合混合模式更改动画背景上的文本 colored颜色

两列网格中左列第一个文本正下方的按钮

为什么删除 AnimatePresence framer.div 时会出现轻微卡顿?

如何使用 :has() 父 Select 器 Select 父元素的子元素,在父元素和子元素之间没有中间层的情况下?

如何让我的注册按钮在我的网站上像球一样 skip ?

如果父项的不透明度小于 1,则背景过滤器不适用

CSS 在具有多个背景图像的元素上过滤一个背景图像

使用之前和之后为锚标签添加画笔描边效果

在 中制作等宽的列

如何制作一个div来包装两个浮动div?

重置子元素的不透明度 - Maple Browser (Samsung TV App)

有没有办法让字段集的宽度与它们中的控件一样宽?

可见性:隐藏 vs 显示:无 vs 不透明度:0

使用 CSS 使 span 不可点击