2012-10-02 28 views
27

Nếu tôi chỉ cần đặt word-break: break-all trên một phần tử, tôi thường kết thúc với điều này:Từ thông minh hơn trong CSS?

Xin chào mọi người, tôi đang gõ một mes
hiền đó là quá dài để phù hợp!

Rõ ràng đây sẽ là tốt hơn nhiều:

Xin chào mọi người, tôi đang gõ nhắn
đó là quá dài để phù hợp!

Nhưng cùng một lúc nếu một người nào đó viết:

BLAAAAAAAAARRRRRRRRRRRRGGGGGGGGHHHHHHHH !!!!!!

Sau đó, tôi muốn nó là:

BLAAAAAAAAARRRRRRRRRRR
RGGGGGGGGHHHHHHHH !!!!!!

Tôi dường như không thể tìm ra cách để thực sự làm điều này.

Lưu ý rằng chiều rộng của phần tử không cố định và có thể thay đổi.

+1

Thử 'từ-ngắt: bình thường; word-wrap: break-word'? (Tôi không sử dụng CSS ở trên một mức rất nguyên thủy, hoặc biết cách nó xử lý, nhưng nó "có vẻ như nó có thể làm việc". –

Trả lời

26

Hãy thử word-wrap: break-word; nó sẽ hoạt động như bạn mong đợi.

+0

Hoàn hảo! Cảm ơn! –

+0

'word-break: break-word' là không chuẩn webkit, có cùng một vấn đề như op [this] (http://stackoverflow.com/questions/14190420/firefox-word-break-breaks-short-words-at-random-points/14191114#14191114) câu trả lời giải quyết nó. – Drust

+4

Từ bên phải là 'word-wrap: break-word; ' – aTei

1

Để ngắt từ thông minh hoặc đối với chính xác ngắt từ ở nơi đầu tiên, bạn cần quy tắc phụ thuộc vào ngôn ngữ. Đối với tiếng Anh và nhiều ngôn ngữ khác, ngắt chính xác có nghĩa là gạch nối, với dấu gạch nối được thêm vào cuối dòng khi xảy ra ngắt.

Trong CSS, bạn có thể sử dụng hyphens: auto, mặc dù bạn chủ yếu vẫn cần phải sao chép nó bằng cách sử dụng tiền tố của nhà cung cấp. Vì điều này không hoạt động trên IE 9, bạn có thể xem xét gạch nối dựa trên JavaScript như Hyphenate.js. Trong cả hai trường hợp, điều quan trọng là sử dụng đánh dấu ngôn ngữ (thuộc tính lang).

Phá vỡ chuỗi dài, không thể gạch chéo là một vấn đề khác. Chúng sẽ được xử lý tốt nhất trong quá trình tiền xử lý, nhưng trong một thiết lập đơn giản, word-break: break-word (có nghĩa là không chính xác ngắt lời, bằng tiếng Anh chẳng hạn) có thể được coi là trường hợp khẩn cấp.

0

Đối với rất nhiều dự án, chúng ta thường thêm này khi cần thiết:

.text-that-needs-wrapping { 
    overflow-wrap: break-word; 
    word-wrap: break-word; 
    -ms-word-break: break-all; 
    word-break: break-word; 
    -ms-hyphens: auto; 
    -moz-hyphens: auto; 
    -webkit-hyphens: auto; 
    hyphens: auto; 
} 

Nó xử lý các tình huống kỳ quặc nhất với các trình duyệt khác nhau.

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