关于css优先级及怎样设计css书写

html-css09

关于css优先级及怎样设计css书写,第1张

css大致有4个级别,一个是浏览器默认css,一个是外部css,一个是内部css,一个是内联css,他们的优先级逐渐提高,也就是内联css优先级最高,何为内联,就是标签里设置的css样式,举个例子<p style="color:red">this is a paragraf.</p>这里直接在标签里设置的样式就是内联样式,而内部css就是在本页面里<style type="text/css">.body{color:red}</style>来书写的css,而外部css就是引入的外部css样式表了。下面说一下css样式表的设计,刚开始的时候,我感觉如果2个选择器,或者多个选择器拥有相同的css样式,就应该将他们合并,这样既可以节省空间,有方便查看,但是,我的想法在实践中被无情的打击了,当你设计一个大型网站的css时,每一个选择器他们的样式是不固定的,有时候可能会不停的改变,这样入过一个样式修改了,和他公用的选择器怎么办?

类选择器允许以一种独立于文档元素的方式来指定样式。该选择器可以单独使用,也可以与其他元素结合使用。

而与类选择器不同,id选择器在HTML文档仅仅使用一次,控制单个元素的样式。

.class1.class2 id和class选择器和选择器连写的时候中间没有分隔符,. 和 # 本身充当分隔符的元素

element#id id和class选择器和选择器连写的时候中间没有分隔符,. 和 # 本身充当分隔符的元素

*属性选择器

*伪类选择器

*伪元素选择器

优先级:从高到低

在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。

alink 表示未被访问状态

a:hover 表示鼠标悬停状态

a:active 表示活动状态

avisited 表示已被访问状态

他们的顺序应该是"LVHA"的顺序.

E:first-child 匹配元素E的第一个子元素

E:link 匹配所有未被点击的链接

E:visited 匹配所有已被点击的链接

E:active匹配鼠标已经其上按下、还没有释放的E元素

E:hover 匹配鼠标悬停其上的E元素

E:focus 匹配获得当前焦点的E元素

E:lang(c) 匹配lang属性等于c的E元素

E:enabled 匹配表单中可用的元素

E:disabled 匹配表单中禁用的元素

E:checked 匹配表单中被选中的radio或checkbox元素

E::selection匹配用户当前选中的元素

E:root 匹配文档的根元素,对于HTML文档,就是HTML元素

E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1

E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,第一个编号为1

E:nth-of-type(n)与:nth-child()作用类似,但是仅匹配使用同种标签的元素

E:nth-last-of-type(n) 与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素

E:last-child匹配父元素的最后一个子元素,等同于:nth-last-child(1)

E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)

E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)

E:only-child匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)

E:only-of-type 匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)

E:empty 匹配一个不包含任何子元素的元素,文本节点也被看作子元素

E:not(selector) 匹配不符合当前选择器的任何元素

参考