总结一下前端css样式规范

  • 前端样式CSS 规范
  • 分类的命名方法
  • 统一语义理解和命名
    • 模块(.m-)、元件(.u-)
    • 功能(.f-)
    • 皮肤(.s-)
    • 状态(.z-)
    • sass 规范
      • 当前选择器的样式属性
  • 特殊规范

前端样式CSS 规范

通用规范

// bad
padding-bottom: 0px;
margin: 0em;
// good
padding-bottom: 0;
margin: 0;

如果 CSS 可以做到,就不要使用 JS,建议并适当缩写值,提高可读性,特殊情况除外
“建议并适当”是因为缩写总是会包含一系列的值,而有时候我们并不希望设置某一值,反而造成了麻烦,那么这时候你可以不缩写,而是分开写。
当然,在一切可以缩写的情况下,请务必缩写,它最大的好处就是节省了字节,便于维护,并使阅读更加一目了然。

// bad
.box{border-top-style: none;
font-family: palatino, georgia, serif;
font-size: 100%;
line-height: 6;
padding-bottom: 2em;
padding-left: 1em;
padding-right: 1em;
padding-top: 0;
}
// good
.box{border-top: 0;
font: 100%/6 palatino, georgia, serif;
padding: 0 1em 2em;
}

声明应该按照下表的顺序:左到右,从上到下

display  width   font
visibility  height  text-align
position    margin  text-decoration
float   padding vertical-align
clear   border  white-space
list-style  overflow    color
top min-width   background
// bad
.box {font-family: 'Arial', sans-serif;border: 3px solid #ddd;left: 30%;position: absolute;text-transform: uppercase;background-color: #eee;right: 30%;isplay: block;font-size: 5rem;overflow: hidden;padding: 1em;margin: 1em;
}// good
.box {display: block;position: absolute;left: 30%;right: 30%;overflow: hidden;margin: 1em;padding: 1em;background-color: #eee;border: 3px solid #ddd;font-family: 'Arial', sans-serif;font-size: 5rem;text-transform: uppercase;
}

元素选择器应该避免在 scoped 中出现
官方文档说明[1]:在 scoped 样式中,类选择器比元素选择器更好,因为大量使用元素选择器是很慢的。

分类的命名方法

使用单个字母加上"-"为前缀

布局(grid)(.g-);
模块(module)(.m-);
元件(unit)(.u-);
功能(function)(.f-);
皮肤(skin)(.s-);
状态(.z-)。

统一语义理解和命名

布局(.g-)
文档 doc doc
头部 head hd
主体 body bd
尾部 foot ft
主栏 main mn
主栏子容器 mainc mnc
侧栏 side sd
侧栏子容器 sidec sdc
盒容器 wrap/box wrap/box

模块(.m-)、元件(.u-)

导航 nav nav
子导航 subnav snav
面包屑 crumb crm
菜单 menu menu
选项卡 tab tab
标题区 head/title hd/tt
内容区 body/content bd/ct
列表 list lst
表格 table tb
表单 form fm
热点 hot hot
排行 top top
登录 login log
标志 logo logo
广告 advertise ad
搜索 search sch
幻灯 slide sld
提示 tips tips
帮助 help help
新闻 news news
下载 download dld
注册 regist reg
投票 vote vote
版权 copyright cprt
结果 result rst
标题 title tt
按钮 button btn
输入 input ipt

功能(.f-)

浮动清除 clearboth cb
向左浮动 floatleft fl
向右浮动 floatright fr
内联块级 inlineblock ib
文本居中 textaligncenter tac
文本居右 textalignright tar
文本居左 textalignleft tal
垂直居中 verticalalignmiddle vam
溢出隐藏 overflowhidden oh
完全消失 displaynone dn
字体大小 fontsize fs
字体粗细 fontweight fw

皮肤(.s-)

字体颜色 fontcolor fc
背景 background bg
背景颜色 backgroundcolor bgc
背景图片 backgroundimage bgi
背景定位 backgroundposition bgp
边框颜色 bordercolor bdc

状态(.z-)

选中 selected sel
当前 current crt
显示 show show
隐藏 hide hide
打开 open open
关闭 close close
出错 error err
不可用 disabled dis

sass 规范

当使用 Sass 的嵌套功能的时候,重要的是有一个明确的嵌套顺序,以下内容是一个 SCSS 块应具有的顺序。

当前选择器的样式属性

父级选择器的伪类选择器 (:first-letter, :hover, :active etc)
伪类元素 (:before and :after)
父级选择器的声明样式 (.selected, .active, .enlarged etc.)
用 Sass 的上下文媒体查询
子选择器作为最后的部分

.product-teaser {// 1. Style attributes
display: inline-block;
padding: 1rem;
background-color: whitesmoke;
color: grey;
// 2. Pseudo selectors with parent selector
&:hover {color: black;
}
// 3. Pseudo elements with parent selector
&:before {content: "";
display: block;
border-top: 1px solid grey;
}
&:after {content: "";
display: block;
border-top: 1px solid grey;
}
// 4. State classes with parent selector
&.active {background-color: pink;
color: red;
// 4.2. Pseuso selector in state class selector
&:hover {color: darkred;
}
}
// 5. Contextual media queries
@media screen and (max-width: 640px) {display: block;
font-size: 2em;
}
// 6. Sub selectors
> .content > .title {font-size: 2em;
// 6.5. Contextual media queries in sub selector
@media screen and (max-width: 640px) {letter-spacing: 2em;
text-transform: uppercase;
}
}
}

特殊规范

对用页面级组件样式,应该是有作用域的
对于公用组件或者全局组件库,我们应该更倾向于选用基于 class 的 BEM 策略

<style lang='scss'></style> // bad
<!-- 使用 scoped 作用域 -->
<style lang='scss' scoped></style> // good
<!-- 使用 BEM 约定 -->
<style> // good
.c-Button {border: none;
border-radius: 2px;
}
.c-Button--close {background-color: red;
}
</style>

References
[1] 官方文档说明: https://cn.vuejs.org/v2/style-guide/#scoped-中的元素选择器-谨慎使用
[2] 风格指南: https://cn.vuejs.org/v2/style-guide/
[3] 更好的css方案: http://nec.netease.com/
[4] 前端js规范文档: https://www.xuanfengge.com/fedoc/

【前端】3.总结一下前端css样式规范相关推荐

  1. 前端开发审查元素时CSS样式有个横线(该CSS样式定义后无效) 的解决办法

    问题概述 关于这个问题,博主是在前端开发,样式调试的时候遇到的, 进行盒模型,CSS Debugger调试时,遇到样式设值后不可用的情况! 如下图: 解决办法 左看右看,上看下看,最终发现是前面在编码 ...

  2. html表单页面css样式代码,前端html表单与css样式(示例代码)

    1,from标签 from标签的功能是向服务器传输数据,实现用户交互的重要标签. from标签的具体使用: input标签使用示例: 姓名: 用户名: 密码: 爱好:骑车游戏电影 男女 第一句:act ...

  3. 【Web前端基础】实验6 CSS样式属性

    1.木兰花令网页样式 <!doctype html> <html lamh="en"><head><meta charset=" ...

  4. 前端工程师实战开发:CSS样式继承、像素与选择器权重详解

    餐厅练习 具体看resource文件夹或者百度 继承 <body><p>我是p元素<span>我是p里面的span</span></p> ​ ...

  5. WEB入门三 CSS样式表基础

    学习内容 Ø        CSS的基本语法 Ø        CSS选择器 Ø        常见的CSS样式 Ø        网页中3种使用CSS的方式 能力目标 Ø        理解CSS的 ...

  6. css宋体代码_前端开发必备的CSS命名规范与常用CSS代码集合

    编辑 | web前端开发 来源 | web前端开发 我们在用html+css进行网页的排版布局时,经常会遇到CSS命名,如果是在团队多人协作开发时,团队里都会有自己的命名规范与要求. 但如果是自己在个 ...

  7. Web前端框架(JavaScript,CSS)、html组件、CSS规范与第三方库

    1.什么是前端框架 前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件( ...

  8. css外部命名规范,前端开发较全CSS命名规范

    前端开发用什么框架吗 前端开发新框架 前端开发app混合开发框架 文件名命名规范 模块:module. 基本共用:base. 布局.版面:layout.css 主题:themes.css 专栏:col ...

  9. web项目开发 之 前端规范 --- CSS编码规范

    此文严格按照W3C规范和部分实际项目可读性,浏览器加载,性能等众多属性权衡,做出平时前端编码规范 文档.供广大web工作者参考并实施,对维护和项目扩展升级都能省时省力. 转载请注明出处:JS前端实用开 ...

最新文章

  1. CentOS中vsftp安装与配置
  2. OpenStack在keystone部分同步数据库报错Errno 13解决办法
  3. 复习(一)—— Shell基本编程
  4. python linux服务_Python脚本作为Linux服务/守护程序
  5. 创建安卓app的30个经验教训
  6. import cv2时ImportError: libjasper.so.1: cannot open shared object file: No such file or directory
  7. 零中频接收机频率转换图_走进射频接收机:射频接收机的三种常见结构
  8. 数据预处理之抽取文本信息
  9. Altium Designer(九):DXF+DWG
  10. JDK1.8源码(十一)——java.util.TreeMap类
  11. H.264 SPS/PPS成员值含义
  12. win7 安装 vmware出错: failed to create the requested registry key key installer error 1021 的解决办法。...
  13. 华为手机屏幕锁屏时间设置_华为手机锁屏时间怎么设置?
  14. WIN10系统微软拼音输入法无法输入中文
  15. 5e服务器显示steam名字,5e为什么不显示我csgo的名字(5ecsgo)
  16. 置换密码c语言,替代密码和置换密码的C语言实现
  17. 计算机问卷调查数据分析报告,调查问卷分析报告怎么写
  18. 计算机屏幕分辨率在哪看,在哪看显示器刷新率
  19. 这三种创业项目不要轻易涉足
  20. mysql ext3 ext4_Mysql如何选择文件系统?(ext4 vs ext3 vs jfs vs xfs vs reise

热门文章

  1. php网站统一登录,php新浪通行证、新浪微博模拟统一登录(后台网页抓取版)2016
  2. 如何高效阅读代码?Linux大神拍了拍你并教给你这三个步骤
  3. 清华大学计算机考研机试KY2 成绩排序
  4. 华为s3700交换机控制台连接和重设密码
  5. 幂级数及其收敛准则,展开式,和函数。
  6. 使用 Python 设置高斯模糊背景
  7. 互联网的双中台架构实战
  8. 网站劫持流量是什么意思,怎么防流量被劫持?
  9. MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
  10. 各大护肤品牌国内专柜价格大全!!-zz