2012-10-23 8 views
5

Używanie właściwości w div contenteditable powoduje przesunięcie kreski w dół po przesunięciu jej do drugiej linii. Jest to bardziej widoczne w przypadku niektórych niestandardowych czcionek internetowych, ale dzieje się tak również w przypadku standardowych czcionek, takich jak Arial. Czy istnieje obejście tego zachowania?Caret przesunięty w dół na drugiej linii, jeśli używasz CSS linii wysokości - Czy istnieje obejście?

To pokazuje karetkę na pierwszej linii

Normal caret on the first line
użyciu kursora na drugiej linii przesunięte w dół

Shifted caret on the second line

demo zachowania można znaleźć:http://jsfiddle.net/sGgVR/

Edit: Przeglądarka używana do testowania Safari 6.0.1 i Chrome 22.0.1229.94

+1

Nie mogę powielić tego zachowania. Widzę karat powyżej i poniżej znaków, niezależnie od tego, czy jestem na linii 1, czy w linii 2. Usunięcie "CSS wysokości linii" nie ma na to wpływu. –

+0

Z jakiej przeglądarki korzystałeś? – klotz

+0

Google Chrome \t 22.0.1229.94 –

Odpowiedz

0

Nie widzę żadnego eleganckie rozwiązanie tego problemu. Gdy line-height jest mniejszy niż font-size, linie pokrywają się, a górna część kursora jest odcięta przez górny tekst.

Może jednak jakiś pseudoelement pomoże, jakkolwiek, spróbuj. Ale nie mogłem tu dobrze wykorzystać.

Innym krętaczem jest łamanie wieloliniowych tekstów na kilka różnych elementów za pomocą JS. Każda z treściami Oczywiście. A następnie tworzenie nowych elementów na łamach linii, łączenie na backspace lub usuwanie. Ale to rozwiązanie wydaje się zbyt skomplikowane.

Powiązane problemy