Đây là cách làm việc này. Bạn cần phải sửa đổi thuộc tính dữ liệu của bạn như sau:
<div data-foo='First line 
 Second Line'>foo</div>
và CSS (bằng chứng của khái niệm):
[data-foo]:after {
content: attr(data-foo);
background-color: black;
color: white;
white-space: pre;
display: inline-block;
}
Fiddle Demo: http://jsfiddle.net/audetwebdesign/cp4RF/
Chương trình hoạt động
Sử dụng \a
không hoạt động, nhưng thực thể HTML tương đương, 

.
Theo thông số CSS2.1, attr(attribute-label)
trả về một chuỗi nhưng chuỗi này không được phân tích bởi bộ xử lý CSS (Tôi không chắc chắn điều này có nghĩa là chính xác). Tôi suy đoán rằng \a
phải được giải thích bởi bộ xử lý CSS để mã được hiển thị thuộc tính.
Ngược lại, thực thể HTML được trình duyệt trực tiếp hiểu (tôi đoán ...) để nó có vẻ hoạt động.
Tuy nhiên, để nguồn cấp dữ liệu đường hoạt động, bạn cần đặt white-space: pre
để giữ khoảng trắng trong phần tử giả. Lưu ý: bạn cũng có thể xem xét cụ thể là pre-wrap
hoặc pre-line
tùy thuộc vào tính chất nội dung của bạn.
Reference
Về nhận được mã thực thể HTML cho một linefeed:
http://www.fileformat.info/info/unicode/char/000a/index.htm
Về giá trị attr()
cho các tài sản content
:
http://www.w3.org/TR/CSS2/generate.html#content
Nguồn
2013-05-09 01:22:23
'\ a' hoạt động nếu bạn đặt nó trực tiếp trong 'nội dung:' Dòng đầu tiên \ Dòng thứ hai ';' nhưng dường như không nếu bạn kéo nó qua 'attr()'. Wow, câu hỏi thú vị! –
Tôi đã tạo một bản demo để kiểm tra hai giải pháp: newline đơn giản và thực thể ' '. http://codepen.io/denilsonsa/pen/bgxKgP Tóm tắt: cả hai giải pháp đều hoạt động trên tất cả các trình duyệt hiện đại (Chrome, Firefox, Safari 9+, IE 11+). –