2013-08-12 33 views
6

Có thể tách câu thành một từ trên mỗi dòng bằng CSS không?Câu riêng biệt cho một từ trên mỗi dòng

Input:

<div>Hello world foo bar</div> 

rendered đầu ra:

Hello 
world 
foo 
bar 

Setting chiều rộng để ví dụ 1px không được mong muốn.

+0

chỉ tự hỏi, có chuyện gì với width: 0 hoặc 1px - tại sao bạn không muốn điều đó? – Danield

+0

Do các kiểu đính kèm khác vào văn bản - ví dụ như nền. – hsz

Trả lời

25

Bạn phải sử dụng display:table-caption; để đạt được điều này.

Đây là giải pháp.

WORKING DEMO

HTML:

<div>Hello world foo bar</div> 

CSS:

div{display:table-caption;} 

Hope this helps.

+0

Nó hoạt động thực sự. Cảm ơn bạn ! – hsz

+0

Bạn được chào đón :) - @hsz – Nitesh

+0

Đừng dạy cha của bạn làm thế nào để làm cho trẻ em. Có thể chấp nhận câu trả lời sau 15 phút kể từ khi câu hỏi được thêm vào. ;-) Thông báo – hsz

-5

Bạn có thể thiết lập độ rộng của div để 1px, điều này sẽ đặt mỗi từ trên một dòng mới

div { 
    width:1px; 
} 

http://jsfiddle.net/KjX4N/

+0

Điều này không thể chấp nhận được, xin lỗi. – hsz

+0

Có lẽ bạn nên đưa ra một số yêu cầu sau đó, bạn đặt câu hỏi là không thực sự cụ thể, chúng ta có thể thêm thêm html? Nhắm mục tiêu các từ riêng biệt là không thể trong CSS – koningdavid

+0

Có một reuirement: CSS mà không có '1px' - tất cả mọi thứ trong câu hỏi. – hsz

5

Câu trả lời của Nathan sử dụng table-caption gần như chính xác nhưng bỏ sót một vấn đề chính trong câu đó chỉ thực sự chia cho từ dài nhất dẫn đến nhóm các từ ngắn hơn.

Ví dụ câu sau:

lừa này nhóm và chia tách các từ trong câu dựa vào từ dài nhất.

thực sự dẫn đến kết quả sau. Lưu ý nhóm trên in aon the ở đầu ra.

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

Bạn thực sự có thể làm điều đó rất dễ dàng bằng cách thiết lập word-spacing trong đó có excellent support.

Sử dụng mà bạn có thể xuất bản án một cách chính xác như sau:

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

Dưới đây là một ví dụ mã làm việc bạn có thể chạy.

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 Đối với những nỗ lực của bạn để cải thiện hơn nữa câu trả lời. Câu trả lời của tôi dựa trên kịch bản của OP. Bạn đã cung cấp một giải pháp thay thế "bit" khác với những gì tôi đã trả lời trong câu hỏi của OP. – Nitesh

+1

Cảm ơn! Tôi tình cờ gặp được giải pháp của tôi sau khi thử nghiệm với bạn. –

Các vấn đề liên quan