在书写高效 CSS 时会有哪些问题需要考虑?

 1.样式是:浏览器是从右向左来解析一个选择器的
2.ID最快,Universal最慢 有四种类型的key selector,解析速度由快到慢依次是:ID、class、tag和universal
3.不要tag-qualify (永远不要这样做 ul#main-navigation { } ID已经是唯一的,不需要Tag来标识,这样做会让选择器变慢。)
4.后代选择器最糟糕(换句话说,下面这个选择器是很低效的: html body ul li a { })
5.想清楚你为什么这样写
6.CSS3的效率问题(CSS3选择器(比如 :nth-child)能够漂亮的定位我们想要的元素,又能保证我们的CSS整洁易读。但是这些神奇的选择器会浪费很多的浏览器资源。)
7.我们知道#ID速度是最快的,那么我们都用ID,是不是很快。但是我们不应该为了效率而牺牲可读性和可维护性
 

注意:两种新增的Css3伪选择器。 

1、UI元素状态伪类 

我们把":enabled",":disabled",":checked"伪类称为UI元素状态伪类,这些主要是针对于HTML中的Form元素操作,最常见的比如我们"type="text"有enable和disabled两种状态,前者为可写状态后者为不可状态;另外"type="radio"和"type="checkbox""有"checked"和"unchecked"两种状态。来看两个实例,比如说你想将"disabled"的文本框与别的文本框区别出来,你就可以这样应用 

input[type="text"]:disabled {border:1px solid #999;background-color: #fefefe;} 

这样一来就把页面中禁用的文本框应用了一个不同的样式。那么对于其他几个用法是一样的,这里就不在讲述。IE6-8不支持":checked",":enabled",":disabled"这三种选择器。 

2、CSS3的:nth选择器 

这节内容才是关键,也是CSS3选择器最新部分,有人也称这种选择器为CSS3结构类,下面我们通过实际的应用来具体了解他们的使用和区别,首先列出他具有的选择方法: 

:fist-child选择某个元素的第一个子元素; 

:last-child选择某个元素的最后一个子元素; 

:nth-child()选择某个元素的一个或多个特定的子元素; 

:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算; 

:nth-of-type()选择指定的元素; 

:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算; 

:first-of-type选择一个上级元素下的第一个同类子元素; 

:last-of-type选择一个上级元素的最后一个同类子元素; 

nly-child选择的元素是它的父元素的唯一一个了元素; 

nly-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素; 

:empty选择的元素里面没有任何内容。 

这些伪选择器属于CSS3新增的,如果打击向熟练掌握一定要熟练掌握其性能。 

两种新增的Css3伪选择器。 

1、UI元素状态伪类 

我们把":enabled",":disabled",":checked"伪类称为UI元素状态伪类,这些主要是针对于HTML中的Form元素操作,最常见的比如我们"type="text"有enable和disabled两种状态,前者为可写状态后者为不可状态;另外"type="radio"和"type="checkbox""有"checked"和"unchecked"两种状态。来看两个实例,比如说你想将"disabled"的文本框与别的文本框区别出来,你就可以这样应用 

input[type="text"]:disabled {border:1px solid #999;background-color: #fefefe;} 

这样一来就把页面中禁用的文本框应用了一个不同的样式。那么对于其他几个用法是一样的,这里就不在讲述。IE6-8不支持":checked",":enabled",":disabled"这三种选择器。 

2、CSS3的:nth选择器 

这节内容才是关键,也是CSS3选择器最新部分,有人也称这种选择器为CSS3结构类,下面我们通过实际的应用来具体了解他们的使用和区别,首先列出他具有的选择方法: 

:fist-child选择某个元素的第一个子元素; 

:last-child选择某个元素的最后一个子元素; 

:nth-child()选择某个元素的一个或多个特定的子元素; 

:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算; 

:nth-of-type()选择指定的元素; 

:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算; 

:first-of-type选择一个上级元素下的第一个同类子元素; 

:last-of-type选择一个上级元素的最后一个同类子元素; 

nly-child选择的元素是它的父元素的唯一一个了元素; 

nly-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素; 

:empty选择的元素里面没有任何内容。 

这些伪选择器属于CSS3新增的,如果打击向熟练掌握一定要熟练掌握其性能。 

结构性伪类选择器

 1.  四个最基本的:root、not、empty、target    

 2. first-child、last-child、nth-child、nth-last-child、               
nth-child(odd)、nth-child(even)、nth-last-child(odd)、nth-last-child(even) 

 3.  nth-of-type、nth-last-of-type    
 4. 循环使用样式  
 5. only-child

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值