CSS之少用继承,多用组合_经验交流

下面是一段普通的代码:
css: 

复制代码 代码如下:

.box{
border:1px solid #ccc;
font-size:12px;
background:#f1f1f1;
padding:10px;
}

html:

复制代码 代码如下:

<div class="box">this is a gray box</div>

但是这个时候需求增加了,在页面中不仅要有一个灰色的盒子可能还有蓝色的盒子,可能还有绿色,通常我们会说用集成嘛,好我们就做如下更改
css:

复制代码 代码如下:

.box-gray,
.box-green{
border:1px solid #ccc;
font-size:12px;
padding:10px;
}
.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:12px}
.fs-14{font-size:14px}
.pd-10{padding:10px}
.pd-20{padding:20px}

.box{
border:1px 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上引用了几个,但是代码和逻辑都非常清晰,而且非常容易维护,随意组合随意扩展。从上面可以看到“组合”的方式是不言而喻的,但是也不是十全十美的,再拆分组合的时候一定不要过度,不然效果可能适得其反,只有把组合+继承运用的恰到好处才能让我们的代码更加优雅和艺术。

时间: 2024-09-17 04:28:56

CSS之少用继承,多用组合_经验交流的相关文章

CSS样式表常用小技巧收藏_经验交流

· ul 标签在 Mozilla 中默认是有 padding 值的,而在 IE 中只有 margin 有值.  · 同一个的 class 选择符可以在一个文档中重复出现,而 id 选择符却只能出现一次:对一个标签同时使用 class和 id 进行 CSS 定义,如果定义有重复,id 选择符做的定义有效.  · 初学可能会碰到这样一个情况,同样一个标签的属性在 IE 设置成 A 显示是正常的,而在 Mozilla 里必须要设成 B 才能正常显示,或者两个倒过来. 临时解决方法:选择符 {属性名:B

非常不错的关于IE与FireFox的js和css几处不同点[转自星火燎原]_经验交流

在蓝色上看到这篇文章的,感觉作者总结的不错,至少有些偶自己也没有真正的认识过.这些 东西的确是应该好好总结一下的,可惜偶这人比较懒,收藏整理于此,便于自己学习! 1.firefox不能对innerText支持. firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了.如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替. 2.禁止选取网页内容: 在IE中一般用j

css条件注释理论及实践源文件_经验交流

浏览器的条件注释理论,用下面一段例子来解释这个问题 (X)HTML 下面一段代码是测试在微软的IE浏览器下的条件注释语句的效果 <!--[if IE]> <h1>您正在使用IE浏览器</h1> <![endif]--> <!--[if IE 5]> <h1>版本 5</h1> <![endif]--> <!--[if IE 5.0]> <h1>版本 5.0</h1> <

校内网css代码添加背景图片常用代码_经验交流

序号 中文说明 标记语法 备注 1 背景颜色 {background-color:数值} 2 背景图片 {background-image: url(URL)|none} 3 背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y} 4 背景固定 {background-attachment:fixed|scroll} 5 背景定位 {background-position:数值|top|bottom|left|rig

div+css中Class与ID的区别_经验交流

一个Class是用来根据用户定义的标准对一个或多个元素进行定义的.打个比较恰当的比方就是剧本:一个Class可以定义剧本中每个人物的故事线,你可以通过CSS,Javascript等来使用这个类.因此你可以在一个页面上使用class="Frodo" ,class="Gandalf",class="Aragorn"来区分不同的故事线.还有一点非常重要的是你可以在一个文档中使用任意次数的Class.    至于ID,通常用于定义页面上一个仅出现一次的标

淘宝段正淳的css笔记大全第1/4页_经验交流

试想过总结出这几年来写css与xhtml的经验 ,汇总成一片"旷世奇文"分享给大家.无奈寡人年世已高,真是有点力不从心了.于是转念一想,可以用笔记的形式展现,这样就不用担心写不出来了. 现在就来说个淘宝首页上的一个小技巧. 类目之间的横竖线 从很久很久以前开始,类目间的竖线无非都只有三种. 背景图在a标签设置一个padding 用宽1px高不等的背景图来position到右侧.缺点:最后一个还是要用class来隐藏掉背景. 符号在每个a标签之间用"|"符号来填充.缺

CSS 使用Sprites技术实现圆角效果_经验交流

首先来简单说一下什么是Sprites,Sprites是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了.对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题. 第一步:创建我们的 Sprite 用PS等工具合成如图所示的图片(以一个像素的红线来区分) 第二步:编写HTML代码 首先,我们会给容器 div 一个 .roundedBox

用CSS floats创建三栏页布局_经验交流

三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度. 绝大多数网页设计者都熟悉传统的网页设计技术,用这些技术可以生成带有表格.创建固定宽度布局或者"液态"(它可以根据用户浏览器窗口宽度自动伸缩)布局的网页. 现在,我们都开始抛弃基于表格的布局技术,许多网络设计者正在从XHTML标记和CSS格式这一新范例中寻找创建三栏布局的方法.用绝对定位的方法从

Web2.0下XHTML+CSS 设计需要注意的地方小结_经验交流

注意事项: 1.除选择DOCTYPE之外的语句必须使用小写英文字母书写.其中包括 Macromedia Dreamweaver 生成的鼠标动作,如 OnMouseOver 也必须修改成 onmouseover. 2.XHTML语法规要求所有的标识都必须有开始和结束.例如<body>和</body>.<p>和</p>等,对于不成对的标识,要求在标识最后加一个空格,然后跟一个"/".例如<br>写成<br />.<