如何规范 CSS 的命名和书写

我开始学前端的时候也是对于规范问题头疼,后来看了网易的NEC规范,惊呼牛逼

NEC : 更好的CSS样式解决方案

 

只遵循横向顺序即可,先显示定位布局类属性,后盒模型等自身属性,最后是文本类及修饰类属性。

显示属性自身属性文本属性和其他修饰
 displaywidthfont
 visibilityheighttext-align
 positionmargintext-decoration
 floatpaddingvertical-align
 clearborderwhite-space
 list-styleoverflowcolor
 topmin-widthbackground

 

 

 

 

 

 

 

1
.m-box{position:relative;width:600px;margin:0 auto 10px;text-align:center;color:#000;}

如果属性间存在关联性,则不要隔开写。

1
2
/* 这里的height和line-height有关联性 */
.m-box{position:relative;height:20px;line-height:20px;padding:5px;color:#000;}

私有在前,标准在后

先写带有浏览器私有标志的,后写W3C标准的。

1
.m-box{-webkit-box-shadow:0 0 0 #000;-moz-box-shadow:0 0 0 #000;box-shadow:0 0 0 #000;

 

作者:词晖 链接:https://www.zhihu.com/question/19586885/answer/48933504 来源:知乎

CSS书写顺序

  1.位置属性(position, top, right, z-index, display, float等)

  2.大小(width, height, padding, margin)

  3.文字系列(font, line-height, letter-spacing, color- text-align等)

  4.背景(background, border等)

  5.其他(animation, transition等)

<img src="https://pic4.zhimg.com/50/5a67fa4dab92c018abfd97e4ab286ac9_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/5a67fa4dab92c018abfd97e4ab286ac9_r.jpg">

CSS书写规范使用CSS缩写属性

  CSS有些属性是可以缩写的,比如padding,margin,font等等,这样精简代码同时又能提高用户的阅读体验。

<img src="https://pic3.zhimg.com/50/2166c1fb168908a5858998eab2d309aa_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/2166c1fb168908a5858998eab2d309aa_r.jpg">

  去掉小数点前的“0”

<img src="https://pic2.zhimg.com/50/ea65b1c1c00c792866a670e9d66161a8_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/ea65b1c1c00c792866a670e9d66161a8_r.jpg">

  简写命名

  很多用户都喜欢简写类名,但前提是要让人看懂你的命名才能简写哦!

<img src="https://pic3.zhimg.com/50/53ddaefb44a6a8ce5b54de9f15466fca_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/53ddaefb44a6a8ce5b54de9f15466fca_r.jpg">

  16进制颜色代码缩写

  有些颜色代码是可以缩写的,我们就尽量缩写吧,提高用户体验为主。

<img src="https://pic4.zhimg.com/50/46bf23e08a7195ec7091217bb5c667d6_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/46bf23e08a7195ec7091217bb5c667d6_r.jpg">

  连字符CSS选择器命名规范

  1.长名称或词组可以使用中横线来为选择器命名。

  2.不建议使用“_”下划线来命名CSS选择器,为什么呢?

  输入的时候少按一个shift键;

  浏览器兼容问题 (比如使用_tips的选择器命名,在IE6是无效的)

  能良好区分JavaScript变量命名(JS变量命名是用“_”)

<img src="https://pic2.zhimg.com/50/45dddce1b5295a7c09f2380900dce8d1_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/45dddce1b5295a7c09f2380900dce8d1_r.jpg">

  不要随意使用Id

  id在JS是唯一的,不能多次使用,而使用class类选择器却可以重复使用,另外id的优先级优先与class,所以id应该按需使用,而不能滥用。 

<img src="https://pic2.zhimg.com/50/951bee68367f559a1fd37db3d242e59f_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/951bee68367f559a1fd37db3d242e59f_r.jpg">

  为选择器添加状态前缀

  有时候可以给选择器添加一个表示状态的前缀,让语义更明了,比如下图是添加了“.is-”前缀。

<img src="https://pic4.zhimg.com/50/d81807b01ec5d710debe3f0b4191ae2f_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/d81807b01ec5d710debe3f0b4191ae2f_r.jpg">

  CSS命名规范(规则)常用的CSS命名规则

  头:header

  内容:content/container

  尾:footer

  导航:nav

  侧栏:sidebar

  栏目:column

  页面外围控制整体佈局宽度:wrapper

  左右中:left right center

  登录条:loginbar

  标志:logo

  广告:banner

  页面主体:main

  热点:hot

  新闻:news

  下载:download

  子导航:subnav

  菜单:menu

  子菜单:submenu

  搜索:search

  友情链接:friendlink

  页脚:footer

  版权:copyright

  滚动:scroll

  内容:content

  标签:tags

  文章列表:list

  提示信息:msg

  小技巧:tips

  栏目标题:title

  加入:joinus

  指南:guide

  服务:service

  注册:regsiter

  状态:status

  投票:vote

  合作伙伴:partner

注释的写法:

  /* Header */

  内容区

  /* End Header */

Id的命名:

  1)页面结构

  容器: container

  页头:header

  内容:content/container

  页面主体:main

  页尾:footer

  导航:nav

  侧栏:sidebar

  栏目:column

  页面外围控制整体佈局宽度:wrapper

  左右中:left right center

(2)导航

  导航:nav

  主导航:mainnav

  子导航:subnav

  顶导航:topnav

  边导航:sidebar

  左导航:leftsidebar

  右导航:rightsidebar

  菜单:menu

  子菜单:submenu

  标题: title

  摘要: summary

(3)功能

  标志:logo

  广告:banner

  登陆:login

  登录条:loginbar

  注册:register

  搜索:search

  功能区:shop

  标题:title

  加入:joinus

  状态:status

  按钮:btn

  滚动:scroll

  标籤页:tab

  文章列表:list

  提示信息:msg

  当前的: current

  小技巧:tips

  图标: icon

  注释:note

  指南:guild

  服务:service

  热点:hot

  新闻:news

  下载:download

  投票:vote

  合作伙伴:partner

  友情链接:link

  版权:copyright

注意事项::

  1.一律小写;

  2.尽量用英文;

  3.不加中槓和下划线;

  4.尽量不缩写,除非一看就明白的单词。

CSS样式表文件命名

  主要的 master.css

  模块 module.css

  基本共用 base.css

  布局、版面 layout.css

  主题 themes.css

  专栏 columns.css

  文字 font.css

  表单 forms.css

  补丁 mend.css

  打印 print.css

转载于:https://www.cnblogs.com/rik28/p/8417911.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

app性能测试指标

性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合&#xf…

《学做程序经理》完整版

文/Joel Spolsky 译/罗小平 指派一名优秀的程序经理,是团队产出优秀软件的重要前提之一。你的团队里可能没有这样的人,其实绝大多数团队都没有。 Charles Simonyi,这位曾与MarthaStewart(译者注:美国女富豪&#…

java工程mvn引用jar_maven 项目加载本地JAR

将jar安装到本地的maven仓库1.首先确定本地有maven环境。2.安装本地jar模板:mvn install:install-file -Dfile -DgroupId -DartifactId -Dversion -Dpackaging示例:mvn install:install-file -DfileF:\jave-ffmpegjave-1.0.2.jar -DgroupIdffmpegjave -D…

compress()方法

boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream) 把位图的压缩信息写入到一个指定的输出流中。如果返回true,可以通过传递一个相应的输出流到BitmapFactory.decodeStream()来重构该位图。注意:并非所有的格式都直接支…

token的三点注意项

token的安全是极度重要的 1:token的唯一性, 它代表着来自某应用系统用户的一次成功登录。我们可以利用java util包工具直接生成一个32位唯一字符串来实现。 String token UUID.randomUUID().toString(); 同时,我们定义一个javabean&#xff…

0.1 js复习

1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验。 能够制作的页面效果:轮播图,无限瀑布流,tab切换,定位地图,表单验证等。 web前端三层来说: 结构层 HTML 从语义的角度&…

优秀的软件企业为何倒下?

最近不到一个月,就看到两家著名公司——SUN公司和Borland公司相继被收购,引起IT界不小的震动,让人感慨万分。在此之前有北电(Nortel)、摩托罗拉的衰退,再往前有 美国数字设备公司Digital(Digita…

python 列表的推导器和内置函数

# 列表的推导式# li []# for i in range(1,11):# li.append(i)# print(li)## lis [i for i in range(1,11)] #列表的推导式# print(lis)#[变量(加工后的变量) for 变量 i in 可迭代的数据类型】 列表的推导式# li2 []# for i in ran…

Android service 中的stub类

stub是为了方便client,service交互而生成出来的代码。 AIDL(android 接口描述语言)是一个IDL语言,它可以生成一段代码,可以使在一个android设备上运行的两个进程使用内部通信进程进行交互。如果你需要在一个进程中(例如:在一个Activity中)访…

kafka exporter v0.3.0 发布: Prometheus官方推荐,欢迎试用

2019独角兽企业重金招聘Python工程师标准>>> 时隔1个半月,kakfa exporter v0.3.0于今日正式发布,欢迎大家试用。 项目地址 Github: https://github.com/danielqsj/kafka_exporter Docker Hub: https://hub.docker.com/r/danielqsj/kafka-expo…

java手动切换成独立显卡_JAVA设计模式之调停者模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的:调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发…

2018.2.8 php实现qq登陆接口

PHP实现QQ登录的原理和实现过程 2018-02-08 学习与分享 PHP自学中心 第三方登录,就是使用大家比较熟悉的比如QQ、微信、微博等第三方软件登录自己的网站,这可以免去注册账号、快速留住用户的目的,免去了相对复杂的注册流程。下边就给大家讲一…

关于积累的一点看法

这是vip那边发表的一篇帖子,今天整理,发现可能有一点代表性,就再发在这里,供各位同学参考。 坛子里有人讨论小公司要不要积累框架的问题,有感而发,写了点自己的看法,一家之言,欢迎拍…

去除vue项目中的#及其ie9兼容性

一、如何去除vue项目中访问地址的# vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js) 1 export default new Router({2 mode: history,3 routes: [4 {5 path: /,6 name: menu,7 component: menu,8 …

sendBroadcast与sendStickyBroadcast的区别

前提条件:此处我主要讨论两种广播在代码中动态注册时的一些细节问题。 正常情况下,广播通常都是执行一次注册代码,就会触发各接收器接收一次,无论是在onCreate里注册还是onResume里注册:若在onCreate里注册&#xff0…

java 线程池 初始大小_为什么tomcat的默认线程池大小如此之大? - java

我注意到默认的tomcat 7线程池大小似乎是200。但是普通的CPU似乎有16个内核。因此只能并行执行16个线程为什么tomcat使用那么多线程。参考方案多年以来,许多单核计算机问世,并且能够以“伪并行”模式运行功能,也就是说,您可能有16…

Hadoop2.6.0完全分布式安装

1、修改主机名称 对master/slave1/slave2同时配置为Master/Slave1/Slave2 masterMaster:~$ sudo gedit /etc/hostname 上述3个虚机结点均需要进行以上步骤 2、填写主机IP 对master/slave1/slave2同时配置 masterMaster:~$ sudo gedit /etc/hosts 192.168.48.128 master192.168.…

DEX加密效果分析

dex加密目的:保护安卓应用的Java源代码,避免被恶意分析,技术被窃取准备工具:1、apktool :反编译apk,提取smali代码2、dex2jar :将dex转化为jar文件3、jd-gui :查看jar文件&#xff0…

一些比特率值

比特率 比特率是指将数字声音由模拟格式转化成数字格式的采样率,采样率越高,还原后的音质就越好。 比特率值与现实音频对照: 16KBPS电话音质 24KBPS增加电话音质、短波广播、长波广播、欧洲制式中波广播40KBPS美国制式中波广播56KBPS话…

java asynccontext,超时后的JavaEE 6 AsyncContext行为

What is the exact behavior of AsyncContext after it times out? Does it still run and does it return response using getResponse()?解决方案Java Servlet 3.0 Maintenance Release on page 34 reads:A call to this method - ServletRequest.startAsync(ServletReques…