1

到目前为止,我知道两种我不太喜欢使用的方法:

var newText = document.createTextNode("New Text");
someDiv.appendChild( newText );

或这种方法:

someDiv.innerText = "New Text";
someDiv.innerHtml = <em>"New Text"</em>; //or something like this I forget the exact syntax.

有没有办法使用 css 样式来定位像图像这样的文本?我的首选方法是这样的:

var newText = document.createTextNode("New Text");
someDiv.appendChild( newText );
newText.style.position = "absolute";
newText.style.top = "150px";
newText.style.left = "300px";

任何人都知道如果不为我想要放置在特定位置的每一个文本创建一个新的 div 是否可以做到这一点?我找不到任何类似的东西。

作为一个旁注问题,仅为文本创建 50 个 div 是否会被视为糟糕的编码?

在此先感谢您提供任何信息,对于蹩脚的问题感到抱歉

编辑:

感谢大家的帮助,似乎完美地像这样工作:

    var testSpan = document.createElement("span")
    testSpan.innerText = "Testing";
    someDiv.appendChild(testSpan);
    testSpan.style.position = "absolute";
    testSpan.style.left = "500px";
4

2 回答 2

1

即使您不创建 div 或 span,该标准也会命令浏览器在任何自由文本元素周围创建匿名内联框- 所以不用担心,document.createElement("span")正如 Susanth 建议的那样使用 className - 这不是坏的编码:如果你想定位它们,它们应该得到明确的框元素。

于 2013-06-05T23:23:41.740 回答
1

为什么不添加 aclassName to the div而不是为每个 div 设置样式。

newText.className = "newDiv";

.className {
     position : absolute;
     top      : 150px;
     left     : 300px;
}

要定位任何特定元素,应在应用样式的元素内定义它。所以你应该创建一些元素来充当容器来保存相应的 txt。

于 2013-06-05T23:20:03.910 回答