预习(四)CSS的模块化与组件化

模块化

什么是模块化?

简单的说:

是一个系列相关联的结构组成了整体,比如一个歌单,里面的基本信息区域,歌曲列表区域,这些一个一个的区域,就是一个一个独立的模块,和产品经理口中的模块化基本可以约等于。

如何实现模块化?

在页面上一个模块一定是一个整体,例如导航:

<div class="nav">
            <ul>
                <li class="current">
                    <a href="#">推荐</a>
                </li>
                <li>
                    <a href="#">排行榜</a>
                </li>
            </ul>
        </div>
<style>
            .nav{};
            .nav ul{};
            .nav li{};
            .nav li a{};
            .nav li .current{}
            .nav li .current a{}
        </style>

一个模块一定在一个div(容器,aside,nav这些新标签)里,css也是同样的一个整体。

那假如两个模块语义相同,但是样式有细纹的差别,比如一个内容都是居中的,一个内容都是靠左的,那么就要使用到一个新的方法:扩展

        <style>
            .nav{};
            .nav ul{};
            .nav li{};
            .nav li a{};
            .nav li .current{}
            .nav li .current a{}
            .nav-1 ul{};
        </style>
        <div class="nav nav-1">
            <ul>
                <li class="current">
                    <a href="#">推荐</a>
                </li>
                <li>
                    <a href="#">排行榜</a>
                </li>
            </ul>
        </div>

这里给div新增了一个样式,nav-1,并且在css中重写了这部分样式,那么就达到了使用最少的代码定义了新样式

组件化

什么是组件化?

简单的说,就是将多个模块内,通用的内容使其抽象出来,单独组件化定义,这样在模块定义的时候就可以在多个模块内复用,而不用每一次定一个模块就定义一次通用内容。

在实现上和模块化是一样定义的

<span class="button">推荐</span>
<span class="button disabled">不推荐</span>
.button{}
.button:hover{}
.button.disabled{}
.button.disabled:hover{}

组件的扩展方式和模块的扩展方式一致,都是新定义一个类,在原基础的类代码下方进行修改覆盖

模块化与组件化的优点

  • 多人协同,可以分工开发不同开发的模块
  • 扩展,重用
  • 维护性好

 

规范

规范的意义是什么?

可以更好的将开发落地,而不是空中楼阁。

规范有哪些?

基本有:文件规范,命名规范,格式规范;

文件规范:例如可以通过分类,一是分成:通用类,业务类的文件夹,二再将通用类的文件夹分成:基本,框架,ui等,业务类的可以在分成栏目,业务等等;

命名规范:

  • 分类格式:比如可以将模块类型的命名成m-开头,比如m-nav,可以将组件类型的命名成u-开头,这样团队成员就可以一眼就看出,这个是什么类型的样式;
  • 扩展格式:比如可以命名.m-nav-1,说明这个是对模块中nav的一个扩展
  • 语义格式:比如导航是缩写的前三个单词nav还是要全称的navigation,这种就是对语义的格式规范,否则,同样的一个导航单词,就可能写出几十种写法

格式规范:

定义:比如样式要在一行写完,还是可以换行的常规写法针对格式上有一个统一的定义;

注释:主要是两种,一种是块状注释要怎么写,一种是单行注释有什么格式,单行注释建议前后各有一个空格,可以避免乱码等意外引起的一些问题;

猜你喜欢

转载自blog.csdn.net/zy21131437/article/details/88351799