CSS中有一个重要的概念:选择器。选择器使用一定的规则来指定一个或一组标记,从而对它们进行
统一的外观控制。

1.标记选择器。HTML使用标记语言,如html body table tr td div ul li等。标记选择器就是选择文档中所有
指定的标记,然后对它们应用样式,语法如下:

tagName    {}

如:li    {font-weight:bold}

2.类型选择器。标记选择器便于统一设置结点样式,它的应用范围太大,对页面中所有这类标记都有效
然而很多时候没有必要,类型选择器缩小范围。

tagName.className    {}

如:<dl class="expand">,要对这个<dl>标记应用样式,可使用如下语法:
dl.expand    {}

如果上面的tagName省略:
.expand    {}
那么表示所有class为expand都采用此样式。

3.id选择器。其语法如下:

tagName#idName    {}
idName在页面内是唯一的,所以tagName可以省略,加上tagName利于维护。

4.层次选择器。它能沿着HTML文档的树状层次结构向下指定,从而实现一组标记的统一样式应用。
如:<div id="div1">
            <ul>
                    <li>some text</li>
                    <li>some text</li>
            </ul>
         </div>
         <div id="div1">
            <ul>
                    <li>some text</li>
                    <li>some text</li>
            </ul>
          </div>
如果此时给div1和div2中的li指定不同的显示,如一个黑体一个斜体,那么可以给li加上不同的class属性
然后采用类型选择器对其定义,但这样会使代码变复杂,此时可用层次选择器:
div#div1 ul li    {font-weight:bold;}

div#div2 ul li    {font-weight:italic;}

5.继承。在CSS中有一些样式是可以继承的,如可以在<body>标记中指定字体大小统一为0.75em,如下:
    body    {font-size:0.75em;}

那么这时在文档中所有字体的大小都会默认为0.75em,除非在子节点的CSS样式重定义了大体大小。

6.样式就近原则。


Javascript控制CSS
1.通过style对象改变结点的CSS。每个style对象对应为该元素指定的CSS,而每个CSS属性一一对应于
style对象的属性,它们只是书写上有所区别:
    element.bgColor
    element.style.backgroundColor
前一种方式就是HTML标记属性,后者则是利用CSS来控制。
2.利用className属性来指定结点的样式。
    如定义:
    .style1 {background-color:#ffffff;color:#000000}
    .style1 {background-color:#000000;color:#ffffff}

        <div class="style2">
            <ul>
                    <li>some text</li>
                    <li>some text</li>
            </ul>
         </div>

    
    如果document.getElementById('div1').className=style1,这样就将改变了样式。