参考网站

http://blog.csdn.net/yume_sola/article/details/70215695

http://www.youdiancms.com/jianrong/614.html

标签选择器

就是用标签名来当做选择器。 
1 、所有标签都能够当做选择器,比如body、h1、dl、ul、span等等 
2 、不管这个标签藏的多深,都能够被选择上。 
3 、选择的是所有的,而不是某一个。所以是共性,而不是特性。

希望页面上所有的超级链接都没有下划线:

        a{
/*去掉下划线:*/
text-decoration: none;
}

id选择器(#X)

#表示选择id,在选择器中使用#可以用id来定位某个元素。然后使用的时候需要问自己一下:我是不是必须要给这个元素来赋值个id来定位它呢?

id选择器是很严格的并且你没办法去复用它。

#pp{
color:black;
}

(1)任何的标签都可以有id,id的命名要以字母开头,可以有数字、下划线。大小写严格区别,a和A是两个不同的id。 
( 2)同一个页面内id不能重复,即使不一样的标签,也不能是相同的id。 
也就是说,如果有一个p的id叫做p1,这个页面内,其他所有的元素的id都不能叫做p1。

兼容性

IE6+

Firefox

Chrome

Safari

Opera

类选择器(.X)

.p {
color: red;
}

总结:

( 1) class可以重复,也就是说,同一个页面上可能有多个标签同时属于某一个类; 
( 2) 同一个标签可以同时携带多个类 
这是个class选择器。它跟id选择器不同的是,它可以定位多个元素。当你想对多个元素进行样式修饰的时候就可以使用class。当你要对某个特定的元素进行修饰那就是用id来定位它。 
( 3) 不要去试图用一个类名,把某个标签的所有样式写完。这个标签要多携带几个类,共同造成这个标签的样式。 
( 4) 每一个类要尽可能小,有“公共”的概念,能够让更多的标签使用。 
( 5 )尽可能的用class,除非极特殊的情况可以用id。 
原因:id是js用的。也就是说,js要通过id属性得到标签,所以我们css层面尽量不用id,要不然js就很别扭。另一层面,我们会认为一个有id的元素,有动态效果。 
兼容性

IE6+

Firefox

Chrome

Safari

Opera

后代选择器( X Y)

    <style type="text/css">
.div1 p{
color:red;
}
</style>

空格就表示后代,.div1 p 就是.div1的后代所有的p。 
强调一下,选择的是后代,不一定是儿子。 
空格可以多次出现。

        .div1 .li2 p{
color:red;
}

选择的就是.div1里面的后代.li2里面的p。

当要把某一个部分的所有的什么内容,进行样式改变,就要想到后代选择器。

兼容性

IE6+

Firefox

Chrome

Safari

Opera

交集选择器

h3.special{
color:red;
}

选择的元素是同时满足两个条件:必须是h3标签,然后必须是special标签。 
交集选择器没有空格。所以有没有空格div.red和div .red不是一个意思。

注意:交集选择器,我们一般都是以标签名开头,比如div.haha 比如p.special。

并集选择器(分组选择器)

h3,li{
color:red;
}

用逗号就表示并集。

儿子选择器(X>Y)

IE7开始兼容,IE6不兼容。

div>p{
color:red;
}

div的儿子p。和div的后代p的截然不同。 
能够选择:

<div>
<p>我是div的儿子</p>
</div>

不能选择:

<div>
<ul>
<li>
<p>我是div的重孙子</p>
</li>
</ul>
</div>
例如
div#container > ul {
border: 1px solid black;
}

X YX > Y的差别就是后面这个指挥选择它的直接子元素。看下面的例子:

<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>

#Container > ul只会选中id’container’div下的所有直接ul元素。它不会定位到如第一个li下的ul元素。 
由于某些原因,使用子节点组合选择器会在性能上有许多的优势。事实上,当在JavaScript中使用css选择器时候是强烈建议这么做的。

兼容性

IE7+

Firefox

Chrome

Safari

Opera

序选择器

选择第1个li:

<style type="text/css">
ul li:first-child{
color:red;
}
</style>

选择最后一个1i:

    ul li:last-child{
color:blue;
}

由于浏览器的更新需要过程,所以现在如果公司还要求兼容IE6、7,那么就要自己写类名:

<ul>
<li class="first">项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li>项目</li>
<li class="last">项目</li>
</ul>

用类选择器来选择第一个或者最后一个:

    ul li.first{
color:red;
}
ul li.last{
color:blue;
}

IE8开始兼容;IE6、7都不兼容

下一个兄弟选择器

+表示选择下一个兄弟

<style type="text/css">
h3+p{
color:red;
}
</style>

选择上的是h3元素后面紧挨着的第一个兄弟。

   <h3>我是一个标题</h3>
<p>我是一个段落</p>
<p>我是一个段落</p>
<p>我是一个段落</p>
<h3>我是一个标题</h3>
<p>我是一个段落</p>
<p>我是一个段落</p>
<p>我是一个段落</p>
<h3>我是一个标题</h3>
<p>我是一个段落</p>

IE7开始兼容,IE6不兼容。

CSS的继承性和层叠性

继承性

有一些属性,当给自己设置的时候,自己的后代都继承上了,这个就是继承性。

能继承的属性:color、 text-开头的、line-开头的、font-开头的。

这些关于文字样式的,都能够继承; 所有关于盒子的、定位的、布局的属性都不能继承。继承性是从自己开始,直到最小的元素。

层叠性

就是css处理冲突的能力。 所有的权重计算,没有任何兼容问题!

权重问题大总结: 
1) 先看有没有选中元素,如果选中了,那么以(id数,类数,标签数)来计权重。谁大听谁的。如果都一样,听样式后写的为准。 
2) 如果没有选中,那么权重是0。如果大家都是0,就近原则。 

下列都是IE6兼容的选择器:


p
#box
.spec
div.box
div .box
div , .box
*

下列都是IE7开始兼容:

div>p
div+p

下列都是IE8开始兼容:

div p:first-child
div p:last-child

CSS 选择器的兼容性的更多相关文章

  1. CSS选择器的兼容性

    CSS 1 CSS2.1 CSS3 :hover 在IE6中只有a元素可用.E:empty 貌似在webkit核心浏览器中有些小bug.如果这个bug依然存在,不太确定如何测试.IE6不支持.clas ...

  2. 目前最全的浏览器/CSS选择器兼容性总结(2009-8-10更新)

    2009年2月24日,Safari 4.0 beta版正式发布,Safari从它的3.2版本开始就已经支持所有的CSS选择器(包括最新的CSS3).不过为了方便大家的工作,下面提供了最新版本的CSS选 ...

  3. 总结30个CSS选择器

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 * ...

  4. CSS选择器和jQuery选择器的区别与联系之一

    到底什么是选择器?我们通过常接触的CSS选择器和jQuery选择器理解一下,我们知道CSS是用于分离网页的结构和表现的,也就是说对于一个网页,HTML定义网页的结构,CSS描述网页的样子,一个很经典的 ...

  5. CSS选择器实现搜索功能 驱动过滤搜索技术

    一.CSS选择器可以用来实现搜索功能 CSS选择器可以用来实现搜索功能. 作者以前提过CSS3的选择器结合表单元素可以用来控制元素的显隐,这里,类似的,还是CSS3的选择器,用来过滤和搜索页面元素. ...

  6. 30个最常用css选择器解析(zz)

    你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领 ...

  7. css选择器分类

    css选择器大致可以分为10大类: 1.元素选择器 如:p{} 2.类选择器 如:.xx{} 3.ID选择器 如:#xx{} 4.关联选择器 如:p a{} 5.子元素选择器 如:p>a{} 6 ...

  8. 30类css选择器

    大概大家都知道id,class以及descendant选择器,并且整体都在使用它们,那么你正在错误拥有更大级别的灵活性的选择方式.这篇文章里面提到的大部分选择器都是在CSS3标准下的,所以它们只能在相 ...

  9. 30个最常用css选择器解析

    转自:http://www.cnblogs.com/yiyuanke/archive/2011/10/22/CSS.html 你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远 ...

随机推荐

  1. logstash同步mysql数据到mysql(问题一)

    问题 通过logstash同步数据时 字段类型为tinyint时 通过过去 0变成了false  1变为了true 时间类型 变为 2018-10-16T14:58:02.871Z 分析 开始尝试通过 ...

  2. 数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)

    文章转自  https://www.tuicool.com/articles/qayayiM 摘要: 本文主要是对这hikariCP,druid,tomcat-jdbc,dbcp,c3p0几种连接池的 ...

  3. linux安装jenkins和编译发布gitlib项目

    1. jenkins下载地址 wget https://updates.jenkins-ci.org/download/war/2.138/jenkins.war 2. 安装插件 安装gitlib和m ...

  4. OSGeo.OGR.Geometry

    #region 程序集 ogr_csharp.dll, v2.0.50727 // D:\KM行业需求\C++\gdal17_cSharp\ogr_csharp.dll #endregion usin ...

  5. C#中的位的或运算的理解

    如果懂位的运算,看到下面这2个程序执行的结果,会很容易理解,如果像我这样的菜鸟,刚接触开始肯定也觉得晕晕的,|= 这是什么运算符? |=就是位的或运算符,下面还是用上面的程序来讲解一下,为什么上面2个 ...

  6. java读取写入文件

    先来看一下java写入文件 public static void readTxt(String value) throws IOException { FileWriter fw = null; tr ...

  7. 3.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—第三章小结

    本章使用的重要命令总结在Table 5中 命令 描述 示例 curl 与URL交互 $ curl -O example.com which 指出程序的在计算机的路径 $ echo bar >&g ...

  8. 微信小程序开发需要注意的30个坑

    1.小程序名称可以由中文.数字.英文.长度在3-20个字符之间,一个中文字等于2个字符. 2.小程序名称不得与公众平台已有的订阅号.服务号重复.如提示重名,请更换名称进行设置. 3.小程序名称在帐号信 ...

  9. 在asp.net web form项目中添加webapi接口

    我有一个支付宝服务网关是ASP.NET WEB FORM项目,但是最近这个网关需要对外提供几个接口,想了下,使用web api比较合适,实现很简单,GO 1,首先添加一个文件夹名字叫App_Start ...

  10. Verilog设计异步FIFO

    转自http://ninghechuan.com 异步FIFO有两个异步时钟,一个端口写入数据,一个端口读出数据.通常被用于数据的跨时钟域的传输. 同步FIFO的设计.一个时钟控制一个计数器,计数器增 ...