试图创建一个盒子

时间:2013-10-20 20:36:04

标签: javascript html

我正在尝试使用javascript动态创建随机数量的框。但是,我有点迷失了如何这样做。我以为我会先试着在html上创建盒子。所以,这是我的HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Ramdom Boxes</title>
        <script src="A2Q1.js"></script>
    </head>
    <div id="piece8" class="pieces" style="color:#0000ff; top: 50px; left: 50px; width: 60px; height: 60px; cursor: pointer;"></div>

    <body>      
    </body>
</html>

不知怎的,盒子没有出现。但是,当我在浏览器中检查元素时,它似乎在那里,但没有颜色。如何修复此问题以显示一个简单的2d框

3 个答案:

答案 0 :(得分:1)

我应该看起来像这样:http://jsfiddle.net/FHUeE/

并且background-color:#0000ff;而非color:#0000ff; color用于字体颜色。

答案 1 :(得分:1)

您只需要确保所有内容都在<body></body>标记之间。

如果要显示颜色,还需要使用css属性background-color。颜色会改变文字颜色:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Ramdom Boxes</title>
        <script src="A2Q1.js"></script>
    </head>
    <body>      
  <div id="piece8" class="pieces" style="background-color:#0000ff; top: 50px; left: 50px; width: 60px; height: 60px; cursor: pointer;"></div>
    </body>
</html>

答案 2 :(得分:1)

这可能会让你:

http://codepen.io/anon/pen/FjrxA

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Random Boxes</title>
  </head>
  <body>
  <script>
  // Make a loop to create a random amount of boxes
  var box_count = Math.random() * 100 + 50;
  for (var i = 0; i < box_count; i++) {
    // Define an array of css attributes
    var attr =[
      // Assign a colour to the box
      'background-color:#' + parseInt(Math.random() * 0xFFFFFF, 10).toString(16),
      // Place the box somewhere inside the window
      'left:' + Math.random() * window.innerWidth + 'px',
      'top:' + Math.random() * window.innerHeight + 'px',
      // Give the box a random size
      'width:' + Math.random() * 100 + 'px',
      'height:' + Math.random() * 100 + 'px','position: absolute'
    ];
    // Join the attributes together with semi-colon and write the div to the document
    // Note: Document write happens at the place where the script is executed
    document.write('<div style="' + attr.join(';')  +'"></div>');
  }
  </script>
  </body>
</html>