您现在的位置是:网站首页> 编程资料编程资料
剖析标注HTML元素时class比id所具有的优势HTML5全屏响应式缩放切换幻灯片代码html5 canvas实现的“我们要发财了”游戏源码Html制作简单而漂亮的登录页面html5实现的仿网页版微信聊天界面效果源码详解HTML5中rel属性的prefetch预加载功能使用HTML表格布局实例讲解html5 canvas实现的3D飞行飞行动画特效源码关于html的下载功能详解表格单元格内容超出时显示省略号效果(实现代码)
2021-08-30
1255人已围观
简介 这篇文章主要介绍了标注HTML元素时class比id所具有的优势,id的CSS优先级比class要高,因而修改样式时在class的基础上再去构建id标注的元素会更方便,需要的朋友可以参考下
在网页中有很复杂的 HTML 结构,如果我们使用 CSS 来定义相关的样式,就需要为这些结构指定相应的标志,然后再编写相应的 CSS 选择器来获取他们赋予样式。最常用的两个标注属性就是 id 和 class 了,例如:
- <div class=”header” id=”header” >div>
现在还有更多的选择方法,例如:属性选择器等。但是并不推荐使用,使用属性选择器虽然可以省略掉 id 和 class,但是存在 后期维护起来不方便、早期浏览器兼容性不好、影响浏览器的渲染效率 等问题。所以,虽然有了更多的选择,我还是推荐使用 id 和 class 以及 元素名 来构造 CSS 选择器。
既然 id 和 class 都可以标注 HTML 结构,那么我应该优先选择使用什么?这就是本文即将讨论的。
id 和 class 的区别
有经验的朋友可以略过这一部分。
1.唯一性和重复可用性
id 在网页结构中只能是唯一的,如果你指定了一个元素的 id 为 aa,那么网页中就不能再出现一个 id 为 aa 的 HTML 元素。虽然强大的浏览器会支持多个重复 id 并赋予对应样式,但这是不标准不允许的。
而 class 相反,它可以在网页结构中重复使用,你指定了一个元素的 class 为 bb,同时可以指定下一个元素的 class 为 bb,这两个元素可以同时被应用 bb 的样式。此外,你还可以为一个元素制定多个 class 属性值,这样就会同时获得多个属性的样式。
2.CSS 中优先级不同
在 CSS 选择器中,对 id 和 class 的样式应用优先级不同。id 的样式优先级要高于 class 的样式优先级,如果我对一个 id 为 aa 、class 为 bb 的 div 指定了下面的样式:
- #aa{background:red;}
- .bb{background:blue;}
那么浏览器会显示成红色背景。
3.跳转功能
使用 id 属性可以增加锚标记跳转功能,如果在页面中我们对一个 div 指定 id 为 aa ,那么我们在当前的 URL 后面加上 #aa ,页面将会立刻跳转到 id 为 aa 的 div 所在的位置。例如:百度百科的章节跳转。而 class 没有这个功能。
为什么使用 class 而不是 id
使用 class 究竟有什么好处?
1.减少命名
为复杂的结构起名字真是一个麻烦的事情,如果我使用 id 来标注,那么我必须为每一个结构起一个名字。而在网页中,有很多结构的样式和效果都是一样的(例如:统一的按钮样式),那么我们仅仅编写一个通用的 class 样式,然后为所有的需要相同样式的结构赋值这个 class 即可。
2.高度重复使用
class 可以重复应用在其他结构中,并且可以对某个元素应用多个 class ,那么这样就可以高度重复使用某个 class 样式了。比较极端的实际应用就是原子类,例如:
- .fl{float:left;display:inline;}
- .fr{float:rightright;display:inline;}
尽可能小的简短的写出一些类,然后对于某个需要这个样式(例如:上面的浮动)的元素直接写上 class (例如:class=“fl”)。
一般的应用来说,对于某些需要相同样式的结构,只编写一个样式,然后对这些结构赋值相同的 class 即可,这样达到高度的样式代码重用,而且修改起来也比较方便。
3.优先级低
class 的优先级高于 元素名,低于 id ,利用优先级低的这个特性可以方便调试和样式覆盖。
如果我们之前对一个元素使用了 id 来标注,我们想修改这个元素的样式,只能去修改对应的 CSS 样式代码或者对某样式使用 !important 强调语法来覆盖原有样式。
如果元素使用了 class 来标注,那么我们直接为元素增加一个 id ,然后构造一个元素 id 的 CSS 选择器即可进行修改覆盖。
正是因为这些特性,所以要尽量使用 class 来标注元素,方便后期维护等。
4.id 也是必须有的
class 也不是万能的,有很多地方我们必须同时使用 id 来标注。
5.锚标记跳转
要想在页面中使用锚标记来跳转,那只能指定某个跳转目标的 id ,因为 class 可以被重复多次使用,所以不具备跳转的功能。
6.用在 input 中
使用 input 的时候,通常要使用 label 标签来描述这个 input 的功能。将 label 与 input 关联的方法有两种,一种是使用 label 的 for 属性,属性值就是 input 的 id 值,另一种就是将 label 把相应的 input 包裹起来。很显然第一种比较灵活比较好,但是你必须要对相应的 input 指定一个 id 属性。
此外,有些特殊的需求,也必须使用 id ,这里不再总结了。
最佳的使用组合
之前有很多批评 class 的言论,甚至有言论说 W3C 应该废除 class 标签,潜行者m 也曾经是 id 属性的狂热使用者,但是在实践过程中,越来越发现 class 的优点并改用 class。
比较好的使用组合就是对于绝大多数的元素和结构等使用 class 来指定,对于极个别需求特定功能的元素使用 id 标注。
相关内容
- HTML设计模式日常学习笔记整理HTML5中的nav标签学习笔记HTML学习笔记--HTML的语法详解(必看)PHP-HTMLhtml重要知识点笔记(必看)HTML5学习笔记之html5与传统html区别 HTML基础笔记(推荐)
- 详解html中background-image属性的设置用一个DIV画图通过background-image叠加实现深入浅出CSS3 background-clip,background-origin和border-image教程
- HTML表格布局实例讲解html5绘制的用户数据表格与饼状图形效果源码有关HTML表格边框的设置小技巧Div+CSS对HTML的table表格定位用法实例深入解析HTML的table表格标签与相关的换行问题html制作细线表格的简单实例
- Nofollow标签的写法以及nofollow使用介绍SEO新站点nofollow标签的妙用网站优化中nofollow标签的使用与外部链接介绍浅谈:nofollow标签的使用与分析在网站SEO优化中nofollow标签的使用与外部链接合理应用nofollow标签可以增加网站权重谷歌调整nofollow标签对PR的处理nofollow标签的作用 nofollow标签添加方法
- 关于html的下载功能详解HTML5全屏响应式缩放切换幻灯片代码html5 canvas实现的“我们要发财了”游戏源码Html制作简单而漂亮的登录页面html5实现的仿网页版微信聊天界面效果源码剖析标注HTML元素时class比id所具有的优势详解HTML5中rel属性的prefetch预加载功能使用HTML表格布局实例讲解html5 canvas实现的3D飞行飞行动画特效源码表格单元格内容超出时显示省略号效果(实现代码)
- Table显示你要显示的边框代码Dreamweaver中怎么让html网页中的table边框细线显示?CSS样式简单实现Table没有外边框只有内边框一个属性border-collapse解决Table的边框问题CSS控制Table内外边框、颜色、大小示例css让table不显示边框的代码在火狐和谷歌浏览器中无效HTML table表格边框的控制详细说明用CSS设置表格Table的细边框的比较好用的方法 用CSS样式描述表格Table边框网页表格边框的设置方法网页表格表框制作技巧
- HTML与XHTML、以及HTML4与HTML5标签之间的区别简介浅谈HTML5 FileReader分布读取文件以及其方法简介HTML5的一个显示电池状态的API简介HTML5是什么 HTML5是什么意思 HTML5简介HTML5安全介绍之内容安全策略(CSP)简介HTML5的标签的代码的简单介绍 HTML5标签的简介html5新增的定时器requestAnimationFrame实现进度条功能HTML5新增加的功能详解iPhone5和iOS6上HTML5开发的新增功能html5简介及新增功能介绍
- 详解HTML的style标签以及相关的CSS引用HTML与XHTML、以及HTML4与HTML5标签之间的区别简介HTML5安全攻防之新标签攻击详解简单介绍HTML5中audio标签的使用详解HTML5中ol标签的用法详解HTML的<input> 标签及其禁用方法HTML中Li标签的使用示例HTML5 video标签(播放器)学习笔记(二):播放控制HTML页面中添加Canvas标签示例常用HTML meta 标签属性(网站兼容与优化需要)HTML常用标签大全及html标签的特点
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder方法HTML中文件上传时使用的<input type="file">元素的样式自定义浅谈html中input只读属性readonly和disable的区别点击按钮文字变成input框,点击保存变成文字的实现代码jQuery input文本框点击出现下拉选择框特效源码CSS3表单input输入框聚焦动画特效源码 24种关于input的file 控件及美化
- 前端开发每天必学之HTML入门介绍 html/css基础篇——html代码编写过程中的几个警惕点(必看)html、css基础注意点(前端必看篇)HTML CSS样式基础(必看篇)HTML基础总结推荐(段落)HTML基础知识——css样式表,样式属性,格式与布局详解HTML基础知识——设置超链接的样式简单实例HTML基础必看——全面了解css样式表HTML基础必看---表单,图片热点,网页划区和拼接详解HTML基础重点_一般标签、常用标签和表格浅谈HTML(css基础样式)
