offsetwidth和style.width的区别是什么

offsetwidth和style.width的区别是什么:
上面两个属性的作用优点类似,都可以返回对象的宽度,但是两者又有很大的区别,下面将通过实例简单介绍一下它们的区别。
代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
div{
  width:100px;
  height:100px;
  border:5px solid red;
  background-color:green;
  padding:3px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  alert(document.getElementById("mytest").offsetWidth);
  alert(document.getElementById("mytest").style.width);
}
</script>
</head>
<body>
<div id="mytest"></div>
</body>
</html>

以上代码中,offsetWidth属性可以返回div的宽度,但是style.width并不能够返回此div的宽度。由运行结果也可以看出offsetWidth返回的宽度值包括:border+width+padding。再来看一段代码:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
div{
  width:100px;
  height:100px;
  border:5px solid red;
  background-color:green;
}
</style>
<script type="text/javascript">
window.onload=function(){
  alert(document.getElementById("mytest").offsetWidth);
  alert(document.getElementById("mytest").style.width);
}
</script>
</head>
<body>
<div id="mytest" style="width:100px;width:100px;border:5px solid red;"></div>
</body>
</html>

在上面的代码中,style.width能够获取div的宽度,不过宽度是使用内部样式定义的,并且此宽度就是width定义的宽度,还需要特别主要的一点是,offsetWidth获取的是一个整数值,而style.width获取的是一个字符串,并且带有单位。
再来看一段实例:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
div{
  width:100px;
  height:100px;
  border:5px solid red;
  background-color:green;
}
</style>
<script type="text/javascript">
window.onload=function(){
  document.getElementById("first").offsetWidth=400;
  document.getElementById("second").style.width="300px";
}
</script>
</head>
<body>
  <div id="first"></div>
  <div id="second"></div>
</body>
</html>

由以上代码可以看出offsetWidth属性仅是可读的,而style.width属性是可读写的。

总结如下:

1.offsetWidth属性可以返回对象的padding+border+width属性值之和,style.width返回值就是定义的width属性值。

2.offsetWidth属性仅是可读属性,而style.width是可读写的。

3.offsetWidth属性返回值是整数,而style.width的返回值是字符串。

4.style.width仅能返回以style方式定义的内部样式表的width属性值。

原文地址是:http://www.51texiao.cn/javascriptjiaocheng/2015/0427/222.html

时间: 2024-12-27 22:48:32

offsetwidth和style.width的区别是什么的相关文章

点击按钮,缩放图片(img.width、img.style.width、img.offsetWidth)

前几天在慕课网上看到一个关于图片缩放的教学视频,因为当时对老师使用img.width,而不是使用img.style.width而感到奇怪,所以周末得空了,想来自己试着写出来,相关视频网址如下:http://www.imooc.com/video/1111: 最开始想着按照视频使用定时器的思路来写,但是写到后面发现使用 img.width实现不了效果,然后就按照传参的思路来写,同样使用 img.width实现不了效果,所以后面改用img.style.width:我这等小白在这问题上纠结了好久,简直

js的 style.width 取不到元素的宽度值

以前一直用jquery的.width()方法来获取一个元素的当前的宽度.不管该元素是否设置了宽度,CSS样式是内联.外联or内嵌,都可用此方式获得元素当前的宽度. 今天想用原生JS想获取一个元素宽度时,写document.getElementById("id").style.width或者document.getElementById("id").width都取不到值... 总结了一下.在以下情况下,js原生.style.width或者.width取不到值 1.元素

canvas.width和canvas.style.width的区别

先让我们来看下代码: <!DOCTYPE HTML><html><body> <canvas id="myCanvas" style="border:1px solid #c3c3c3;">Your browser does not support the canvas element.</canvas> <script type="text/javascript"> var

css width=&quot;100&quot; style =&quot;width:100px&quot; 区别

1. width="100"是正确的,而 width="100px"是错误的, style = "width:100px"是正确的 2. style ="width:100px"优先级较高 3. 只有有限的元素支持width="100"属性,例如table, td等 4. JQuery中获取width如下 <div style="width:200px;height:200px;"

style=&quot;width:100px&quot; 和width=100 异同

异: 1.width属性不是每个元素都支持的,一般就table和body支持. 2.style="width: 100px"是CSS样式. 2.1.CSS样式有多种方式设置,直接写成这个样子属于内联CSS,也可以把这个提出来单独放到<style>里 <html> <head>    <style>      .mydiv { width: 100px; }      div { background-color: #ddd; margin

如果attr=‘background’,style[attr]和style.attr的区别是:

如果attr=‘background’,style[attr]和style.attr的区别是: 前者等价于style['background']或style.background, 后者等价于style.attr, 对于函数传参一类,不能使用后者. 另外需要注意的是,比如 a.style.height = "100px"; 等号右边需要是字符串,因此需要加上引号.

如何去除 ckeditor 上传图片后在原码中留下的 style=&quot;width: 100%;height:100px&quot;之类的代码呢?

ckeditor编辑器在上传图片的时候,会神奇的加上一段诡异的代码: 这导致上传的小图也是被拉伸到100%,我根本就没有定义它,找来找去也找不到element.style,原来这是在system.css这东西 最后, 加上这句: .cnt_text .text img {width :auto !important; max-width:660px;} 就可以了,优先级的问题

canvas标签的width和height以及style.width和style.height的区别

其实这里已经说的很明白,通俗点说就是在canvas中定义width.height跟在style中定义width和height是不同的,canvas标签的width和height是画布实际宽度和高度,绘制的图形都是在这个上面.而style的width和height是canvas在浏览器中被渲染的高度和宽度.如果canvas的width和height没指定或值不正确,就被设置成默认值(width:300px,height:150px). 实例代码 <!DOCTYPE html><html&g

HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解

scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop:获取对象相