我有以下(简化的) HTML结构:
<table>
<tr>
<td>
<div class="PromptContainer">
<span class="Prompt">Prompt text</span>
</div>
<input type="text" name="..."/>
</td>
</tr>
</table>和CSS:
.PromptContainer{
width: 0;
height: 0;
position: relative;
margin: 0 auto;
}
.Prompt{
bottom: 0;
padding-left: 0;
white-space: nowrap;
position: absolute;
}我想把span元素放在输入元素的中间。注意,由于边缘对齐规则,我不能更改.PromptContainer的大小(.Prompt元素可以对齐到输入元素的任何边缘)。span元素中的文本具有可变的长度,可以大于输入元素的宽度。我不能使用javascript来执行这个任务,因为在我的情况下,它太无效了(大量这样的元素)。
编辑:图像可视化了我所拥有的和我想要实现的,可以在这里获得:

编辑2:让我来描述一下这个问题的目的。我们正在为用更老的技术编写的大型旧应用程序(作为windows应用程序)编写新的基于web的运行时。我们已经创建了从这个应用程序的源代码到我们的新环境(ASP.NET)的转换器。这个旧应用程序中的所有控件都是绝对定位的,所以我们以相同的方式进行操作。控件(例如,输入标签表)具有其位置和大小,以及与其相关联的提示文本。提示文本的位置相对于控制,所以我们不知道它在翻译过程中的绝对位置。请注意,它取决于字体设置、文本、与控件的偏移量以及将提示附加到的控件边缘。
我正在尝试写一个CSS规则来将提示放在正确的位置。我已经解决了几乎所有的配置,但我有很大的问题,对中心。
由于绝对定位,我不能使用非零大小的.PromptContainer -我只知道控制的位置,而不是.Prompt本身。更大的.PromptCointainer会把整个控制移下来。
此外,提示符文本的长度不得超过控件宽度,不得更改控件的大小。
发布于 2012-04-20 16:50:38
这应该是文本的中心。
.PromptContainer {文本对齐:中间;}
发布于 2012-04-20 16:54:17
是像这样吗?
http://jsfiddle.net/GZ7wR/1/
发布于 2012-04-20 16:58:33
这个怎么样?
.Prompt { display: inline-block; margin: 0 auto; }https://stackoverflow.com/questions/10249872
复制相似问题