- 浏览: 122383 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
煎蛋就是幸福:
...
试读《跨终端Web》 -
xiaoshitoushifa:
最好把demo贴上啊!发一份到435065893@qq.com ...
漂亮的系统后台UI 欣赏 -
xiaoshitoushifa:
只有图片 没有demo 啊
漂亮的系统后台UI 欣赏
你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。
1. *
* {
margin: 0;
padding: 0;
}
星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中所有元素的margin和padding设置为0。 *选择符也可以在子选择器中使用。
#container * {
border: 1px solid black;
}
上面的代码中会应用于id为container元素的所有子元素中。 除非必要,我不建议在页面中过的的使用星状选择符,因为他的作用域太大,相当耗浏览器资源。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
2. #X
#container {
width: 960px;
margin: auto;
}
井号作用域有相应id的元素。id是我们最常用的css选择器之一。id选择器的优势是精准,高优先级(优先级基数为100,远高于class的10), 作为javascript脚本钩子的不二选择,同样缺点也很明显优先级过高,重用性差,所以在使用id选择器前,我们最好问下自己,真的到了非用id选择 器的地步? 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
3. .X
.error {
color: red;
}
这是一个class(类)选择器。class选择器与id选择器的不同是class选择器能作用于期望样式化的一组元素。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
4. X Y
li a {
text-decoration: none;
}
这也是我们最常用的一种选择器——后代选择器。用于选取X元素下子元素Y,要留意的点是,这种方式的选择器将选取其下所有匹配的子元素,无视层级,所以有 的情况是不宜使用的,比如上述的代码去掉li下的所有a的下划线,但li里面还有个ul,我不希望ul下的li的a去掉下划线。使用此后代选择器的时候要 考虑是否希望某样式对所有子孙元素都起作用。这种后代选择器还有个作用,就是创建类似命名空间的作用。比如上述代码样式的作用域明显为li。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
5. X
a { color: red; }
ul { margin-left: 0; }
标签选择器。使用标签选择器作用于作用域范围内的所有对应标签。优先级仅仅比*高。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
6. X:visited和X:link
a:link { color: red; }
a:visted { color: purple; }
使用:link伪类作用于未点击过的链接标签。:hover伪类作用于点击过的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
7. X+Y
ul + p {
color: red;
}
相邻选择器,上述代码中就会匹配在ul后面的第一个p,将段落内的文字颜色设置为红色。(只匹配第一个元素) 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
8. X>Y
div#container > ul {
border: 1px solid black;
}
<div id="container">
<ul>
<li> List Item
<ul>
<li> Child </li>
</ul>
</li>
<li> List Item </li>
<li> List Item </li>
<li> List Item </li>
</ul>
</div>
子选择器。与后代选择器X Y不同的是,子选择器只对X下的直接子级Y起作用。在上面的css和html例子中,div#container>ul仅对container中最近一级的ul起作用。从理论上来讲X > Y是值得提倡选择器,可惜IE6不支持。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
9. X ~ Y
ul ~ p {
color: red;
}
相邻选择器,与前面提到的X+Y不同的是,X~Y匹配与X相同级别的所有Y元素,而X+Y只匹配第一个。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
10. X[title]
a[title] {
color: green;
}
属性选择器。比如上述代码匹配的是带有title属性的链接元素。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
11. X[title="foo"]
a[href="http://css9.net"] {
color: #1f6053;
}
属性选择器。 上面的代码匹配所有拥有href属性,且href为http://css9.net的所有链接。
这个功能很好,但是多少又有些局限。如果我们希望匹配href包含css9.net的所有链接该怎么做呢?看下一个选择器。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
12. X[title*="css9.net"]
a[href*="css9.net"] {
color: #1f6053;
}
属性选择器。正如我们想要的,上面代码匹配的是href中包含"css9.net"的所有链接。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
13. X[href^="http"]
a[href^="http"] {
background: url(path/to/external/icon.png) no-repeat;
padding-left: 10px;
}
属性选择器。上面代码匹配的是href中所有以http开头的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
13. X[href$=".jpg"]
a[href^="http"] {
background: url(path/to/external/icon.png) no-repeat;
padding-left: 10px;
}
属性选择器。在属性选择器中使用$,用于匹配结尾为特定字符串的元素。在上面代码中匹配的是所有链接到扩展名为.jpg图片的链接。(注意,这里仅仅是.jpg图片,如果要作用于所有图片链接该怎么做呢,看下一个选择器。)
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
14. X[data-*="foo"]
在上一个选择器中提到如何匹配所有图片链接。如果使用X[href$=".jpg"]实现,需要这样做:
a[href$=".jpg"],
a[href$=".jpeg"],
a[href$=".png"],
a[href$=".gif"] {
color: red;
}
看上去比较麻烦。另一个解决办法是为所有的图片链接加一个特定的属性,例如‘data-file’
html代码
<a href="path/to/image.jpg" data-filetype="image"> 图片链接 </a>
css代码如下:
a[data-filetype="image"] {
color: red;
}
这样所有链接到图片的链接字体颜色为红色。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
15. X[foo~="bar"]
属性选择器。属性选择器中的波浪线符号可以让我们匹配属性值中用空格分隔的多个值中的一个。看下面例子:
html代码
<a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>
css代码
a[data-info~="external"] {
color: red;
}
a[data-info~="image"] {
border: 1px solid black;
}
在上面例子中,匹配data-info属性中包含“external”链接的字体颜色为红色。匹配data-info属性中包含“image”的链接设置黑色边框。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
17. X:checked
checked伪类用来匹配处于选定状态的界面元素,如radio、checkbox。
input[type=radio]:checked {
border: 1px solid black;
}
上面代码中匹配的是所有处于选定状态的单选radio,设置1px的黑色边框。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
18. X:after和X:before
这两个伪类与content结合用于在元素的前面或者后面追加内容,看一个简单的例子:
h1:after {content:url(/i/logo.gif)}
上面的代码实现了在h1标题的后面显示一张图片。
我们也经常用它来实现清除浮动,写法如下:
.clearfix:after {
content: "";
display: block;
clear: both;
visibility: hidden;
font-size: 0;
height: 0;
}
.clearfix {
*display: inline-block;
_height: 1%;
}
19. X:hover
div:hover {
background: #e3e3e3;
}
:hover伪类设定当鼠标划过时元素的样式。上面代码中设定了div划过时的背景色。
需要注意的是,在ie 6中,:hover只能用于链接元素。
这里分享一个经验,在设定链接划过时出现下滑线时,使用border-bottom会比text-decoration显得更漂亮些。代码如下:
a:hover {
border-bottom: 1px solid black;
}
兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
20. X:not(selector)
div:not(#container) {
color: blue;
}
否定伪类选择器用来在匹配元素时排除某些元素。在上面的例子中,设定除了id为container的div元素字体颜色为blue。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
21. X::pseudoElement
::伪类用于给元素片段添加样式。比如一个段落的第一个字母或者第一行。需要注意的是,这个::伪类只能用于块状元素。
下面的代码设定了段落中第一个字母的样式:
p::first-letter {
float: left;
font-size: 2em;
font-weight: bold;
font-family: cursive;
padding-right: 2px;
}
下面的代码中设定了段落中第一行的样式:
p::first-line {
font-weight: bold;
font-size: 1.2em;
}
兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
(IE6竟然支持,有些意外啊。)
22. X:nth-child(n)
li:nth-child(3) {
color: red;
}
这个伪类用于设定一个序列元素(比如li、tr)中的第n个元素(从1开始算起)的样式。在上面例子中,设定第三个列表元素li的字体颜色为红色。
看一个更灵活的用法,在下面例子中设定第偶数个元素的样式,可以用它来实现隔行换色:
tr:nth-child(2n) {
background-color: gray;
}
兼容浏览器:IE9+、Firefox、Chrome、Safari
23. X:nth-last-child(n)
li:nth-last-child(2) {
color: red;
}
与X:nth-child(n)功能类似,不同的是它从一个序列的最后一个元素开始算起。上面例子中设定倒数第二个列表元素的字体颜色。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
24. X:nth-of-type(n)
ul:nth-of-type(3) {
border: 1px solid black;
}
与X:nth-child(n)功能类似,不同的是它匹配的不是某个序列元素,而是元素类型。例如上面的代码设置页面中出现的第三个无序列表ul的边框。
兼容浏览器:IE9+、Firefox、Chrome、Safari
25. X:nth-last-of-type(n)
ul:nth-last-of-type(3) { border: 1px solid black; }
与X:nth-of-type(n)功能类似,不同的是它从元素最后一次出现开始算起。上面例子中设定倒数第三个无序列表的边框
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
26. X:first-child
:first-child伪类用于匹配一个序列的第一个元素。我们经常用它来实现一个序列的第一个元素或最后一个元素的上(下)边框,如:
ul:nth-last-of-type(3) {
border: 1px solid black;
}
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera
27. X:last-child
ul > li:last-child {
border-bottom:none;
}
与:first-child类似,它匹配的是序列中的最后一个元素。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
28. X:only-child
div p:only-child {
color: red;
}
这个伪类用的比较少。在上面例子中匹配的是div下有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。
<div><p> My paragraph here. </p></div>
<div>
<p> Two paragraphs total. </p>
<p> Two paragraphs total. </p>
</div>
在上面代码中第一个div中的段落p将会被匹配,而第二个div中的p则不会。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
29. X:only-of-type
li:only-of-type {
font-weight: bold;
}
这个伪类匹配的是,在它上级容器下只有它一个子元素,它没有邻居元素。例如上面代码匹配仅有一个列表项的列表元素。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera
30. X:first-of-type
:first-of-type伪类与:nth-of-type(1)效果相同,匹配出现的第一个元素。我们来看个例子:
<div>
<p> My paragraph here. </p>
<ul>
<li> List Item 1 </li>
<li> List Item 2 </li>
</ul>
<ul>
<li> List Item 3 </li>
<li> List Item 4 </li>
</ul>
</div>
在上面的html代码中,如果我们希望仅匹配List Item 2列表项该如何做呢:
方案一:
ul:first-of-type > li:nth-child(2) {
font-weight: bold;
}
方案二:
p + ul li:last-child {
font-weight: bold;
}
方案三:
ul:first-of-type li:nth-last-child(1) {
font-weight: bold;
}
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera。
发表评论
-
去掉谷歌浏览器默认的input、textarea的边框
2012-08-08 10:33 9041、使用Chrome的都知道,当鼠标焦点在input、text ... -
autocomplete 属性规定输入字段是否应该启用自动完成功能。
2012-08-08 10:27 1324定义和用法 autocomplete 属性规定输入字段是否应 ... -
IE6,IE7下按钮(BUTTON)变宽的解决方法
2011-12-07 16:01 666代码如下: .button{overflow: visible ... -
CSS-命名总结
2011-11-02 07:47 810CSS-命名总结 CSS书写命名总结 一、命名原则: ... -
input样式
2011-09-10 15:23 707无边:border:0 none; outline-style ... -
用CSS实现图片替换文字三种方法(Image replacement)
2010-04-19 16:42 1280不论是对浏览者还是对 ... -
字体对齐方式对li行间距的兼容影响
2010-04-14 23:05 1366在进行布局的时候注意对li相关文字内容设置文字对齐方式,否则会 ... -
全面兼容IE6/IE7/IE8/FF的CSS HACK写法
2010-04-11 11:15 904浏览器市场的混乱,给 ... -
认识display:inline;与float:left;
2010-04-04 08:20 1037一. 首先我们要 ...
相关推荐
本文将详细解析30个你不可不知的CSS选择器,帮助你更好地理解和运用它们。 1. **通配符选择器 `*`**:用于选择文档中的所有元素,通常用于样式重置,但现在不推荐直接使用,因为性能开销较大。例如: ```css * { ...
CSS编码规范定义了编写CSS代码时应当遵循的一系列规则和约定,如属性的书写顺序、命名规范、选择器的使用限制等。《人人FEDCSS编码规范》是其中的一种,它详细规定了如何编写高效、可维护的CSS代码。然而,要让...
在这个例子中,第一个`<p>`元素的文本颜色将被设置为红色,因为它使用了类选择器。第二个`<p>`元素的文本颜色将被设置为蓝色,因为它使用了ID选择器,并且包含了`!important`声明,这使得它的特异性高于类选择器。 ...
2. **选择器与层叠**:讲解类选择器、ID选择器、伪类、伪元素,以及如何理解CSS的层叠规则。 3. **响应式设计**:如何利用媒体查询实现不同设备和屏幕尺寸下的适配。 4. **布局技术**:如Flexbox和Grid布局,用于...
3. **区分大小写**:在XHTML中,CSS选择器是区分大小写的,所以推荐使用全小写字母来避免潜在问题。同样,class和id在HTML中也是区分大小写的,确保CSS和HTML中的定义一致。 4. **删除不必要的元素限定**:如果你为...
jQuery日期选择器是jQuery UI组件库中的一个常用组件,它能够让用户通过图形界面选择日期。本文深入解析了jQuery日期选择器的各种功能和配置选项,以及如何使用它来增强Web表单的用户体验。 首先,关于日期选择器的...
这个“CSS教程大全”包含了多个不同主题的教程,旨在帮助初学者和有经验的开发者深入理解和掌握CSS技术。 在CSS的世界里,**入门**是非常重要的第一步。这通常涉及到理解基本的选择器、属性和值,如何将CSS与HTML...
在这些组件中,日期选择器(Datebox)是一个非常常用的功能,用于用户输入或选择日期。现在我们来详细探讨EasyUI日期选择器的相关知识点。 ### 1. 基本使用 在HTML中,我们需要一个`<input>`元素,并为其添加`...
在JavaScript中,最常用的选择器包括ID选择器(#id)、类选择器(.class)、标签选择器(element)以及CSS选择器组(, 和 |)。这些选择器能够帮助我们准确地定位到DOM树中的特定元素。而自定义选择器则是在这些基础之上,...
CSS伪类选择器是CSS中一种特殊的选择器,它们用来定义元素的特殊状态,如元素被访问过的状态、鼠标悬停的状态、内容的特定部分等等。它们允许开发者在没有额外的类或ID的情况下,为元素的某个状态定义样式,从而增强...
6. **CSS选择器**:精准选择需要样式的元素是CSS的关键。除了基础的选择器如ID、类、标签名,还有更高级的选择器如伪类、伪元素、属性选择器等,能提高代码的可读性和效率。 7. **CSS3新特性**:如阴影(box-shadow...
- **选择器列表**:提供CSS选择器的完整列表。 - **选择器说明**:解释每个选择器的功能及应用场景。 - **9.3 CSS听觉参考手册** - **听觉属性**:介绍CSS中的听觉相关属性。 - **应用实例**:提供实例代码展示...
对于同一元素的多个定义,以最近(即最具体)的选择器为准。例如: ```html <p class="update">Lorem ipsum dolor sit amet ``` CSS定义: ```css p { margin: 1em 0; font-size: 1em; color: #333; } ....
#### CSS选择器 CSS提供了多种类型的选择器来定位元素并应用样式: 1. **HTML元素选择器(TagName)**:选择所有指定类型的HTML元素。例如,`td { color: #FFFF00; }`将为所有`<td>`元素设置黄色的文字颜色。 2. ...
复杂的选择器虽然可以实现更精确的样式控制,但同时也增加了CSS解析的负担。因此,建议尽量使用简单的类名选择器来代替复杂的层级嵌套选择器。 - **复杂的层级选择器**: `treeitem[mailfolder=true]>treerow>...
CSS2.0中文手册.chm:这个文件是CSS2.0的中文版官方参考手册,包含了所有CSS2.0的属性、选择器和规则的详细解释。它帮助开发者了解如何通过CSS控制网页元素的外观,包括字体、颜色、布局、定位等,以及如何实现响应...
尽量减少使用通配符(*)选择器和后代选择器(如`.parent .child`),它们会降低解析速度。优先使用ID和类选择器,以提高CSS性能。 11. **浏览器兼容性** 在编写CSS时,考虑不同浏览器的兼容性,可以使用条件注释...
本文将详细解析标题“常用的CSS属性的英文单词总结及用法、解释”所涵盖的关键知识点,帮助你更好地理解和运用这些属性。 1. **颜色和背景** - `color`: 设置文本颜色,可以使用颜色名称、十六进制值或RGB值。 - ...
### DIV CSS最有可能遇到的八个面试问题解析 随着前端技术的发展与迭代,DIV CSS作为网页布局的核心技术之一,其重要性不言而喻。对于应聘前端开发或网页设计岗位的人来说,掌握扎实的DIV CSS知识是必不可少的。...