Div+Css 类的定义问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:49:40
假设有这么一段DIV如下:

<Div class=A>
<Div class=a>
<Div class=h></Div>
</Div>
</Div>

问题来了;Css类名有两种定义方法:

方法一
.A{.......}
.A.a{.....}
.A.a.h{.....}

方法二
.A{......}
.a{......}
.h{......}

我想问问各位朋友,这两种定义到底有什么具体区别么?请详细点,先谢谢了!

区别就是方法一添加了限定范围,

例如.header.logo 就只作用下面的<div class="logo">logo</div>:
<div class="header">
<div class="logo">logo</div>
</div>


<div>
<div class="logo">logo</div>
</div>
这个样式就不生效

但是!!!注意了!! 我的经验来的!!! IE6下方法一不是很好支持,
.header.logo{}
.footer.logo{}
在IE6下只识别后面这个.footer.logo{}

.A.a{.....} 限定在A里面的a定义这个a类,.A.a.h{.....} 就是限定A里面a里面的h定义这个h类,这些就是限定了范围
.A{......}
.a{......}
.h{......} 这些就是通的...页面里面的A a h类都会读取这三个类

在CSS中类选择器的定义是“。”+选择器名称,有2种情况:
(1)类选择器作为一种选择器也可以和一般的“id”选择器一样可以作为派生选择器,如
.fancy td{ color: #f60;

background:#666 ;}
这样类名为fancy的更大元素的表格单元都会变成背景为灰色,显示橙色字,
只要类名称为fancy都可以,如div,table等
(2)元素可以基于他们的类而被选择
td .fancy{color:#666;
background:#666;
}
类名为fancy的表格单元都会被成背景为灰色,显示橙色字。
这里中方法的类名只有在td元素