大佬教程收集整理的这篇文章主要介绍了如何使用jQuery获取实际的CSS值?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
DIV的风格是:
height: 14px; padding: 6px; border: 1px solid black; overflow: hidden;
到目前为止,我一直使用$(“SELEctor”).css(“height”)获取CSS高度值,并使用该值进行进一步计算,但最近将我的jQuery库更新为最新版本,此方法现已破坏.
详细说明;在jQuery 1.4.2 .css(“height”)将返回’14px’而jQuery 1.6.2返回’0px’如果元素及其所有祖先是可见的,否则’14px’.
我猜测前者是使用IE Quirksmode盒子模型计算的(14px高度 – 2x 6px填充 – 2x 1px border = 0pX),后者直接从样式表中获取.我想得到前者而不管可见性 – 是否有任何“漂亮”的方式来获得实际的CSS值(“漂亮”意味着没有在document.styleSheets数组中查找它)?
编辑:
首先,我在DIV上忘记了一个重要的样式@L_616_4@:overflow:hidden(现已更正).
另外我认为值得强调的是,这个问题只发生在Quirks Mode中的Internet Explorer中.据我所知,它不是任何其他(当前)浏览器/模式的问题(我没有测试所有,所以不是100%肯定).
为了进一步阐述问题(并回答一些关于可能的解决方案的建议),我对字段和jQuery中不同函数返回的值进行了一些测试:
jQuery 1.4.2:
Element visible: true .css('height'): 14px .height(): 0 .outerHeight(): 14 Element visible: false .css('height'): 14px .height(): 0 .outerHeight(): 0
jQuery 1.6.2:
Element visible: true .css('height'): 0 .height(): 0 .outerHeight(): 14 Element visible: false .css('height'): 14px .height(): 14 .outerHeight(): 28
.outerHeight(true)对我没用,因为无论盒子模型如何,边距都没有效果.元素可见性使用$(“SELEctor”)进行测试.是(“:visible”).
对,那么如何使用这些数字呢?要修复盒子模型高度,我必须进行以下计算:
newHeight = oldHeight + borderWidth (top & bottom) + padding (top & bottom)
换句话说,我需要14px的值.有人可能会争辩说,问题的解决方案是在元素可见的同时获取.outerHeight()的值,同时获取.css(‘height’)的值时(我正在计划进行此操作) ),但实际上并没有回答原来的问题;我如何获得实际的CSS值?
为了完整起见,这里有一个示例HTML /脚本,它将从测试中复制我的数字(我没有对此进行实际测试,但最终结果是相同的 – 还记得在测试之前将IE设置为QuirksmodE) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="http://code.jquery.com/jquery-1.6.2.js" type="text/javascript"></script> <style> .input { height: 14px; padding: 6px 8px; border: 1px solid black; overflow: hidden; } .hidden { display: none; } </style> </head> <body> <div><div class="input" contenteditable="true">test</div></div> <div class="hidden"><div class="input" contenteditable="true">test</div></div> <script type="text/javascript"> $(document).ready(function(){ var t = ""; $(".input").each(function(){ t+= "visible: " + $(this).is(":visible") +"\n" + ".css('height'): " + $(this).css("height")+ "\n" + ".height(): " + $(this).height()+ "\n" + ".outerHeight(): " + $(this).outerHeight()+ "\n\n"; }); alert(t); }); </script> </body> </html>
以上是大佬教程为你收集整理的如何使用jQuery获取实际的CSS值?全部内容,希望文章能够帮你解决如何使用jQuery获取实际的CSS值?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。