Jquery css函数用法(判断标签是否拥有某属性) 判断一个层是否隐藏: ("#id").css("display")="none在所有匹配的元素中,设置一个样式属性的值: ("p").css("color","red")把一个“名/值对”对象设置为所有...
这真是什么神奇的问题而且这问题毫无意义.
1 如,我在css 中写
input {
height:17px
}
而 height:17px就是浏览器默认值.你说这是 css文件里定义的还是默认的呢?
2 写了这么多年WEB从来就没有遇到过需要这样解决问题的时候.
好吧,牢骚完了,让我们想想办法.
使用javascript 通过DOM 来取得 css属性,你必然会取得一个值.
该值是浏览器 解析HTML + css 文件后产生的值.
当然这取决于你取值的位置. 如下例:
<script type="text/javascript">
alert($("input").css("height")) //17px
</script>
<style type="text/css">
input {
height:32px
}
</style>
<script type="text/javascript">
alert($("input").css("height")) // 32px
</script>
但这没什么意义,因为 css 是可以多次加载的.
所以我们只取一个最终值好了.
然后就是 判断这个值是不是默认值了.
这里就有麻烦了,各浏览器默认值不一样!
我们不能 通过一个默认值表来就确定,他是不是默认值.
那么只能 通过解析 css文件 然后对比,元素的属性是不是在 css文件中,值是不相等.
so 你需要 分析 页面加载了那些css 然后 ajax去取得这些文件,然后再写个分析过程 来确认 键 /值 全等.HOHO 这真是个大工程.
这个js、jq都没办法判断是否定义某个css,这里可以提供两个解决思路:1、有人已经说了判断值是否等于0;但是这样一来会有个弊端,如果css中确实定义了margin-right:0也会把它当做未定义处理;
2、把css写成行内样式<a style="float:leftfont-size:12px">的</a>,这样可以获取style的值再判断是否有margin-right
$(".acont a").each(function(){
var ofright = $(this).attr("style").indexOf("margin-right")
if(ofright != (-1)){alert("已定义")}
else{$(this).css({"float":"left","font-size":"12px","margin-left":"10px"})}
})
如果只有一个就不需要循环了
好吧,再给你个思路,
在css中这么定义
.mr{margin-right:5px}
p.acont a{float:leftfont-size:12px}
HTML中这么写:
<p class="acont"><a class="mr">我是一匹来自北方的狼</a></p>
这个思路是通过相同样式冲突覆盖来解决的
p.acont a中如果定义了margin-right就会覆盖.mr中的margin-right:5px,使之不起作用
如果未定义.mr{margin-right:5px}这个就会起作用