html之区分id和class

如何正确使用id和class?

        我们知道,在html页面中,我们可以给元素的标签中设置id和class,以便于在css中设置样式(id选择符前面应该加前缀符号“#”,而class选择符前面应该加前缀符号“.”)、在JavaScript中设置行为使整个页面变得丰富多彩。但是,怎么正确使用id和class呢?

    第一:应当记住id(在英文中即Identity)即身份的意思,那么就像身份证号,它是唯一的,故在一个网页里id只能使用一次。而class是类的意思,那么也就是说类似的、相似的元素都可以用同一个类名,即类具有普遍性,它可以重复使用多次(甚至可以说没有限制)。

  第二:我们认为id的优先级为100,而class的优先级为010,即id的优先级是高于class的。

  第三:在布局思路上,一般坚持这样的原则:

   1.id用来实现宏伟布局和设计包含块,尽量在结构外围使用id,比如:logo、导航、主题内容、版权等,很据命名规范可以分别命名为#logo、#nav、#contenter、#copyright。

   2.class更多的被应用到文字板块和页面修饰等方面,尽量在结构内部使用。且最好将含有class属性的元素包含于含有id属性的元素之中,也就是说不要在含有class属性的元素内部包含含有id属性的元素(当然,特殊情况除外,具体问题具体分析),这样做的好处是有利于网站代码的后期维护与修改。

   第四:应当注意,对于一个元素根据需要我们可以同时命名class和id。比如

       <span id="container" class="color">some words</span>

除此之外,我们还可以给一个元素同时命名几个class,但是这几个类名应当被包含在同一个引号里,用空格分开。比如

        <span id="container" class="color size weight">some words</span>

    第五:下面的名称在用作id名和class名时大家可以做一下参考:

(1)页面结构

  容器: container

  页头:header

  内容:content/container

  页面主体:main

  页尾:footer

  导航:nav

  侧栏:sidebar

  栏目:column

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

  左右中:left right center

(2)导航

  导航:nav

  主导航:mainbav

  子导航:subnav

  顶导航:topnav

  边导航:sidebar

  左导航:leftsidebar

  右导航:rightsidebar

  菜单:menu

  子菜单:submenu

  标题: title

  摘要: summary

(3)功能

  标志:logo

  广告:banner

  登陆:login

  登录条:loginbar

  注册:regsiter

  搜索:search

  功能区:shop

  标题:title

  加入:joinus

  状态:status

  按钮:btn

  滚动:scroll

  标签页:tab

  文章列表:list

  提示信息:msg

  当前的: current

  小技巧:tips

  图标: icon

  注释:note

  指南:guild

  服务:service

  热点:hot

  新闻:news

  下载:download

  投票:vote

  合作伙伴:partner

  友情链接:link

  版权:copyright

  

最后,以苏轼的诗句勉励自己。

      莫听穿林打叶声,何妨吟啸且徐行,竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。  

  

时间: 2024-10-29 12:32:19

html之区分id和class的相关文章

辛星浅析html中的name和id的区别

可能新手朋友们能够很轻松的区分id和class,但是却不一定能够很轻松的区分id和name,下面说一下二者的区别和联系. 首先是联系,它们都可以用来标记一个元素,而且可以用JavaScript来操作,但是操作方法不同,分别使用getElementById和getElementByName来定位DOM节点. 然后就是区别了,这个很简单,首先是一个纲要:name用于表单,id用于样式. 我们在做post提交数据的时候,为了区分表单内的各个元素,我们使用name来区分,我们是无法通过id来获取每个表单

Document类型

1.文档的子节点 Document类型可以表示HTML页面或者其他基于XML的文档.不过,最常见的应用还是作为HTMLDocument实例的document对象.通过这个文档对象,不仅可以取得与页面有关的信息,而且还能操作页面的外观及其底层结构. 虽然DOM标准规定Document节点的子节点可以是DocumentType.Element.ProcessingInstruction或Comment,但还有两个内置的访问其子节点的快捷方式.第一个就是documentElement属性,该属性始终指

HTML DOM(二):节点的增删改查

上一篇讲述了DOM的基本知识,从其得知,在DOM眼中,HTML的每个成分都可以看作是节点(文档节点.元素节点.文本节点.属性节点.注释节点,其中,属性节点是属于元素节点),本篇的内容就是通过DOM对这些节点进行增删改查的操作. 获取(R) 1. getElementById(id).getElementsByName(name).getElementsByTagName(tagName),这三种方法都会忽略文档的结构. getElementById(id):通过id获取元素节点,如果页面上含有多

iOS9系列专题二——全新的搜索功能api

更加智能的搜索方案--iOS9搜索功能新api 一.引言 iOS9中为我们提供了许多新的api,搜索功能的加强无疑是其中比较显眼的一个.首先,我们先设想一下:如果在你的app中定义一种标识符,在siri和搜索中,可以用过这个标识符搜索到你的app,是不是很棒?不,这还差得远,你可以定义任意的数据,使其在搜索和siri中可以快速检索到,这样的搜索功能是不是非常酷?不,还有更cool的,你甚至可以在你的网站中添加一些标志,使apple的爬虫可以检索到,那样,即使用户没有安装你的app,也可以在搜索中

Oracle分组函数cube VS rollup

分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);2)初始化表insert into group_test values (10,'Coding', 'Bruce',1000);insert into group_test values (10,'Programmer','Clair',1000);insert

【repost】DOM CRUD

//DOM 的 CRUD // c 创建create // 1.直接往body中动态的添加标签(可以是任意类型)document.write('helloWorld');document.write('<p>"helloworld"</p>'); // 2. 创建一个新的标签,然后插入到body中任意的一个标签中 appendChildvar div = document.createElement('div');div.style.background = '

浏览器兼容性小记-DOM篇(二)

1.DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现:每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型: 1 Node.ELEMENT_NODE 2 Node.ATTRIBUTE_NODE 3 Node.TEXT_NODE 4 Node.CDATA_SECTION_NODE 5 Node.ENTITY_REFERENCE_NODE 6 Node.ENTITY_NODE 7 Node.PROCESSING_INSTRUCTION_NODE

从原型链看DOM--Document类型

JavaScript通过Document类型表示文档,原型链的继承关系为:document.__proto__->HTMLDocument.prototype->Document.prototype->Node.prototype->EventTarget.prototype Document节点具有下列特征:以下属性均为Node.prototype上的 nodeType值为9 nodeName值为"#document" nodeValue值为null pare

SQLite3及iOS本地化存储

(一)SQLite3: (1)定义:是一款轻量级的,嵌入式的数据库.是一个进程内的库,本质就是一个文件,不需要依赖外部,不需要服务器,不需要安装或者管理,就是一个单一的磁盘文件.而服务端的数据库往往都很大,例如Orcal,MySql,SQL Server,这些需要独立的服务器,安装配置并且需要大量人员的维护. (2)数据类型:五个数据类型,integer整数,real小数,text字符串,blob二进制数据(把一段图片,音频,视频塞进去,一般不塞,数据库是查询检索的,而不是保存的,没法检索,一般