您的位置:首页 - jQuery
jq获取元素边框宽度的讨论

一楼
能不能获取边框的宽度啊,比如css里设置了 border-left:2em或者2px等等带有计量单位的值 ,jquery能获取到宽度吗。你用$(o).css("border-left")获取的是个字符串,如果你边框定义为2px,那这个值就是"2px",,如果定义为2em,那这个值就是"2em" ,而不是具体的数字。大虾有吗?怎么解决?


二楼
来个牛人啊!柯乐义


三楼
$(o).css('border-left-width');



四楼
你只要数字,不计较单位吗?
var t=parseInt($(o).css("border-left"));


感觉楼主的意思, 应该是想获取真实的左边框宽度, 就像jquery的width函数,可以获取某个元素的宽度(px为单位), 不管你定义的是px还是em或者%, 还是什么都没有定义。

如果是这样, 确实有难度, 远不是一个 parseInt 可以搞得定。
即使不计较单位, 在没有对元素的border-left-width做任何定义时, $(o).css('border-left-width'); 也获取不到正确的值。

楼主的100分, 不是白给的。







五楼
回复四楼:呵呵,其实是一样的。没你想的那么复杂的呀,在2楼的基础上做一点点小处理就可以了
只要border中对宽度的设置能够造成布局影响的单位都会转化为px,比如:
border:2px solid #bfbfbf;
border:2em solid #bfbfbf;
border:2pt solid #bfbfbf;

<script type="text/javascript">
$(function(){
var w=parseInt($('#my').css('border-left-width'))||0;
alert(w);//返回的结果是以px为单位的
})
</script>
<div id="my" style="width:200px;height:200px;border:2em solid #bfbfbf;">
keleyi.com 柯乐义</div>



六楼
经过测试,5楼基本是正确的,但是我把border写成 border:medium solid #bfbfbf;

ie: alert(w);//弹出0,但是界面上显示有边框的,
高速webkit内核:alert(w);//弹出3

我要做的是个在元素内部停靠元素的东东,left:0px,top:0px,要考虑父容器的左边框和上边框宽度,这样相应的left和top要减去对应的边框宽度,要在父容器z-index下遮住父容器,就像是在父容器下弄个垂直的投影!
这样ie就不太准了!投影缺个边框
本站导航
相关文章
柯乐义 Copyright© keleyi.com