五大CSS 样式继承

2025-06-07 04:15:17      世界杯巴西克罗地亚

效果

一、使用公共样式类@extend继承

适用于小型项目,样式简单,共享样式局部复用时适用。

/* 公共样式 */

.stat-common {

font-family: "Arial";

font-weight: 400;

color: #fff;

text-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);

}

.stat {

.stat-title {

@extend .stat-common; /* 复用公共样式 */

font-size: 25px;

}

.stat-description {

@extend .stat-common; /* 复用公共样式 */

font-size: 40px;

}

}

二、使用父级继承

适用于当子元素都共享同样的公共样式,且都位于同一个父级容器内。

.stat {

font-family: "Arial";

font-weight: 400;

color: #fff;

text-shadow: 0 0 6px rgba(16, 173, 255, 0.91);

.stat-title{

font-size: 25px;

}

.stat-description{

font-size: 40px;

}

}

三、使用 CSS 变量

适用于公共样式需要在多个组件之间共享,甚至跨页面使用。

:root {

--font-family: "Arial";

--font-weight: 400;

--text-color: #fff;

--text-shadow: 0 0 6px rgba(16, 173, 255, 0.91);

}

.stat {

font-family: var(--font-family);

font-weight: var(--font-weight);

color: var(--text-color);

text-shadow: var(--text-shadow);

.stat-title{

font-size: 25px;

}

.stat-description{

font-size: 40px;

}

}

四、使用混合宏(Mixin,适用于 Sass/LESS)

适用于需要高度复用的样式,并且已经使用 Sass/LESS 等 CSS 预处理器。

@mixin stat-common {

font-family: "Arial";

font-weight: 400;

color: #fff;

text-shadow: 0 0 6px rgba(16, 173, 255, 0.91);

}

.stat {

.stat-title{

@include stat-common;

font-size: 25px;

}

.stat-description {

@include stat-common;

font-size: 40px;

}

}

五、使用 Utility 类(BEM 方法论扩展)

适用于公共样式需要在多个类之间自由组合和复用。

.u-stat-common {

font-family: "Arial";

font-weight: 400;

color: #fff;

text-shadow: 0 0 6px rgba(16, 173, 255, 0.91);

}

.stat-title{

ime-mode: u-stat-common;

font-size: 25px;

}

.stat-description{

ime-mode: u-stat-common;

font-size: 40px;

}

若不使用CSS Modules,可以直接使用组合类:

标题

描述

六、总结

方法适用场景优点局限性@extend小型项目,样式简单,共享样式局部复用时适用简洁,直接复用样式耦合,可能导致选择器冗余父级继承简单需求,子元素同属一个父级,所有元素共享公共样式简单直观子元素必须在同一父级内,缺乏灵活性CSS 变量需要动态更新样式(如主题切换)或跨组件复用场景动态可变,跨组件复用,支持主题切换不支持旧版浏览器,复杂样式不易管理混合宏 (Mixin)参数化高复用,样式中有细微差异,或公共样式需要配置参数灵活可控,支持参数样式量多时会增加生成 CSS 的体积Utility 类 (BEM 扩展)组件高度模块化,样式需要跨组件复用高度复用,与结构解耦命名规则需要统一,语义化可能不足

追更:

:root 伪类

是一个 CSS 伪类,它匹配文档的根元素。在 HTML 文档中,根元素就是 。使用 :root 定义的 CSS 变量在整个文档中都是全局可用的。

:root {

--el-color-primary: #fff;

// css自定义属性,以 -- 开头,表示自定义属性

/**

--el-color-primary 被设置为 #fff(白色)

--el-color-primary 的地方都会应用这个颜色值

如果你在其他地方已经定义了 --el-color-primary,这里的定义会覆盖之前的值。

*/

}

绝命律师哪里看?
“从中国到意大利:探索丝袜的主要生产地“