javascript无法修改带px单位的标签宽度 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

javascript无法修改带px单位的标签宽度

2016-06-20 18:38:17 1517 1

描述问题

javascript改变img宽度属性,如果带px单位,结果变为0;

相关代码

document.getElementById("iImg").width=600; //结果为 width="600";
document.getElementById("iImg").width="600px";//结果为 width="0"

相关截图
screenshot

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:44:27

    1.代码规范

    其中width="300px" height="300px"这种写法是不符合w3c规范的,用 The W3C Markup Validation Service 检测会报错。属性width、height的值是个非负数,直接写数字即可,如width="300"

    2.width是img公认的(非自定义的)特性,会以属性的形式添加到DOM对象中,所以可以通过dom.attr的形式去操作属性值。

    imgDom.width = value;//此处的value是个number类型的非负值,若value为其他值时,转化为0
    console.log(typeof imgDom.width)//为number类型

    document.getElementById("iImg").width=600; //方式①,结果为 width="600"; 赋值成功
    document.getElementById("iImg").width="600px";//结果为 width="0" 赋值失败

    因为width是img的属性,所以当然也可以用下面这种形式赋值:

    document.getElementById("iImg").setAttribute("width", "600");//方式②

    3.方式①②是通过改变img的属性值来改变图片的大小,也可以通过改变css样式来改变图片的大小,当两者同时改变,谁又占上风呢?

    document.getElementById("iImg").style.width='600px';//方式③,这个是带px的,图片width渲染成功
    document.getElementById("iImg").width=900;//只改变属性值,但不影响图片的大小

    综上,如果只是改变图片显示的大小,可以使用上述三种方式来达到目的,当有css样式来控制图片大小的时候,属性值的改变不影响图片的实际渲染尺寸:

    document.getElementById("iImg").width=600;//方式①,通过改变属性值来改变图片大小
    document.getElementById("iImg").setAttribute("width", "600");//方式②,通过改变属性值来改变图片大小
    document.getElementById("iImg").style.width='600px';//方式③,通过css样式来改变图片大小

    补充:方式①和方式②的区别
    当属性为自定义属性时,dom.attr的方式失效,如:


    SegmentFault

    document.getElementById("test").width; //undefined
    document.getElementById("test").width = 1200; //无效
    document.getElementById("div").setAttribute("width", "1200");//只能通过这种方式改变属性width的值,但不管怎么改变,都不会影响div的宽度值,因为width只是div的一个自定义属性

    0 0
相关问答

11

回答

在阿里云上安装和运行Node.js全功略

ycwong 2013-09-18 15:17:30 64438浏览量 回答数 11

19

回答

【分享】如何提高网站的打开速度?

enj0y 2012-11-17 14:35:22 57013浏览量 回答数 19

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157774浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 93878浏览量 回答数 28

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147289浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 146084浏览量 回答数 31

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85403浏览量 回答数 23

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305722浏览量 回答数 249

13

回答

【云服务器分享】如何节省网站流量

dreamdoo 2012-10-15 10:36:09 80502浏览量 回答数 13

15

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67813浏览量 回答数 15
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载