整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

常用的CSS命名规范大总结,非常实用(收藏)

本命名规范

index.css: 一般用于首页建立样式

head.css: 头部样式,当多个页面头部设计风格相同时使用。

base.css: 共用样式。

style.css:独立页面所使用的样式文件。

global.css:页面样式基础,全局公用样式,页面中必须包含。

layout.css:布局、版面样式,公用类型较多时使用,一般用在首页级页面和产品类页面中

module.css:模块,用于产品类页,也可与其它样式配合使用。

master.css:主要的样式表

columns.css:专栏样式

themes.css:主体样式

forms.css:表单样式

mend.css:补丁,基于以上样式进行的私有化修补。

页面结构命名:

page:代表整个页面,用于最外层。

wrap:外套,将所有元素包在一起的一个外围包,用于最外层

wrapper:页面外围控制整体布局宽度,用于最外层

container:一个整体容器,用于最外层

head,header:页头区域,用于头部

nav: 导航条

content:内容,网站中最重要的内容区域,用于网页中部主体

main:网站中的主要区域(表示最重要的一块位置),用于中部主体内容

column:栏目

sidebar:侧栏

foot,footer:页尾、页脚。网站一些附加信息放置区域,(或命名为 copyright)用于底部

导航命名:

nav, navbar, navigation, nav-wrapper:导航条或导航包,代表横向导航

topnav:顶部导航

mainbav:主导航

subnav:子导航

sidebar:边导航

leftsidebar 或 sidebar_a:左导航

rightsidebar 或 sidebar_b:右导航

title:标题

summary:摘要

menu:菜单,区域包含一般的链接和菜单

submenu:子菜单

drop:下拉

dorpmenu:下拉菜单

links:链接菜单

功能命名:

logo:标记网站logo标志

banner:标语、广告条、顶部广告条

login:登陆,(例如登录表单:form-login)

loginbar:登录条

register:注册

tool, toolbar:工具条

search:搜索

searchbar:搜索条

searchlnput:搜索输入框

shop:功能区,表示现在的

icon:小图标

label:商标

homepage:首页

subpage:二级页面子页面

hot:热门热点

list:文章列表,(例如:新闻列表:list-news)

scroll:滚动

tab:标签

sitemap:网站地图

msg 或 message:提示信息

current:当前的

joinus:加入

status:状态

btn:按钮,(例如:搜索按钮可写成:btn-search)

tips:小技巧

note:注释

guild:指南

arr, arrow:标记箭头

service:服务

breadcrumb:(即页面所处位置导航提示)

download:下载

vote:投票

siteinfo:网站信息

partner:合作伙伴

link, friendlink:友情链接

copyright:版权信息

siteinfoCredits:信誉

siteinfoLegal:法律信息


【CSDN 编者按】从1995年开始,本文作者Dr.Axel Rauschmayer就专门从事JavaScript和Web开发,已经有30多年了。2010年,他获得慕尼黑大学信息学博士学位。自2011年以来,他一直在2ality.com写博客,并写了几本关于JavaScript的书,比如《JavaScript for impatient programmers》、《Deep JavaScript: Theory and techniques》等。今天这篇文章就来自于他的博客,介绍了在JavaScript命名冲突时,现有代码如何强制对提议的功能进行重命名。

整理 | 章雨铭 责编 | 张红月
出品 | CSDN(ID:CSDNnews)

不断发展的JavaScript:不要破坏web!


JavaScript的一个发展核心原则就是"不要破坏Web":在将新特性添加到语言中后,所有现有代码都必须能够继续运行。

这样有一个坏处,就是不能从语言中删除现有的quirks。但这样做益处多多,比如旧的代码可以继续运行,而且升级到新的ECMAScript版本很简便等等。

在为新特征(如方法名称)选择名称时,需要进行一个重要的测试,即在浏览器的nightly版本(早期预发布版本)中添加该特征,并检查是否有任何网站出现错误。

接下来将介绍过去案例中的的四个冲突源,当产生这四种冲突时,就必须重命名特征。


冲突源1:向内置原型添加方法


在JavaScript中,我们可以通过改变其原型来为内置值添加方法:

  • // Creating a new Array methodArray.prototype.myArrayMethod = function () { return this.join('-');};assert.equal( ['a', 'b', 'c'].myArrayMethod(), 'a-b-c');

    // Creating a new string methodString.prototype.myStringMethod = function () { return '¡' + this + '!';};assert.equal( 'Hola'.myStringMethod(), '¡Hola!');

    神奇的是,语言可以通过这种方式改变。这种运行时的修改被称为猴子补丁(monkey patch)。

    什么是猴子补丁?

    如果我们给内置原型添加方法,我们就是在运行时修改一个软件系统。这样的修改被称为猴子补丁。简单来说,对其含义有两种可能的解释。

    这个叫法起源于Zope框架,人们在修正Zope的Bug的时候经常在程序后面追加更新部分,这些被称作是“杂牌军补丁(guerilla patch)”,后来guerilla就渐渐的写成了gorllia((猩猩),再后来就写了monkey(猴子),所以猴子补丁的叫法是这么莫名其妙的得来的。

    另一种说法是,它指的是搞乱(monkeying about)代码。

    反对改变内置原型的原因

    对任何类型的全局命名,都会存在名称冲突的风险。如果有解决冲突的机制,就能规避风险。例如:

    • 全局模块是通过裸模块指定器或URLs来识别的。前者之间的名称冲突可以通过npm注册表来解决。后者之间的名称冲突可以通过域名注册处来解决。

    • 可以通过将符号添加到JavaScript中,以避免方法之间的名称冲突。例如,任何对象都可以通过添加一个键为.NET的方法而成为可迭代的。由于每个符号都是唯一的,所以这个键永远不会与任何其他属性键.Symbol.iterator发生冲突。

    然而,带有字符串键的方法会导致名称冲突:

    • 不同的库可能会对他们添加到.Array.prototype的方法使用相同的名字。

    • 如果一个名字已经被某个库使用了,那么这个名称就不能用于命名JavaScript标准库的一个新特性。

    具有讽刺意味的是,谨慎地添加一个方法可能会适得其反:

    • if (!Array.prototype.libraryMethod) { Array.prototype.libraryMethod = function () { /*...*/ };}

      我们会检查一个方法是否已经存在。如果没有,我们就添加它。

      如果我们要实现一个polyfill(模拟原生Web平台功能),将新的JavaScript方法添加到不支持它的引擎中,那么这个技术就能发挥作用。(顺便说一下,这是修改内置原型的一个合法用例。也许是唯一的一个)。

      然而,如果我们对一个普通库的方法使用这种技术,然后JavaScript获取具有相同名称的方法,那么这两种实现的工作方式就不一样了,并且使用库方法的所有代码在使用内置方法时都会中断。

      必须更改名称的原型方法示例

      • ES6的方法最初是与JavaScript框架MooTools(错误报告.String.prototype.includes().contains()全局添加的方法相冲突。

      • ES2016的方法最初是与MooTools(错误报告 ).Array.prototype.includes().contains()添加的方法相冲突。

      • ES2019的方法最初是和MooTools(错误报告 博客文章).Array.prototype.flat().flatten()相冲突。

      修改内置原型并不总是糟糕的

      你可能会对MooTools的创建者粗心大意感到疑惑。但是,向内置原型添加方法并不总是糟糕的。在ES3(1999年12月)和ES5(2009年12月)之间,JavaScript是一种停滞不前的语言。MooTools和Prototype等框架改进了它。这些方法的缺点只有在JavaScript的标准库再次增加之后才会凸显出来。


      冲突源2:检查一个属性的存在

      ES2022的方法最初是.NET的。因为以下库检查属性以确定对象是否是一个HTML集合(而不是一个数组),所以它必须被重新命名:Magic360YUI 2YUI 3.Array.prototype.at().item().item

      冲突源3:检查全局变量是否存在

      自ES2020以来,我们可以通过globalThis访问全局对象。Node.js一直使用该名称来实现此目的。最初的计划是为所有平台标准化该名称.global

      然而,以下模式经常被用来确定当前平台:

      • if (typeof global !== 'undefined') { // We are not running on Node.js}

        如果浏览器也有一个名为.global的全局变量,这种模式(以及类似的模式)就会失效。因此,标准化的名称被改为.globalglobalThis



        冲突源4:通过创建局部变量with语句
        JavaScript的声明with语句

        长期以来,人们一直不鼓励使用JavaScript的with语句,甚至在ES5中引入的严格模式中也被定为非法。在其他地方,严格模式在ECMAScript模块中是活跃的。

        该语句将一个对象的属性变成局部变量:with

        • cons t myObject = { ownProperty: 'yes',};

          with (myObject) { // Own properties become local variables assert.equal( ownProperty, 'yes' );

          // Inherited properties become local variables, too assert.equal( typeof toString, 'function' );}

          由with语句引起的冲突

          框架Ext.js使用的代码与下面的片段有些相似点:

          • function myFunc(values) { with (values) { console.log(values); // (A) }}myFunc([]); // (B)

            当ES6方法被添加到JavaScript中时,如果用Array(B行)来调用它,它就会失效。该语句将Array的所有属性变成了局部变量。其中一个是继承的属性。因此,A行中的语句已记录,不再是参数(错误报告1错误报告2

            Array.prototype.values()myFunc()withvalues.valuesArray.prototype.valuesvalue


            Unscopables:防止with导致的冲突

            公共符号Symbol.unscopables允许对象隐藏语句中的某些属性。它只在标准库中使用一次,对于Array.prototype:with

            • assert.deepEqual( Array.prototype[Symbol.unscopables], { __proto__: , at: true, copyWithin: true, entries: true, fill: true, find: true, findIndex: true, flat: true, flatMap: true, includes: true, keys: true, values: true, });


              结论

              以上提出了JavaScript结构与现有代码发生名称冲突的四种方式:

              • 向内置原型添加方法

              • 检查属性是否存在

              • 检查全局变量是否存在

              • 创建局部变量with

              冲突的某些来源很难预测,但存在以下一些一般规则:

              • 不要更改全局数据。

              • 避免检查是否存在全局数据。

              • 请注意,内置值将来可能会获得其他属性(自己的或继承的属性)。

              对于库来说,为JavaScript值提供功能的最安全方法是通过函数。如果JavaScript得到一个pipe operator,我们也可以像方法一样使用它们。

              参考资料:https://2ality.com/2022/03/naming-conflicts.html

              END

              《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造

:点击上方"蓝色字体"↑ 可以订阅噢!

摘要 51RGB官方微信

网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容篇。

常用DIV+CSS命名大全集合,即CSS命名规则

我们开发CSS+DIV网页(Xhtml)时候,比较困惑和纠结的事就是CSS命名,特别是新手不知道什么地方该如何命名,怎样命名才是好的方法。

一、命名规则说明

1、所有的命名最好都小写

2、属性的值一定要用双引号("")括起来,且一定要有值如 class="helloweb" , id="helloweb"

3、每个标签都要有开始和结束,且要有正确的层次,排版有规律工整

4、空元素要有结束的tag或于开始的tag后加上"/"

5、表现与结构完全分离,代码中不涉及任何的表现元素,如:style、font、bgColor、border 等

6、<h1>到<h6>的定义,应遵循从大到小的原则,体现文档的结构,并有利于搜索引擎的查询。

7、给每一个表格和表单加上一个唯一的、结构标记 id

8、给图片加上alt 标签,优点是在于在图片发生错误时,alt 可以体现给用户

9、尽量使用英文命名原则

10、尽量不缩写,除非一看就明白的单词

下面给大家介绍常见CSS命名和DIV CSS命名方法。

二、相对网页外层重要部分CSS样式命名

外套 wrap ------------------用于最外层

头部 header ---------------用于头部

主要内容 main ------------用于主体内容(中部)

左侧 main-left -------------左侧布局

右侧 main-right -----------右侧布局

导航条 nav -----------------网页菜单导航条

内容 content --------------用于网页中部主体

底部 footer -----------------用于底部

三、DIV+CSS命名参考表

以下为CSS样式命名与CSS文件命名参考表,DIV CSS命名集合:

CSS样式命名说明
网页公共命名
#wrapper页面外围控制整体布局宽度
#container或#content容器,用于最外层
#layout布局
#head, #header页头部分
#foot, #footer页脚部分
#nav主导航
#subnav二级导航
#menu菜单
#submenu子菜单
#sideBar侧栏
#sidebar_a, #sidebar_b左边栏或右边栏
#main页面主体
#tag标签
#msg #message提示信息
#tips小技巧
#vote投票
#friendlink友情连接
#title标题
#summary摘要
#loginbar登录条
#searchInput搜索输入框
#hot热门热点
#search搜索
#search_output搜索输出和搜索结果相似
#searchBar搜索条
#search_results搜索结果
#copyright版权信息
#branding商标
#logo网站LOGO标志
#siteinfo网站信息
#siteinfoLegal法律声明
#siteinfoCredits信誉
#joinus加入我们
#partner合作伙伴
#service服务
#regsiter注册
arr/arrow箭头
#guild指南
#sitemap网站地图
#list列表
#homepage首页
#subpage二级页面子页面
#tool, #toolbar工具条
#drop下拉
#dorpmenu下拉菜单
#status状态
#scroll滚动
.tab标签页
.left .right .center居左、中、右
.news新闻
.download下载
.banner广告条
电子贸易相关
.products产品
.products_prices产品价格
.products_description产品描述
.products_review产品评论
.editor_review编辑评论
.news_release最新产品
.publisher生产商
.screenshot缩略图
.faqs常见问题
.keyword关键词
.blog博客
.forum论坛
CSS文件命名说明
master.css,style.css主要的
module.css模块
base.css基本共用
layout.css布局,版面
themes.css主题
columns.css专栏
font.css文字、字体
forms.css表单
mend.css补丁
print.css打印

CSS命名其它说明:

DIV+CSS命名小结:无论是使用“.”(小写句号)选择符号开头命名,还是使用“#”(井号)选择符号开头命名都无所谓,但我们最好遵循,主要的、重要的、特殊的、最外层的盒子用“#”(井号)选择符号开头命名,其它都用“.”(小写句号)选择符号开头命名,同时考虑命名的CSS选择器在HTML中重复使用调用。

通常我们最常用主要命名有:wrap(外套、最外层)、header(页眉、头部)、nav(导航条)、menu(菜单)、title(栏目标题、一般配合h1\h2\h3\h4标签使用)、content (内容区)、footer(页脚、底部)、logo(标志、可以配合h1标签使用)、banner(广告条,一般在顶部)、copyRight(版权)。其它可根据自己需要选择性使用。

建议:主要的、重要的、最外层的盒子用“#”(井号)选择符号开头命名,其它都用“.”(小写句号)选择符号开头命名。

2.CSS样式文件命名如下:

主要的 master.css

布局,版面 layout.css

专栏 columns.css

文字 font.css

打印样式 print.css

主题 themes.css

四、英文命名技巧

如果遇到不常用的,可以借助翻译工具进行翻译取其英文命名。

以上为DIV+CSS的命名规则总结,相信通过规范的CSS 命名会给你以后做网站网页的维护带来方便。

想认识志同道合的朋友一起学习web

加入我们的学习QQ群 190166743

丰富的学习资源,周一到周四免费直播公开课

长按图片,识别二维码即可入群

你可能感兴趣的精彩内容

微信:UI设计自学平台加关注

长按关注:《UI设计自学平台》

↓↓↓