2013-08-12 9 views
6

Czy można oddzielić zdanie od słowa w CSS?Oddzielne zdanie na jedno słowo w wierszu

Wejście:

<div>Hello world foo bar</div> 

Przedstawiane wyjściowa:

Hello 
world 
foo 
bar 

Ustawienie szerokości do np 1px nie jest pożądane.

+0

po prostu zastanawiasz się, co jest złego w szerokości: 0 lub 1px - dlaczego nie chcesz tego? – Danield

+0

Z powodu dołączenia innych stylów do tekstu - na przykład tła. – hsz

Odpowiedz

25

Musisz użyć display:table-caption; do osiągnięcia tego celu.

Oto rozwiązanie.

WORKING DEMO

HTML:

<div>Hello world foo bar</div> 

CSS:

div{display:table-caption;} 

Nadzieja to pomaga.

+0

To rzeczywiście działa. Dziękuję Ci ! – hsz

+0

Serdecznie zapraszamy :) - @hsz – Nitesh

+0

Nie ucz swojego ojca, jak tworzyć dzieci. Odpowiedź jest możliwa po 15 minutach od dodania pytania. ;-) – hsz

-5

Można ustawić szerokość div do 1px, to wprowadzi każde słowo na nowej linii

div { 
    width:1px; 
} 

http://jsfiddle.net/KjX4N/

+0

Ten jest nie do przyjęcia, przepraszam. – hsz

+0

Może powinieneś podać pewne wymagania, to pytanie nie jest naprawdę konkretne, czy możemy dodać dodatkowy html? Docelowe oddzielne słowa nie są możliwe w CSS – koningdavid

+0

Istnieje jedno przywrócenie: CSS bez '1px' - wszystko jest w pytaniu. – hsz

5

Odpowiedź Nathana z użyciem table-caption jest prawie poprawna, ale pomija kluczową kwestię, ponieważ zdanie jest dzielone tylko przez najdłuższe słowo, które powoduje grupowanie krótszych słów.

Na przykład następujące zdanie:

Ta sztuczka grup i dzieli wyrazy w zdaniu na podstawie najdłuższego słowa.

faktycznie wynik w następującym wyniku. Zwróć uwagę na grupowanie na in a i on the w danych wyjściowych.

This 
trick 
groups 
and 
splits 
words 
in a 
sentence 
based 
on the 
longest 
word. 

Rzeczywiście można to zrobić bardzo łatwo przez ustawienie word-spacing który ma excellent support.

Korzystanie że można wyprowadzać zdanie poprawnie następująco:

This 
trick 
groups 
and 
splits 
words 
in 
a 
sentence 
based 
on 
the 
longest 
word. 

Oto przykład kodu roboczego można uruchomić.

Snippet

p { 
 
    word-spacing: 9999rem; 
 
} 
 
p ~ p { 
 
    /* Undo last assignment */ 
 
    word-spacing: unset; 
 
    display: table-caption; 
 
}
<h3>word-spacing</h3> 
 
<p> 
 
    This trick splits each word in a sentence 
 
</p> 
 
<hr/> 
 
<h3>table-caption</h3> 
 
<p> 
 
    This trick groups and splits words in a sentence based on the longest word. 
 
</p>

+1

+1 Za twoje wysiłki, aby jeszcze bardziej poprawić odpowiedź. Moja odpowiedź była oparta na scenariuszu OP. Podałeś alternatywę, która jest "nieco" różna od tej, na którą odpowiedziałam, mając na uwadze pytanie OP. – Nitesh

+1

Dzięki! Natknąłem się na moje rozwiązanie po eksperymentowaniu z twoim. –

Powiązane problemy