如何检测元素前面是否有纯文本?

时间:2012-03-02 20:00:30

标签: html css

我有一些HTML DIV元素,包含叙述风格的形式。例如:

<div class="narrative">
    My name is <input type="text"> and I am <input type="text"> years old.
</div>

有没有办法用CSS检测第一个<input>元素之前是否有纯文本,这样我可以添加左边距?如果没有,建议如何做到这一点,而不必分类第一次输入或在一个范围内包装纯文本?

它始终不会以纯文本开头:

<div class="narrative">
    <input type="text"> is <input type="text"> years old.
</div>

3 个答案:

答案 0 :(得分:3)

CSS只能选择元素,而不能选择元素中的单个文本节点。这是你必须通过DOM脚本和CSS做的事情。

答案 1 :(得分:1)

CSS(理想情况下,在所有情况下都显然不受尊重)仅用于表示目的。在input元素上添加边距所需的是JavaScript。

答案 2 :(得分:0)

不幸的是,没有CSS方法来确定输入是否以文本开头。 您可以使用first-child伪类来定位每个叙事块的第一个输入:

.narrative input:first-child {
   margin-left: 20px;   
}

此处an example