Мне удалось добиться этого с помощью CSS ...
Пример
![Example](https://i.stack.imgur.com/ufc0r.png)
CSS
div {
position: relative;
color: #0f0;
font-size: 28px;
}
div span {
height: 50%;
position: absolute;
color: #f00;
overflow: hidden;
}
HTML
<div>
<span>Hello</span>
Hello
</div>
jsFiddle .
Протестировано в Firefox 5.
Имейте в виду, что не очень семантически повторять текст, который будет отображаться один раз.
В зависимости от браузеров, которые вам нужно поддерживать, вы можете отказаться от этого внутреннего span
для чего-то подобного в CSS ...
div:before {
content: "Hello";
height: 50%;
position: absolute;
color: #f00;
overflow: hidden;
}
jsFiddle .
Насколько я знаю, для content
нет значения, которое будет автоматически использовать текстовый узел этого элемента. Вы можете поместить его в атрибут title
и использовать attr(title)
(или любой другой атрибут).
Вы также можете использовать JavaScript для повторения.
var textRepeat = document.createElement('span'),
textRepeatTextNode = document.createTextNode(element.firstChild.data);
element.appendChild(textRepeat.appendChild(textRepeatNode));
Если первый дочерний элемент не обязательно является текстовым узлом, вы можете использовать element.textContent || element.innerText
.