为什么文本框在javascript创建时显示不同?

时间:2013-06-03 20:06:55

标签: javascript html css

为什么在此代码中按push时创建的文本框与已显示的文本框不完全相同?

<html>  
<body id="bd">  
<input type="text" style="width: 30px; padding: 2px; border: 1px solid black"/>  
<input type="submit" value="Push" onclick="test()"/>   
<script type="text/javascript">   
function test() {   
    var txt = document.createElement('input');  
    txt.type = 'text';   
    txt.style = "width: 30px; padding: 2px; border: 1px solid black";   
    document.getElementById('bd').appendChild(txt);  
}  
</script>  
</body>  
</html>   

更新
我在@Bergi的小提琴中看到了什么:

enter image description here

3 个答案:

答案 0 :(得分:6)

style属性不是字符串。它是一个对象,其中每个CSS属性都表示为DOM属性。

它还有the cssText property,其中包含所有规则。

txt.style.cssText = "width: 30px; padding: 2px; border: 1px solid black";

答案 1 :(得分:1)

对于以编程方式创建的文本框,您设置的是txt.type = 'input';,但在原始设置中type="text"。将txt.type = 'input';更改为txt.type = 'text';

如果您想在一个字符串中设置style,请使用txt.style.cssText =

答案 2 :(得分:1)

 txt.style.width ="30px";
 txt.style.padding ="2px";
 tet.style.border ="1px"; 

最好通过className属性动态操作类,因为所有样式挂钩的最终外观都可以在单个样式表中控制。一个人的JavaScript代码也变得更加清晰,因为它不是专注于样式细节(MDN)

cssText返回样式规则的实际文本。能够动态设置样式表规则

 txt.cssText = style here;