CSS 属性设置优先级问题。
我在一个CSS样式文件里设置某ID下的LI标签的某属性,如下:ul#oneULli{filter:alpha(opacity=50);-moz-opacity:0.5;o...
我在一个CSS样式文件里设置某ID下的LI标签的某属性,如下:
ul#oneUL li {filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5;}
ul#oneUL li:hover {filter:alpha(opacity=100);-moz-opacity:1.0;opacity:1.0;}
.NoTransparent {filter:alpha(opacity=100);-moz-opacity:1.0;opacity:1.0;}
----------下面是HTML-BODY中
<body>
<ul id="oneUL">
<li>1</li>
<li class="NoTransparent ">2</li>
<li>3</li>
</ul>
</body>
---------------------结果---------
运行时,鼠标未经过UL中任何项时,所有LI都是半透明的,被鼠标经过的LI都会变成不透明。
然而,我在第二个LI标签上加的那个类缺没有生效。运行时与其他两个LI一样是半透明的。我试过直接在HTML的LI标签加上STYLE属性来设置不透明,结果成功。第二个LI标签在鼠标未经过时也是不透明的。
请问这是为什么呢?是不是CSS文件中的样式覆盖了HTML的类样式?这是怎样的一个加载顺序?另外,我在JS中调用document.getElementById("oneUL").style.width想获得宽度时,却发现取值为空。只有在标签的style中设置了width时才能取到值。请问如果不事先设置WIDTH,应该如何在JS取得其宽度? 展开
ul#oneUL li {filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5;}
ul#oneUL li:hover {filter:alpha(opacity=100);-moz-opacity:1.0;opacity:1.0;}
.NoTransparent {filter:alpha(opacity=100);-moz-opacity:1.0;opacity:1.0;}
----------下面是HTML-BODY中
<body>
<ul id="oneUL">
<li>1</li>
<li class="NoTransparent ">2</li>
<li>3</li>
</ul>
</body>
---------------------结果---------
运行时,鼠标未经过UL中任何项时,所有LI都是半透明的,被鼠标经过的LI都会变成不透明。
然而,我在第二个LI标签上加的那个类缺没有生效。运行时与其他两个LI一样是半透明的。我试过直接在HTML的LI标签加上STYLE属性来设置不透明,结果成功。第二个LI标签在鼠标未经过时也是不透明的。
请问这是为什么呢?是不是CSS文件中的样式覆盖了HTML的类样式?这是怎样的一个加载顺序?另外,我在JS中调用document.getElementById("oneUL").style.width想获得宽度时,却发现取值为空。只有在标签的style中设置了width时才能取到值。请问如果不事先设置WIDTH,应该如何在JS取得其宽度? 展开
2个回答
展开全部
1.多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低:
!important的用户样式
!important的作者样式
作者样式
用户样式
浏览器定义的样式
2.
CSS规范为不同类型的选择器定义了特殊性权重,特殊性权重越高,样式会被优先应用。
权重设定如下:
html选择器,权重为1;
类选择器,权重为10;
id选择器,权重为100;
这里还有一种情况:在html标签中直接使用style属性,这里的style属性的权重为1000;
即如下情况:
#x34y {color:red}
<. p id=x34y style="color:green"> 优先选择style=""设定的样式。
例子:
h1{color:blue} 权重为1
p em{color:yellow} 权重为2
.warning{color:red} 权重为10
p.note em.dark{color:grag} 权重为22
#main{color:black} 权重为100 这里还有一种情况:
权重一样时如何处理?
3.CSS样式的层叠原则——谁离我近,谁说了算。
当权重一样时,会采用“层叠原则” 后定义的会被应用。
如:p{color:yellow}
p{color:red}
作用到这里 <. p >我的什么颜色呢?< /p>
结果会是red的。
4.CSS样式的特殊标记——谁有特权,谁说了算。
如果有人看不顺眼,非得要自己说了算,那可以搞点特权,如下即可
p {color:blue !important;}
加上!important;可将自己权重设为最高。
!important的用户样式
!important的作者样式
作者样式
用户样式
浏览器定义的样式
2.
CSS规范为不同类型的选择器定义了特殊性权重,特殊性权重越高,样式会被优先应用。
权重设定如下:
html选择器,权重为1;
类选择器,权重为10;
id选择器,权重为100;
这里还有一种情况:在html标签中直接使用style属性,这里的style属性的权重为1000;
即如下情况:
#x34y {color:red}
<. p id=x34y style="color:green"> 优先选择style=""设定的样式。
例子:
h1{color:blue} 权重为1
p em{color:yellow} 权重为2
.warning{color:red} 权重为10
p.note em.dark{color:grag} 权重为22
#main{color:black} 权重为100 这里还有一种情况:
权重一样时如何处理?
3.CSS样式的层叠原则——谁离我近,谁说了算。
当权重一样时,会采用“层叠原则” 后定义的会被应用。
如:p{color:yellow}
p{color:red}
作用到这里 <. p >我的什么颜色呢?< /p>
结果会是red的。
4.CSS样式的特殊标记——谁有特权,谁说了算。
如果有人看不顺眼,非得要自己说了算,那可以搞点特权,如下即可
p {color:blue !important;}
加上!important;可将自己权重设为最高。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询