如何将动态文本插入具有绝对位置的div?

时间:2009-09-12 04:39:58

标签: html css css-position

看一下http://www.barelyfitz.com/screencast/html-training/css/positioning/第6项。它说:

  

对于大多数设计而言,它不是一个可行的解决方案,因为我们通常不知道元素中的文本数量,或者将使用的确切字体大小。

为了将动态文本插入具有绝对位置的div,我需要使用哪种解决方法?

欢迎任何方法

的问候,

4 个答案:

答案 0 :(得分:2)

如果您的主要目标是将div保留在其位置,而不根据文本数量更改其高度或宽度,我会选择:

div {
    overflow: scroll;
}

另一种选择是让文本大小缩小以适应div,但这涉及一定数量的模糊数学,并且你冒着文本太小的风险,这是没有意义的。

如果你想让div根据文本改变它的高度,这也涉及一些模糊的数学,但基本上,你会得到文本的长度:

var sometext = "Hey, I'm some text!";
var textlength = sometext.length();

并根据该长度进行高度变化。你想玩数字,但它看起来像:

var div_height = 10 * textlength;
$("div").css("height,"+ div_height +"em");

答案 1 :(得分:1)

请参阅W3C网站here

中的视觉效果部分

答案 2 :(得分:0)

也许使用"overflow: auto"作为动态文本容器div.So高度不是问题。

答案 3 :(得分:0)

问题不在于将动态文本放在绝对定位的div中 - div将扩展为适合那里的任何文本。在您的示例中,红色和绿色div上没有定义高度。

绝对定位的div从文档流中取出,因此在html中出现的任何内容都会像它们甚至不存在一样。

使用绝对定位div的设计需要在包含div上定义高度,以便绝对定位的div不与其他内容重叠。在您的示例中,<div id="div-1">的高度定义为250px。将其更改为100px,您将看到<div id="div-after">在红色和绿色div下移动。

因此,如果您在侧边栏中有一个绝对定位的div而后面没有任何内容,则可以添加所需的所有动态文本。如果标题中有一个,则会使您的设计实现起来非常复杂。