zoukankan      html  css  js  c++  java
  • WEB前端之CSS规范

    CSS 指层叠样式表 (Cascading Style Sheets),定义如何显示 HTML 元素,但由于 CSS 天生全局性,随着项目复杂度增加,极易出现样式覆盖以及其它的问题。

    1. 通用规范
    文件编码
    为了避免内容乱码,统一使用 UTF-8 编码保存。

    样式文件第一行设置字符集为 UTF-8

    @charset 'UTF-8'; /* 注意字符集说明应在第一行 */

    1
    2
    缩进规范
    统一使用两个空格缩进

    2. 初始化规范
    各浏览器厂商的初始样式都不一样,为了消除不同浏览器对 HTML 文本呈现的差异,我们常引入一些初始化样式,如 normalize.css、reset.css 等,当对于这些样式的引入我们需要注意下面几种情况:

    不使用 UI 框架,由零开始搭建
    从零开始搭建的情况下,进行样式初始化,在项目最开始的时候就引入,不要在开发中途引入,避免不可预知的样式冲突。

    不使用 UI 框架,但使用了部分插件
    插件往往都带有自己特有的样式,如富文本插件,在开发中途使用初始化样式有可能导致样式错乱,所以不建议大范围的初始化,只需简单进行初始化即可。

    * {
    padding: 0;
    margin: 0;
    }

    1
    2
    3
    4
    5
    已使用 UI 框架
    在明确知道需要使用 UI 框架的时候,不使用第三方初始化样式,不管是在项目开始前还是进行中,因为 UI 框架一般都自带初始化,额外引入了反而会影响原有效果。
    3. 代码规范
    命名规范
    class 应以功能或内容命名,不以表现形式命名
    class 与 id 单词字母小写,多个单词组成时,采用中划线-分隔
    使用唯一的 id 作为 Javascript hook, 同时避免创建无样式信息的 class
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路

    代码风格
    统一使用展开格式,不推荐紧凑格式

    /* 展开格式 */
    .test {
    color: red;
    font-size: 12px;
    }

    1
    2
    3
    4
    5
    6
    /* 紧凑格式 */
    .test {
    color: red;
    font-size: 12px;
    }

    1
    2
    3
    4
    5
    6
    统一两个空格缩进

    属性声明结尾加分号

    选择器与左括号之间一个空格,属性冒号后一个空格

    /* 推荐 */
    .test {
    color: red;
    font-size: 12px;
    }

    1
    2
    3
    4
    5
    6
    /* 不推荐 */
    .test {
    color: red;
    font-size: 12px;
    }

    1
    2
    3
    4
    5
    6
    不要为 0 指明单位

    颜色值和属性值十六进制数值能用简写的尽量用简写

    /* 推荐 */
    .test {
    color: #fff;
    }

    1
    2
    3
    4
    5
    /* 不推荐 */
    .test {
    color: #ffffff;
    }

    1
    2
    3
    4
    5
    引号使用

    url() 、属性选择符、属性值使用单引号。

    清除浮动

    当元素需要撑起高度以包含内部的浮动元素时,通过对伪类设置 clear 或触发 BFC 的方式进行 clearfix。尽量不使用增加空标签的方式。

    触发 BFC 的方式很多,常见的有:

    float 非 none
    position 非 static
    overflow 非 visible
    字体规范
    对外商用网站,不要用font-face引入微软雅黑字体,避免侵权(包括图片内容)
    需要在 Windows 平台显示的中文内容,其字号应不小于 12px
    网站上使用 微软雅黑 字体有三种形式:

    1、【侵权】图片中使用 微软雅黑 字体,比如网站头图
    2、【安全】网站 CSS 用 font-family 声明网站使用 微软雅黑 字体,比如文章标题和正文
    3、【侵权】网站通过 font-face 引用 微软雅黑 ,这种方式不常见

    1
    2
    3
    4
    5
    6
    选择器规范
    在严格遵照BEM(Block Element Modifier)时,建议只使用类选择器,但 BEM 书写麻烦,所以建议如下

    禁用通用选择器 *
    不使用无具体语义定义的标签选择器
    属性顺序
    CSS 属性顺序是 CSS 良好编码风格的一部分,有助于提高代码可读性,便于发现代码问题,有利于团队合作,但在项目中发现部分同学在书写属性顺序时较为随意,想到一个属性就写一个。

    建议使用下列顺序进行书写

    定位属性(position、display、float、left、right)
    尺寸属性(width、height、padding、margin、border)
    字体属性(color、font、text-align)
    其他属性(background、cursor、outline)
    目的是在浏览代码时,能逐步清晰目标元素的效果。

    .test {
    display: block;
    position: relative;
    float: left;
    100px;
    height: 100px;
    margin: 0 10px;
    padding: 20px 0;
    font-size: 12px;
    color: #333;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 10px;
    }
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    4. 注释规范
    单行注释
    注释以 /* 开始,以 */ 结束,注释内不能嵌套注释,注释内容前后空一个空格。

    /* 推荐的单行注释 */

    1
    2
    /*不推荐的单行注释*/

    1
    2
    注:在 sass 和 less 等预处理语言上也可以使用双斜线注释,但编译后注释内容不会出现在 css 文件中,所以建议统一使用/* */注释。

    模块注释
    有时候我们需要对一个模块(一段代码块)进行功能性说明,并希望能明显区分其它代码,我们可以模块注释的方式。

    注释以 /* 开始,以 */ 结束,前后空一个空格,第一行填写描述,最后一行行填写分割线。

    /* 推荐的模块注释
    ---------------------------------------------------- */

    1
    2
    3
    /* 不推荐的模块注释 ---------------------------------------------------- */

    1
    2
    * 文件信息注释
    如果需要对一个文件进行功能性说明,方便其他人快速明白该文件的作用,推荐在文件开头(字符集说明下)写入下列注释,注释内容包括文件描述、创建人、创建时间等。

    @charset "UTF-8";
    /**
    * @desc 文件功能描述,方便其他人快速理解
    * @author 创建人
    * @date 创建时间
    */

    1
    2
    3
    4
    5
    6
    7
    5. 覆盖规范
    尽可能少用 importent
    vue 单文件组件统一使用 css/less/sass scoped
    每个页面/组件需要有一个全局唯一的标识 id/class,属于它下面的样式都需要加上该唯一标识
    避免全局修改已有样式,必须具体到页面上(通过权重)
    禁用全匹配*选择器(特殊情况除外,如初始化)
    vue 单文件组件修改样式不生效可使用 /deep/ 或 >>>

    6. 媒体查询
    对于内部管理系统,商务多使用 ThinkPad 笔记本,屏幕分辨率为 1366*768。建议使用Resolution Test浏览器拓展进行浏览器窗口大小调试。

  • 相关阅读:
    联想yoga pro 13 使用Hyper-v蓝屏错误PAGE_FAULT_IN_NONPAGED-AREA的解决办法
    部署 Halo 博客系统
    GiuHub高级搜索关键字
    layer提示框弹出异常抖动,而且不显示
    bootstrap同一页面上多个模态框
    border-radius
    git查看本机ssh公钥
    简单的git连接远程仓库小记
    hexo搭建完成后输入hexo s 没有生成Html静态文件
    application/xml and text/xml的区别
  • 原文地址:https://www.cnblogs.com/helloworld3/p/11154991.html
Copyright © 2011-2022 走看看