回答你失效的那个问题:
问题1:第一种中的写法相当于#name1 div 和span元素同时具有相同样式;
#name1 div,span{}这种写法是并列关系,等同于:
#name1 div{}
span{}
所有span标签都具有和#name1 div一样的样式,所以对你div中的span元素有影响,而第二种是在#name1下的span标签的样式,所以对#name2中的span标签没有影响。
问题2:如果你不想让样式冲突的话,可以用以下方法解决:
》每个代码块中的样式定义都要在当前层的范围下,使每个代码块中的元素的样式只对当前模块有效,不会影响到其他模块:
.div1 span{}
.div1 a{}
.div2 span{}
.div2 a{}
<div class="div1">
<span></span>
<a></a>
</div>
<div class="div2‘>
<span></span>
<a></a>
</div>
如上,所有div1中的元素的样式都定义在.div1后面,所有div2中的元素的样式都定义在.div2后面,
css样式是HTML的一个补充,简单的css使用样式如下:
<html><body>
<div id=div></div>
</body>
<style type="text/css">
width:300px//设置div的宽度300像素
height:500px//设置div高度500像素
background-color:red//设置div的背景颜色为红色
</style>
</html>
css代码位于style之间,详细的css代码解释见代码注释。