用javascript控制css中style.height和style.width时应注意px单位问题

本文探讨了使用JavaScript控制CSS属性如高度和宽度时,在不同浏览器(如IE和Firefox)间的兼容性问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

divSlider.style.height = 1000; //在chrome不管用
divSlider.style.height = "500px"; //这样就好了


JavaScript在ie中解析时,可以这样写:

1、document.getElementById('div').style.height=100;    //这样写以IE里会正确执行,把ID为div元素高改为100象素。

2、但是读的时候,alert(document.getElementById('div').style.height+10);    //这样将会出错,因为读取style.height的时候,会以"100px"的形式出现。

3、到了FF里,不光读出来的是"100px",写的时候,也必须是document. getElementById('div').style.height='100px';这样才能有效果。。。也许正是FF的严谨吧。

OK,这样好搞多了,以后用javascript控制css的对象高度或者宽度的时候,我们就直接用parseInt($('div').style.height)这样就完美了,无论读写,IE或者FF,都兼容了。。。。

 

原作地址:http://hi.baidu.com/loadinger/blog/item/beceab8b24191e7c9f2fb4c6.html

### clientHeightstyle.height 的区别及用法 #### 定义与特性 `clientHeight` 是一个只读属性,表示元素的内容高度(以像素为单位),包括内边距(padding),但不包括外边距(margin)、边框(border)、滚动条以及任何可能存在的伪元素的高度[^2]。 而 `style.height` 则是一个可读写属性,用于访问或修改通过 CSS 设置的 `height` 属性值。它返回的是字符串形式的高度值,并带有单位(如 `"100px"` 或 `"auto"`)。如果未显式定义 `height`,则会返回空字符串。 #### 使用场景 当需要测量 DOM 元素的实际渲染大小,通常使用 `clientHeight`,因为它反映了浏览器计算后的实际尺寸。例如,在动态调整布局或者检测溢出内容非常有用。另一方面,`style.height` 更适合于操作样式表中的具体数值,比如动画效果、初始化组件大小等场合。 以下是两者的对比表格: | 特性 | clientHeight | style.height | |-------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| | **描述** | 返回元素内部可见区域的高度(含 padding 不含 border scrollbar) | 获取/设置指定对象当前用的CSS height属性 | | **类型** | 只读整数型 (pixels) | 字符串型 ("length" or "%") | | **默认行为** | 如果没有设定 explicit heights,则基于 content 自动决定 | 若无 inline styles 中定义 height ,则返回 "" | #### 示例代码 下面提供了一段简单的 HTML JavaScript 来演示两者之间的差异: ```html <div id="exampleDiv" style="width: 200px; height: 150px; padding: 20px; border: 5px solid black;"> Some text inside the div. </div> <script> const exampleDiv = document.getElementById('exampleDiv'); console.log(`Style Height: ${exampleDiv.style.height}`); // 输出 Style Height: 150px console.log(`Client Height: ${exampleDiv.clientHeight}px`); // 输出 Client Height: 190px // 计算了 inner content area + top/bottom paddings but without borders and scrollbars </script> ``` 在这个例子中可以看到即使设置了相同的外部尺寸规格,由于存在额外的填充(padding),所以客户端报告出来的高度要比单纯由样式控制的大一些。 ### 结论 综上所述,虽然二者都涉及到元素的高度概念,但在用途上有明显不同之处。开发者根据实际情况选择合适的方法来满足特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值