如何判断CSS里面的元素值

html-css019

如何判断CSS里面的元素值,第1张

Jquery css函数用法(判断标签是否拥有某属性) 判断一个层是否隐藏: ("#id").css("display")="none在所有匹配的元素中,设置一个样式属性的值: ("p").css("color","red")把一个“名/值对”对象设置为所有...

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}这个就会起作用