新标签div的边距完全没有生效

时间:2016-10-28 09:40:11

标签: javascript html css

您好我正在使用JavaScript在新标签页面中创建动态表单。保证金对div的影响没有生效。我既不能在css中使用class和id设置边距,也不能使用div.setAttribute。下面是代码。 `

var openWindow = window.open('dynForm.html','_blank','');
    var windoc=openWindow.document;
    windoc.write("This is dynamic form ");
    var div=document.createElement("div");
    div.setAttribute("style","border:solid");
    div.setAttribute("style","margin-left:1cm");
    div.setAttribute("style","margin-right:1cm");
    div.setAttribute("style","margin-bottom:1cm");
    div.setAttribute("style","margin-top:1cm");
    div.setAttribute("style","background-color:lightblue");

`只有背景颜色在新标签上生效。以下屏幕截图显示了屏幕的外观,与边距值无关。enter image description here

Quesstion 2 :我的css中没有类或id属性应用于div。

    #myDIV2{

    background-color:lightblue;
}

我尝试了div.id="myDIV2";

我也试过div.setAttribute("id","myDIV2");`我也使用了同样的类,但仍然找不到任何区别。我不知道为什么它不起作用,这里出了什么问题。请帮忙

2 个答案:

答案 0 :(得分:1)

每次调用setAttribute时都会覆盖样式,尝试组合样式,然后只设置样式属性一次:



var openWindow = window.open('dynForm.html','_blank','');
    var styles= [
      "border:solid;",
      "margin: 1cm;",
      "background-color:lightblue;"
    ];
    var windoc=openWindow.document;
    windoc.write("This is dynamic form ");
    var end_styles = "";
    for (var i=0; i<styles.length;i++) {
        end_styles += styles[i];
    }
    var div=document.createElement("div");
    div.setAttribute("style", end_styles);
&#13;
&#13;
&#13;

注意:小提琴不能在stackoverflow上工作,我使用它因为它更容易格式化代码

答案 1 :(得分:0)

这种情况正在发生,因为您的所有样式属性都被之前的div.setAttribute覆盖,并且您的上一个属性div.setAttribute("style","background-color:lightblue");已被应用。尝试将所有款式合二为一。 div.setAttribute("style","style1:value1;style2:value2;style3:value3;");