描述问题
javascript改变img宽度属性,如果带px单位,结果变为0;
相关代码
<img id="iImg" width="300px" height="300px" onclick="changeImg()" src="">
document.getElementById("iImg").width=600; //结果为 width="600";
document.getElementById("iImg").width="600px";//结果为 width="0"
相关截图
如果要实现改变后的宽度为600px,改怎么做?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1.代码规范
其中
width="300px"height="300px"这种写法是不符合w3c规范的,用 The W3C Markup Validation Service 检测会报错。属性width、height的值是个非负数,直接写数字即可,如width="300"2.width是img公认的(非自定义的)特性,会以属性的形式添加到DOM对象中,所以可以通过dom.attr的形式去操作属性值。
因为width是img的属性,所以当然也可以用下面这种形式赋值:
3.方式①②是通过改变img的属性值来改变图片的大小,也可以通过改变css样式来改变图片的大小,当两者同时改变,谁又占上风呢?
综上,如果只是改变图片显示的大小,可以使用上述三种方式来达到目的,当有css样式来控制图片大小的时候,属性值的改变不影响图片的实际渲染尺寸:
补充:方式①和方式②的区别
当属性为自定义属性时,dom.attr的方式失效,如:
或者修改CSS样式
首先img是行内元素。你设置宽高是不起作用的,请给img加样式display:block。这些应该可以设置宽高了。
嗯,建议用css,或者用style=“width:600px”,然后再用js修改
xxx.style.width