html中js隐藏div的高度,js如何获取div(ul li)元素的宽度和高度(包括width/height和CSS的宽度和高度)...

某些时候需要知道元素div(或 ul li)的宽度或高度,大多情况下可以用js取元素div的width或height属性获得,但有时候这个方法不一定奏效,把div的宽度或高度定义在CSS样式中,这个方法就取不到,这种情况应该如何取?

javascript提供了从CSS中获取元素宽度和高度的方法,由于获取的对象比较复杂,所以单用一个方法不能完成,需要用几个方法才获取到,具体看下面的实例。

一、js直接获取div(ul li)元素的宽度和高度

html代码:

js获取div高度或宽度

CSS代码:

.div{ margin:80px 0px; position:relative; border:1px solid #787878; width:420px; height:32px; line-height:33px;}

javascript代码:

function getDivWidth(obj) {

var div = document.getElementById(obj);

return div.style.width;

}

function getDivHeight(obj) {

var div = document.getElementById(obj);

return div.style.height;

}

1、获取div的宽度(长度)

document.write(getDivWidth("divId"));

输出结果:420

2、获取div的高度

document.write(getDivHeight("divId"));

输出结果:35

输出的正是 div 的 style 属性中定义的宽度和高度,而不是CSS中定义的宽度和高度。如果把 div 的 style 属性去掉,将输出空白,也就是获取不到 CSS 中定义的宽度和高度。

二、js获取CSS样式中定义的div(ul li)元素的宽度和高度

html代码:

js获取CSS样式中定义的div(ul li)元素的宽度和高度

CSS代码:

.div{ margin:80px 0px; position:relative; border:1px solid #787878; width:420px; height:32px; line-height:33px;}

javascript代码:

function getCssStyle(obj, propertyName) {

if (arguments.length != 2) { return false; }

element = document.getElementById(obj);

var value = element.style[replaceCss(propertyName)];

if (!value) {

if (document.defaultView && document.defaultView.getComputedStyle) {

var css = document.defaultView.getComputedStyle(element, null);

value = css ? css.getPropertyValue(propertyName) : null;

}

else if (element.currentStyle) {

value = element.currentStyle[replaceCss(propertyName)];

}

}

return value == 'auto' ? '' : value;

}

function replaceCss(s) { return s.replace(/-(\w)/g, function (strMatch,t) { return t.toUpperCase(); }); }

document.write(getCssStyle("divId","width"));

输出结果:420px

输出的 420px 正是CSS中定义的 div 的宽度,有一点需要注意,如果 div 中用了 style 属性又定了宽度,则会输出 style 中的宽度,因为它的优先级高于CSS文件。

以上两个获取元素宽度或高度的方法并没有定死获取某一个元素的宽度或高度,所以要获取 ul li 的宽度或高度,把它们的id作为参数传给 js 方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值