`
wxclover
  • 浏览: 24810 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

css 继承与组合

    博客分类:
  • Css
阅读更多
继承是 css中经常要用到的技术,好处是可以尽量让页面的代码减少重复利用,但是随时项目越来越大,需求的不断变化,css代码就会变得越来越臃肿,后期难以控制和维护。其实,css代码和普通程序代码在编写的时候有很多的相似之处,下面我们就用试试用组合的方式是不是能更好的解决这个问题。

下面是一段普通的代码:

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


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

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

   1. .box-gray,
   2. .box-green{
   3.   border:1px solid #ccc;
   4.   font-size:12px;
   5.   padding:10px;
   6. }
   7. .box-gray{background:#f1f1f1}
   8. .box-green{background:#66ff66}


   1. <div class="box-gray">this is  a gray box</div>
   2. <div class="box-green">this is a green box</div>

但是这个时候需求又有变化了,根与应用的不同,盒子中有些要用到12号字,有些要用到14号字,有些要变局10px有些要20px,估计这个时候你就要头大了,如果要用用继承css代码就会变得异常的复杂,那我们就来试验一下用组合的方式看能不能解决。

   1. .fs-12{font-size:12px}
   2. .fs-14{font-size:14px}
   3. .pd-10{padding:10px}
   4. .pd-20{padding:20px}
   5.  
   6. .box{
   7.   border:1px solid #ccc;
   8. }
   9. .box.gray{background:#f1f1f1}
  10. .box.green{background:#66ff66}


   1. <div class="box gray fs-12 pd-20">this a gray fontsize12px padding20px box</div>
   2. <div class="box green fs-14 pd-10">this a gray fontsize14px padding10px box</div>
   3. ….

我们看一些虽然在class上引用了几个,但是代码和逻辑都非常清晰,而且非常容易维护,随意组合随意扩展。从上面可以看到“组合”的方式是不言而喻的,但是也不是十全十美的,再拆分组合的时候一定不要过度,不然效果可能适得其反,只有把组合+继承运用的恰到好处才能让我们的代码更加优雅和艺术。
分享到:
评论
1 楼 ah孙玉红 2011-08-25  
我就是搞不清楚,变为变得离奇哈

相关推荐

    CSS中的继承关系

    ### CSS继承的定义 继承是CSS中一个核心概念,它允许某些样式属性从父元素自动传递到其子元素或更深层的后代元素。这意味着,当一个元素被赋予某种样式时,该样式也会自动应用于其所有未明确指定样式的后代元素,...

    CSS基础与提高的笔记

    ### CSS基础与提高的核心知识点 #### 1. CSS选择器 - **定义**: CSS选择器是一种语法工具,用于选择要应用样式的HTML元素。 - **种类**: - **基本选择器**: 包括类型选择器(根据标签名选择元素)、类选择器(通过...

    css教程 css_源代码

    important`、过度使用ID选择器),正确使用层叠和继承,减少网络请求(如使用CSS Sprites、合并CSS文件)等都是提升CSS性能的关键。 综上所述,这个"css教程 css_源代码"压缩包可能包含了上述各个方面的实例和代码...

    CSS样式表中继承关系的空格与不空格

    在CSS样式表中,元素选择器的组合方式对于理解和应用CSS继承关系至关重要。继承是CSS的一个核心特性,它允许子元素自动获得父元素的某些样式属性。了解如何正确使用空格和不空格来组合选择器,可以帮助我们更有效地...

    DIV+CSS网站样例

    7. **CSS样式继承与覆盖**:理解样式如何从父元素继承到子元素,以及如何使用优先级规则覆盖样式。 8. **CSS动画与过渡**:通过`@keyframes`规则和`transition`属性,实现元素动态效果。 9. **浏览器兼容性**:...

    CSS权威指南 第3版

    5. CSS的继承与层叠:讲解CSS属性的继承规则,如何控制样式在不同元素上的应用优先级以及解决样式冲突。 6. 响应式设计:介绍媒体查询(Media Queries)的使用,演示如何创建适应不同屏幕尺寸和设备的响应式网页。 ...

    CSS2 中文手册

    CSS2的一个核心特性是样式继承,子元素可以从父元素继承某些样式,但并非所有属性都可继承。此外,层叠机制决定了当多个样式冲突时如何选择应用哪个,依据优先级确定,如内联样式 &gt; ID选择器 &gt; 类选择器 &gt; 类型选择...

    css样式

    3. **层叠与继承**: CSS的“层叠”意味着当多个规则应用于同一个元素时,会根据规则的重要性和来源确定最终样式。继承则是子元素从父元素继承某些样式,但并非所有属性都可继承,如`margin`和`padding`。 4. **盒...

    CSS优先级总结.pdf

    CSS继承指的是子元素继承父元素的样式规则。例如,如果我们定义了一个样式规则为`.class1 { font-size: 18px; }`,那么所有具有class为"class1"的元素都将继承这个样式规则。 在本文档中,我们还可以看到一些CSS的...

    CSS与DHTML精髓

    3. **继承与层叠**:CSS具有继承特性,子元素会继承父元素的一些样式。同时,多个样式规则可以层叠,优先级高的规则会覆盖低优先级的规则。 4. **媒体查询**:CSS3引入了媒体查询,可以根据设备的特性,如屏幕尺寸、...

    css学习手册

    2. 层叠与继承:CSS的“层叠”特性使得多个样式规则可以同时作用于一个元素,根据优先级决定最终效果。继承则是子元素可以从父元素继承某些属性,如文本颜色。 3. 盒模型:理解盒模型是CSS布局的关键,包括内容...

    CSS的基本语法(示例代码)

    CSS中的继承特性允许子元素从父元素继承样式,但并非所有属性都能被继承,比如`border`和`background`。层叠机制则处理样式冲突,使得更具体的样式覆盖更通用的样式。 6. **选择器组合** 可以通过组合选择器来更...

    css2.0中文手册+DIV+CSS布局大全

    6. **层叠与继承**:解释了CSS的层叠规则,如何处理样式冲突,以及属性的继承特性,使得子元素可以继承父元素的某些样式。 7. **媒体查询**:虽然CSS2.0的媒体查询功能相对较弱,但仍然介绍了如何针对不同设备和...

    Core CSS

    - **层叠与继承**:CSS的“级联”意味着样式可以来自多个源,而“继承”则允许子元素继承父元素的一些样式。 2. **CSS布局** - **流体布局**:使用百分比单位实现页面元素在不同屏幕尺寸下自适应。 - **Flexbox*...

    html之css样式

    七、CSS层叠与继承 CSS的“层叠”特性意味着不同来源的样式会按照优先级进行合并。同时,子元素可以继承父元素的某些样式,简化代码编写。 综上所述,HTML与CSS的结合使得网页设计既美观又灵活。掌握CSS的各种技巧...

    最全面的css样式学习文件

    3. **层叠与继承**:CSS的“C”代表层叠,这意味着多个样式可以应用到同一个元素,且有优先级。继承则是子元素自动继承父元素的一些样式。 4. **盒模型**:理解盒模型是CSS布局的关键。它包括content、padding、...

    css+div模板技术

    3. 层叠和继承:CSS的层叠规则使得样式冲突时可以有优先级,而继承机制则可以让子元素自动继承父元素的部分样式,保持设计的一致性。 4. 面向对象设计:Div元素可以看作是页面上的“对象”,通过CSS可以对其进行封装...

    div+css源码

    "div+css源码"是网页布局和设计中常见的技术组合,主要应用于前端开发领域。Div(Division)是HTML中的一个容器元素,用于组织和分隔页面内容,而CSS(Cascading Style Sheets)则是样式表语言,用来描述HTML或XML...

Global site tag (gtag.js) - Google Analytics