我可以根据 class 使用的元素向 SCSS class 添加样式吗?
Can I add a style to an SCSS class based on the element the class in used on?
在我的 Angular 13 项目中,我有一个 class 用于两种类型的元素:<a>
标签和 <mat-panel-title>
标签。我的问题是,我能否为此 class 添加样式,并以仅适用于 a
标签而不适用于其他标签的方式进行添加。
这是scss代码:
.container__menu--item {
display: flex;
align-items: center;
text-decoration: none;
span {
padding-inline-start: 8px;
}
}
这是 html:
<a class="container__menu--item" href="#">
<mat-icon>home</mat-icon>
<span>{{ 'navbar.main_page' | transloco }}</span>
</a>
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title class="container__menu--item">
<mat-icon svgIcon="services"></mat-icon>
<span>{{ 'navbar.services' | transloco }}</span>
</mat-panel-title>
</mat-expansion-panel-header>
<ul>
<li>
{{ 'navbar.services' | transloco }}
</li>
<li>
{{ 'navbar.services' | transloco }}
</li>
</ul>
</mat-expansion-panel>
</mat-accordion>
如果您只想将样式应用于 <a>
和 class container__menu--item
,您可以简单地组合选择器,例如 a.container__menu--item
:
a.container__menu--item {
... /* your styles */
}
你可以做任何一个
.container__menu--item {
<shared style>
a {
<specific style>
}
}
或者对不同的元素使用两个单独的 类,但本质上是使用 @extend
将一个的样式复制到另一个。例如,这看起来像
.container__menu--link {
@extend .container__menu--item
}
其中 container__menu--link
应用于 a 标签,container__menu--item
应用于 mat-panel-title。
在我的 Angular 13 项目中,我有一个 class 用于两种类型的元素:<a>
标签和 <mat-panel-title>
标签。我的问题是,我能否为此 class 添加样式,并以仅适用于 a
标签而不适用于其他标签的方式进行添加。
这是scss代码:
.container__menu--item {
display: flex;
align-items: center;
text-decoration: none;
span {
padding-inline-start: 8px;
}
}
这是 html:
<a class="container__menu--item" href="#">
<mat-icon>home</mat-icon>
<span>{{ 'navbar.main_page' | transloco }}</span>
</a>
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title class="container__menu--item">
<mat-icon svgIcon="services"></mat-icon>
<span>{{ 'navbar.services' | transloco }}</span>
</mat-panel-title>
</mat-expansion-panel-header>
<ul>
<li>
{{ 'navbar.services' | transloco }}
</li>
<li>
{{ 'navbar.services' | transloco }}
</li>
</ul>
</mat-expansion-panel>
</mat-accordion>
如果您只想将样式应用于 <a>
和 class container__menu--item
,您可以简单地组合选择器,例如 a.container__menu--item
:
a.container__menu--item {
... /* your styles */
}
你可以做任何一个
.container__menu--item {
<shared style>
a {
<specific style>
}
}
或者对不同的元素使用两个单独的 类,但本质上是使用 @extend
将一个的样式复制到另一个。例如,这看起来像
.container__menu--link {
@extend .container__menu--item
}
其中 container__menu--link
应用于 a 标签,container__menu--item
应用于 mat-panel-title。