广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >CSS中的层分离编程示例分析
  • 463
分享到

CSS中的层分离编程示例分析

2024-04-02 19:04:59 463人浏览 薄情痞子
摘要

本篇文章为大家展示了CSS中的层分离编程示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。随着CSS的发展,使用CSS有语义化的命名约定和CSS层的分离,将有助

本篇文章为大家展示了CSS中的层分离编程示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

随着CSS的发展,使用CSS有语义化的命名约定和CSS层的分离,将有助于它的可扩展性,性能的提高和代码的组织管理。

在我前面的文章中讨论很多关于CSS的问题都可以通过使用一个适当的CSS策略来避免。在这篇文章里,我将着重于讨论使用一种方法或者一个命名规则所带来的好处。

这里有很多可供使用的前端方法和命名规则,每个都有自己的优缺点。在几乎所有的案例中CSS被分割成更易于管理的代码“块”。CSS的这种分割方式定义了每一种方法。
命名规则

一个可靠命名规则的重要性是不可忽视的。就像组织结构带来的好处一样,这里有很多性能上的优势让你能够坚持地,有责任感地去命名你的选择器。

正确使用任何规则将会在大型项目减少与CSS相关的忧虑而发挥关键的作用
BEM

最流行的命名规则之一就是BEM(block:块,Element:元素,Modifier:修饰符)。通过给每个元素添加它的父级block模块作为前缀,使得目标的安全性变得更加简单了。BEM还有助于消除页面和body类对嵌套或者附加样式依赖。

  1. .block {}   

  2. .block__element {}   

  3. .block--modifier {}  

上面的例子展示了一个BEM项目的类结构,下划线(__)被用来区分元素,而用连字符(--)是用来修饰元素的。下面是一个现实世界的例子...

  1. .product-details {}   

  2. .product-details__price {}   

  3. .product-details__price--sale {}  

BEM中的一个圈套是引诱在修饰部分中添加多种用途的样式类。大的,小的,绿色的或者醒目的等修饰选择器被提出引入到标记中,这在不久的将来将会发生改变。

  1. .product-details {}   

  2. .product-details__title {}   

  3. .product-details__title--small {}  

像大多数的多用途类一样,在项目一开始的时候意图很明显,但是当一个设计改变的时候常常会导致矛盾的CSS。
SUIT

Suit起源于BEM,但是它对组件名使用驼峰式和连字号把组件从他们的修饰和子孙后代中区分出来。

 .u-utility {}    

.ComponentName {}    

.ComponentName--modifierName {}    

.ComponentName-descendantName {}    

.ComponentName.is-someState {}   

通过消除潜在的混乱连字符号连接元素名来使得选择器的可读性更强。

  1. .ProductDetails {}   

  2. .ProductDetails-price {}   

  3. .ProductDetails-title--sale {}  

加前缀

如果你不想使用如此严格或者复杂的命名规则,给每一个选择器加前缀同样可以达到这样的效果。

  1. .s-product-details {}   

  2. .t-product-details {}   

  3. .js-product-details {}  

这种方法使得它很容易的在表象类中辨别结构类但是只是简单的写和理解。在上面的例子中的结构属性将会被应用到s-product-details选择器中。主题属性将应用于t-product-details选择器。

元素可以以同样的方式定义或者使用基类和修饰类...

XML/html Code复制内容到剪贴板

  1. <button class="button">Button</button>  

  2. <button class="button button-checkout">Checkout Button</button>  

  3. <button class="button button-search">Search Button</button>  

从一方面说明在Sass partials中加前缀对于当在文件夹中删除必要的存储partials时对一个很大的项目文件定位是很有帮助的。这种方法被使用于ITCSS中。

你选择什么都没有问题,重要的是记住你的选择,并将他们应用到整个项目中。
方法

随着命名规则的增加,CSS变得更安全,更高效了。由于较小的CSS文件和更少的权重问题,所需要的嵌套选择器将会减少。

尽管有这些改进你仍可以像下面的这个例子使用复制的CSS来完成样式。

  1. .product-details__title {   

  2.     font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;   

  3.     text-transfORM: uppercase;   

  4.     color: #333;   

  5. }   

  6. .latest-news__title {   

  7.    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;   

  8.    text-transform: uppercase;   

  9.    color: #FF0000;   

  10. }  

这就是前端的方法的由来,将你的CSS划分层次会有助于防止重复的样式和大分组的选择器。共同或者基础的样式被分开定义,而更具体或者修饰的样式被添加到继承样式的顶部。
OOCSS

面向对象CSS有两个主要的原则第一是表现与结构分离,第二是容器与内容分离。这两个原则的设计是用来通过创建可复用的CSS模块以提高性能。

表现与结构分离:

  1. <div class="box-padded product-image"></div>   

  2. <div class="box-padded product-description"></div>   

  3.   

  4. .product-image {   

  5.        width: 400px;   

  6.     overflow: hidden;   

  7. }   

  8.   

  9. .product-description {   

  10.     width: 500px;   

  11.     min-height: 200px;   

  12.     overflow: auto;   

  13. }   

  14.   

  15. .box-padded {   

  16.     background: #FFF;   

  17.    padding: 10px;   

  18. }   

  19. ```  

内容与容器分离:

  1. <div class="wrapper recently-viewed"></div>   

  2. <div class="wrapper suggested-products"></div>   

  3.   

  4. .wrapper {   

  5.    width: 400px;   

  6.    margin: 0 auto;         

  7.    overflow: hidden;   

  8. }   

  9. .recently-viewed {   

  10.        border: solid 1px #ccc;   

  11.        background: #FFF;   

  12.    color: £666;    

  13. }   

  14. .suggested-products {   

  15.        border: solid 1px #ccc;   

  16.        background: #FFF;   

  17.    color: £666;    

  18. }  

这种面向对象的工作方式创建了一系列可以用来设置CSS属性的多种用途类。这种工作方式可以提高站点性能和维护以及保持CSS文件的DRY原则。

即使标记的多个主题是一致的,一个面向对象方法可以添加矫正的CSS用来覆盖或删除不想要的继承样式。

CSS Code复制内容到剪贴板

  1. product-delivry.padded-box {   

  2.    padding:0   

  3. }  

SMACSS

SMacSS像OOCSS一样以减少重复样式为基础。然而SMACSS使用一套五个层次来划分CSS给项目带来更结构化的方法。

Base - HTML elements & defaults
Layout -Page structure
Module - Re-usable code bloks
State - Active/Inactive etc
Theme - Typography and colour schemes etc

这个增加的组织和结构提高了输出的CSS的效率。这个方法同样适用于需要添加或者删除层次的地方。
ITCSS

ITCSS是一个完全不同于SMACSS的全新的方法,它创造了一系列的层次来管理依赖关系和促进可扩展性。基础的层次包括通用和广泛的选择器。顶部的层次包含了局部模块具体化的选择器。整套的层次如下...

    Tools?&mdash;?Default mixins & functions
    Generic?&mdash;?Normalize, resets, box-sizing
    Base?&mdash;?HTML elements
    Objects?&mdash;?Design patterns
    Components?&mdash;?Modules & blocks of code
    Trumps?&mdash;?Helpers & overrides

每个层次增加的权重,只允许添加额外的要求。

以上面同样的例子,CSS将会被划分为基础层和组件层。

  1. p {   

  2.     font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;   

  3.     font-size: 14px;   

  4. }   

  5. .product-details__title {   

  6.     color: #333;   

  7. }   

  8. .latest-news__title {   

  9.     color: #FF0000;   

  10. }  

使用前请注意

你仅仅是可以决定使用上述策略之一,但是你不是全部都得靠它。如果某一层次并不适合你的项目那么就不要使用它了。你也可以改变或者增加一些东西来使得它适应你的项目和团队的需求。命名规则或者方法并不是每个时候都能100%的适合所有项目。

你也可以创建你自己的方法或者命名规则,允许一个量身定制的解决方案来完美的适应你项目的需求。定制解决方案的一个不足之处就是缺乏社区的支持和文档。

上述内容就是CSS中的层分离编程示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: CSS中的层分离编程示例分析

本文链接: https://www.lsjlt.com/news/81784.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS中的层分离编程示例分析
    本篇文章为大家展示了CSS中的层分离编程示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。随着CSS的发展,使用CSS有语义化的命名约定和CSS层的分离,将有助...
    99+
    2022-10-19
  • CSS层叠性的示例分析
    这篇文章主要介绍了CSS层叠性的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   CSS层叠性的概念:   有多个选择器或一个...
    99+
    2022-10-19
  • CSS 中层叠概念的示例分析
    这篇文章将为大家详细讲解有关CSS 中层叠概念的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。屏幕是一个二维平面,然而HTML元素却是排列在三维坐标系中,x为水平...
    99+
    2022-10-19
  • CSS中背景部分编程的示例分析
    本篇文章为大家展示了CSS中背景部分编程的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在CSS里面,每个元素盒子都可以想象成...
    99+
    2022-10-19
  • CSS层叠机制的示例分析
    这篇文章主要为大家展示了“CSS层叠机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS层叠机制的示例分析”这篇文章吧。css中为什么要有层叠机制...
    99+
    2022-10-19
  • CSS层叠样式的示例分析
    这篇文章给大家分享的是有关CSS层叠样式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   CSS层叠性   CSS层叠性就是浏览器处理冲突的一个特性,如果一个属性...
    99+
    2022-10-19
  • CSS中注释部分编程引申的示例分析
    今天就跟大家聊聊有关CSS中注释部分编程引申的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS注释就像HTML教程中描述的一样,在CSS...
    99+
    2022-10-19
  • css中分组的示例分析
    小编给大家分享一下css中分组的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 分组提供了一些有意思的选择。例如,下例...
    99+
    2022-10-19
  • CSS样式继承和层叠的示例分析
    这篇文章主要介绍CSS样式继承和层叠的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:基本选择器 标签选择:根据页面当中标签名字进行选择,直接把样式应用到指定的标签上。特点...
    99+
    2022-10-19
  • CSS编程中响应式设计的示例分析
    今天就跟大家聊聊有关CSS编程中响应式设计的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。现在,响应式Web设计无疑是非常流行的。对于新人,...
    99+
    2022-10-19
  • MVC中dao层、service层和controller层的示例分析
    这篇文章给大家分享的是有关MVC中dao层、service层和controller层的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MVC的dao层、service层和controller层1、dao层d...
    99+
    2023-06-29
  • Css定位元素中层叠现象的示例分析
    这篇文章主要介绍了Css定位元素中层叠现象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Css定位元素的层叠现象 给元素添加...
    99+
    2022-10-19
  • CSS中position:absolute的示例分析
    这篇文章给大家分享的是有关CSS中position:absolute的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、绝对定位的特征绝对定位有着与浮动一样的特性,即包裹...
    99+
    2022-10-19
  • CSS中BFC的示例分析
    这篇文章主要介绍CSS中BFC的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是BFC(Block Formatting Context)写CSS样式时,对一个元素设...
    99+
    2022-10-19
  • css中margin的示例分析
    这篇文章将为大家详细讲解有关css中margin的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、简介margin我们一般习惯的叫它外边距,分别可以设置四个方向...
    99+
    2022-10-19
  • css中position:sticky的示例分析
    小编给大家分享一下css中position:sticky的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! css po...
    99+
    2022-10-19
  • CSS中图片Base64编码的示例分析
    这篇文章主要介绍了CSS中图片Base64编码的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是 base64 编码  我不是来讲概念的,直接切入正题,图片的 b...
    99+
    2023-06-15
  • udp编程的示例分析
    小编给大家分享一下udp编程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是UDPUDP是User Datagram Protocol(用户数据报协...
    99+
    2023-06-27
  • PHP中SOCKET编程的示例分析
    这篇文章主要介绍了PHP中SOCKET编程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 预备知识一直以来很少看到有多少人使用php的socket模块来做一些事...
    99+
    2023-06-15
  • css中的position的示例分析
    小编给大家分享一下css中的position的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!position,我们百度一...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作