如何更改 CSS 用于警报消息组件的无法访问的子 class?
How to alter CSS for an inaccessible child class for an alert message component?
我创建了一个具有最大字符数限制的文本区域元素。当达到限制时,它应该显示一条错误消息。我正在使用一个名为 lib-error-alert-message
的预先存在的组件。这就是 HTML 代码的样子 -
<textarea class="my-text" rows="10" maxlength="500" [formControl]="textControl"> </textarea>
<lib-error-alert-message class="alert" *ngIf="(text | async) == 50" [alertMsg]="limitAlertMessage">
</lib-error-alert-message>
我在其他地方使用过这个组件并且工作正常,但是,在这个特定页面中,该组件有一个名为“msgs”的内部 class,它的左边距 属性 -3rem.
这导致错误警报和文本区域方向歪斜。
在检查元素时,如果我取消选中 margin-left 属性 那么它看起来是正确的。
我试图为 lib-error-alert-message 创建一个 class“警报”,并为此使用了以下代码 -
.alert {
margin-left: 0 !important;
width: fit-content;
}
但这不会覆盖内部 class“消息”的固有边距 属性。我将如何更改内部 class“消息”(我无法访问)的 属性 以达到我的目的?
将此样式添加到您的全局 styles.scss 文件中。它选择 div with class msgs inside lib-error-alert-message element:
lib-error-alert-message div.msgs {
margin-left: 0 !important;
width: fit-content;
}
您不能直接访问库组件是对的,但好消息是全局 styles.scss 应用于所有 dom 元素。
使用 Angular 深度选择器 - 它可用于定位外部库的内部组件
:host ::ng-deep {
lib-error-alert-message div.msgs {
margin-left: 0;
width: fit-content;
}
}
我创建了一个具有最大字符数限制的文本区域元素。当达到限制时,它应该显示一条错误消息。我正在使用一个名为 lib-error-alert-message
的预先存在的组件。这就是 HTML 代码的样子 -
<textarea class="my-text" rows="10" maxlength="500" [formControl]="textControl"> </textarea>
<lib-error-alert-message class="alert" *ngIf="(text | async) == 50" [alertMsg]="limitAlertMessage">
</lib-error-alert-message>
我在其他地方使用过这个组件并且工作正常,但是,在这个特定页面中,该组件有一个名为“msgs”的内部 class,它的左边距 属性 -3rem.
这导致错误警报和文本区域方向歪斜。 在检查元素时,如果我取消选中 margin-left 属性 那么它看起来是正确的。 我试图为 lib-error-alert-message 创建一个 class“警报”,并为此使用了以下代码 -
.alert {
margin-left: 0 !important;
width: fit-content;
}
但这不会覆盖内部 class“消息”的固有边距 属性。我将如何更改内部 class“消息”(我无法访问)的 属性 以达到我的目的?
将此样式添加到您的全局 styles.scss 文件中。它选择 div with class msgs inside lib-error-alert-message element:
lib-error-alert-message div.msgs {
margin-left: 0 !important;
width: fit-content;
}
您不能直接访问库组件是对的,但好消息是全局 styles.scss 应用于所有 dom 元素。
使用 Angular 深度选择器 - 它可用于定位外部库的内部组件
:host ::ng-deep {
lib-error-alert-message div.msgs {
margin-left: 0;
width: fit-content;
}
}