为什么在写css时尽量使用class而不使用id来标记元素

虽然一直以来写css代码都是用得class类名来标记元素,但这更多是自己的习惯,今天对这个问题做个分析总结。

下面是为什么这么做的具体原因

一:元素的class类名可以有很多个,而id名只能有一个。通过给一个元素添加多个class类名,可以更为灵活的控制元素的样式

<div class="size color"></div> //尺寸为200 * 200,背景颜色为pink
.size {
    width: 200px;
    height: 200px;
}
.color {
    background: pink;
}

 <div id="size color"></div> //不能识别样式

#size {
    width: 200px;
    height: 200px;
}
#color {
    background: pink;
}

二:class和id的优先级不一样,混合使用可能会导致整体dom结构的样式杂乱,在后期的代码维护上造成很大的不便利。

css全称为层叠样式表,从名字出发,在写css代码时要尽量利用dom元素的层级结构来实现不同元素的样式效果,尽量避免定义元素的优先级比如!important以及id和class混用等手段。

三:具有相似样式的元素可以使用相同的class类名定义样式,减少代码量,而id只能用在一个元素上。

原文地址:https://www.cnblogs.com/zhaozhipeng/p/9324836.html

时间: 2024-11-13 17:39:32

为什么在写css时尽量使用class而不使用id来标记元素的相关文章

input标签写CSS时需要注意的几点(先收藏)

(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-05-05) 飞鱼的声纳顶部的搜索框让我头疼了很长时间,原因是总不能获得跨浏览器的统一样式.主要的问题有这么两个:一是input标签的高度不能统一,Firefox和IE中的高度始终不能一致:二是在IE浏览器中属性为text的input标签中的输入文字不像标准浏览器中的那样垂直居中显示,而是靠输入框的左上角显示. 为了彻底解决搜索框的这些问题,我以GreenGaint主题搜索框的样式为准,重写了一遍代码并且以像素为单位测量了

平常写css网页制作时最实用的九条CSS技巧

一.使用css缩写 使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则请参看<css基本语法>. 二.明确定义单位,除非值为0 忘记定义尺寸的单位是CSS新手普遍的错误.在HTML中你可以只写;100,但是在CSS中,你必须给一个准确的单位,比如:" width:100em.只有两个例外情况可以不定义单位:行高和0值.除此以外,其他值都必须紧跟单位,注意,不要在数值和单位之间加空格. 三.区分大小写 当在XHTML中使用CSS,CSS里定义的元素名称是区分大小

吐槽-----写页面时的工作笔记

最近一直在写页面我会告诉你?作为css高级菜鸟我就不吹嘘怎么写css的,bootstrap的规范非常好.在这里记录几点需要注意的事项 1.关于设计给我的图纸,只有一张PSD,像素不准,间距不统一,让我真没有办法,怒而下载神器MarkMan自己mark.我只想说我是程序猿,不是设计狮,你还能再不认真点吗?设计的不严谨,让很多程序员只能目测距离,很蛋痛.倒是有很多小工具可以测量,取色,比如FSC.不过没有MrakMan神奇,请看下图 顿时很轻松有木有 另外关于设计师吐槽程序员无法100%还原设计稿的

html基础,写代码时的总结等---ShinePans

index.html: <html> <meta http-equiv="content-type" content="text/html;charset=UTF-8"/> <head> <body> <center> <!--空格  --> <!--img src="与html文件位置相同或者本地url或者网络url" width="xxpx为边框宽度&qu

写插件时遇到的一个小问题,关于animate和css3的问题

昨天写代码时,偶然想到了如果我们把css3属性放在animate中,指定时间.能否实现动画呢.举个例子吧: <script> $(".box").animate({ "-webkit-transform":"rotate(90deg)" },1000); </script> 如上代码,box会在一秒种从0deg旋转到90deg吗?答案是否定的. 于是我查了下jquery的手册,发现animate的第一参数中确实不能放css

既然写CSS很容易,那为什么大家还是把CSS写的那么烂呢?

在众成翻译上看到一篇不错的css文章,所以就给转过来. 在你开始阅读这篇文章之前,一定要做好心理准备.因为我写的 90% 都是在发牢骚,只有最后大概 10% 介绍 CSS 技巧之最佳实践.提前给你们打好预防针啦. 前端工程师在职业发展中可能会遇到以下困境: 某个阶段,感觉(自己所做的)工作没有任何难度 为团队创造的价值越来越低啦 自己做的事情,大家都能做 同意的请举手.如果你确实是这样,(恭喜你)说明你是多数派. 而且说句实在话,CSS 确实很简单.另外我可以保证,就算是傻子也能写出下面的代码:

使用 Java 程序写文件时,记得要 flush()

使用 Java 程序往磁盘写文件时碰到了这样的问题:文件写不全. 假如内容(StringBuffer/StringBuilder)有 100W 个字符,但是通过 Java 程序写到文件里的却不到 100W ,部分字符不见了. 代码大致是这样的: 1 private void writeToDisk() throws Exception { 2 File file = new File("FILE_PATH"); 3 OutputStreamWriter osw = null; 4 os

写脚本时整数比较与字符串的比较

写脚本时整数比较与字符串的比较: 整数比较-eq 等于,如:if [ "$a" -eq "$b" ]-ne 不等于,如:if [ "$a" -ne "$b" ]-gt 大于,如:if [ "$a" -gt "$b" ]-ge 大于等于,如:if [ "$a" -ge "$b" ]-lt 小于,如:if [ "$a" -lt &q

今天和组内一起写代码时碰到了一个关于命名冲突的问题,最后用js命名空间的方法解决的。

//第一步,首先创建一个全局变量,可以放在自己的js方法库中方便以后用,这个就是用来注册命名空间的方法. ns = function(namespace){ var arr = namespace.split('.');  //将传入的字符串如"com.test.lzn"以'.'隔开做成一个数组 var strNamespace = ""; //这个是为了保存每一步循环进去的包名 for(var i=0;i<arr.length;i++) { if(i!=0)