《CSS mastery》 读书笔记 2014-05-27 22:22 by 屁颠屁颠攻城湿, ... 阅读, ... 评论, 收藏, 编辑
又翻了一下之前的读书笔记,再重温了忘掉的细节。最近一年的工作,由于有重构岗位的同学负责CSS的编写,虽说还是接触到,但毕竟不写好久了,有些东西还是忘记了,例如选择器的权重计算细节。这个笔记只是部分,后半部分快速浏览了,没写笔记。
1、元素命名规则类名或者ID以元素是做什么的来命名,不要以元素的外观表现来命名。类名或者ID全部小写,并用连字符号或许下划线分隔。(.add-class)2、伪类链接伪类: :link和:visited动态为例: :hover :active :focus设置:fouces与:hover相同的样式,让使用键盘来访问元素(更多时候是a标签)时,表现就跟用鼠标移到该元素上的效果相同用途:<a></a>使用:link,:visited,:hover,:active,:focus使链接的效果更丰富;:link指未访问<a>标签前注意:<a>中使用伪类是,必须注意伪类套用样式的顺序,不然会导致后面的伪类覆盖了前面的伪类的情况顺序为:a:link,a:visited,a:hover,a:focus,a:active(记忆:LVHFA)习惯:LV一般一起设置,HFA一起设置eg: a:link,a:visited{text-decoration:none;} a:hover,a:focus,a:active{text-decoration:underline;}表格行<tr></tr>中使用:hover伪类,悬停的该行整行变色提交按钮上使用:active输入框中使用:focus,使输入时获得丰富效果注意:IE7及以下的版本不支持除链接外的其他元素上使用伪类选择器!3、选择器常用选择器:类型(元素、简单)选择器ID选择器类选择器伪类通用选择器: *(通配)高级选择器:子选择器、相邻同胞选择器子选择(IE7以上才支持): #nav>li 选择#nav下的直接(第一个)li子元素,注意与通用选择器(#nav li)的区别注意这个选择器与后代选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一个后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择相邻同胞选择(定位位于同一个父元素下某个元素之后的一个元素): h2+p 选择h2后面紧跟的一个p元素属性选择器(IE6不支持)eg: [id="header"]{ color:red;}(指拥有id=header属性的所有元素 或者 div[title]{}(指选择有title属性的div元素)伪元素选择器:first-letter、first-line、before、aftereg: p :first-letter{color:red;} div:after{content:"a";}4、层叠和特殊性层叠:处理同一个元素可能有一个或多个样式规则,层叠给每个规则分配一个重要度。特殊性:选择器的特殊决定规则的次序。规则是,给每种选择器分配一个数字值,然后将规则的每个选择器的值加起来,计算出该数值来,按照最高数值的规则来应用样式style行内属性的规则特殊性总是高于其他选择器(因为其特殊性为1,0,0,0)两个规则的特殊性相同,后定义的规则优先选择器特殊性分为4个等级a,b,c,d(特殊性:a,b,c,d)style行内样式,a=1;b等于ID选择器的总数c等于类、伪类和属性选择器的数量d等于类型选择器和伪元素选择器的数量eg: style="" 特殊性:1,0,0,0 如果基数是10,则特殊性是1000eg: #wrapper #content 特殊性:0,2,0,0 如果基数为10,则特殊性是200最终计算规则的特殊性时,基数默认不是指定为某个特定值的,如果选择器数量不多,可以指定基数就是为10来计算5、继承概念:应用样式的元素的后代会继承样式的某些属性。例如字号和颜色注意和层叠区分开来同时,继承而来的样式特殊性为空!直接应用于元素的样式总能覆盖继承而来的样式。