继承是
css中经常要用到的技术,好处是可以尽量让页面的代码减少重复利用,但是随时项目越来越大,需求的不断变化,css代码就会变得越来越臃肿,后期难以控
制和维护。其实,css代码和普通程序代码在编写的时候有很多的相似之处,下面我们就用试试用组合的方式是不是能更好的解决这个问题。
下面是一段普通的代码:
css:
-
.box
{
-
border:
1
px
solid
#ccc
;
-
font-size:
12
px
;
-
background:
#f1f1f1
;
-
padding:
10
px
;
-
}
html:
-
<
div
class
=
"
box
"
>
this is a gray box
</
div
>
但是这个时候需求增加了,在页面中不仅要有一个灰色的盒子可能还有蓝色的盒子,可能还有绿色,通常我们会说用集成嘛,好我们就做如下更改
css:
-
.box-gray
,
-
.box-green
{
-
border:
1
px
solid
#ccc
;
-
font-size:
12
px
;
-
padding:
10
px
;
-
}
-
.box-gray
{
background:
#f1f1f1
}
-
.box-green
{
background:
#66ff66
}
Html:
-
<
div
class
=
"
box-gray
"
>
this is a gray box
</
div
>
-
<
div
class
=
"
box-green
"
>
this is a green box
</
div
>
但是这个时候需求又有变化了,根与应用的不同,盒子中有些要用到12号字,有些要用到14号字,有些要变局10px有些要20px,估计这个时候你就要头大了,如果要用用继承css代码就会变得异常的复杂,那我们就来试验一下用组合的方式看能不能解决。
css:
-
.fs-12
{
font-size:
12
px
}
-
.fs-14
{
font-size:
14
px
}
-
.pd-10
{
padding:
10
px
}
-
.pd-20
{
padding:
20
px
}
-
-
.box
{
-
border:
1
px
solid
#ccc
;
-
}
-
.box.gray
{
background:
#f1f1f1
}
-
.box.green
{
background:
#66ff66
}
Html
-
<
div
class
=
"
box gray fs-12 pd-20
"
>
this a gray fontsize12px padding20px box
</
div
>
-
<
div
class
=
"
box green fs-14 pd-10
"
>
this a gray fontsize14px padding10px box
</
div
>
-
….
我们看一些虽然
在class上引用了几个,但是代码和逻辑都非常清晰,而且非常容易维护,随意组合随意扩展。从上面可以看到“组合”的方式是不言而喻的,但是也不是十全
十美的,再拆分组合的时候一定不要过度,不然效果可能适得其反,只有把组合+继承运用的恰到好处才能让我们的代码更加优雅和艺术。
分享到:
相关推荐
继承是 css中经常要用到的技术,好处是可以尽量让页面的代码减少重复利用,但是随时项目...其实,css代码和普通程序代码在编写的时候有很多的相似之处,下面我们就用试试用组合的方式是不是能更好的解决这个问题。
模块化设计的CSS遵循“少用继承,多用组合”的原则,以避免复杂的CSS选择器和优先级问题。 CSS模块化可以从两个层面来理解:一是全局模块化,二是视觉模块化。 全局模块化是对整个网站的所有CSS样式进行模块化的...
4.4.3 挂多个class还是新建class——多用组合,少用继承 4.4.4 如何处理上下margin 4.5 低权重原则——避免滥用子选择器 4.6 CSS sprite 4.7 CSS的常见问题 4.7.1 CSS的编码风格 4.7.2 id和class 4.7.3 CSS ...
JavaScript,一种广泛应用于互联网的脚本语言,是前端开发的核心技术之一。它的主要功能是为网页添加交互性,实现动态效果,以及与用户进行实时沟通。JavaScript 的语法基础源自C++和Java,但设计思想更加灵活,易于...
- **分组**:使用圆括号 `()` 将多个字符组合起来。 - **捕获**:分组内的内容会被保存,以便后续使用。 - **零宽断言**:`(?=)`(正向肯定预查)、`(?!)`(正向否定预查)、`(?)`(反向肯定预查)、`(?<!)`(反向...