2012-06-20 40 views
5

Tôi có một kiểu với đoạn mã sau:Máy nén YUI và nội dung CSS?

.author-name:before { 
content:"by: "; 
} 

Khi tôi chạy qua YUI Compressor, tôi nhận được:

.author-name:before{content:"by:"} 

Đây là một vấn đề bởi vì nó làm mờ nhạt những khoảng trắng dự định. Tôi nghĩ sử dụng các bình luận đặc biệt của Máy nén YUI, như sau:

.author-name:before { 
    /*!YUI-Compressor */content: "by: "; 
} 

... có thể giúp ích, nhưng có vẻ như không. Ngoài ra, các bình luận đã bị xóa sổ. Ấn tượng của tôi dựa trên nhận xét trong JavaScript bắt đầu bằng /*!get preserved, nhưng điều đó không thực sự xảy ra.

Ngắn sau khi xử lý quá trình xây dựng của tôi để không nhận dạng, có cách nào để thực hiện việc này không? Chúng tôi hiện đang sử dụng phiên bản 2.3.5 của máy nén YUI và chạy với các cờ --charset utf8 -v -o

Vì vậy, câu hỏi của tôi, có nghĩa là, có cách nào để Máy nén YUI tôn trọng không gian ở các giá trị content: hoặc một cách thế nào để thêm ý kiến ​​CSS trước và sau một khối tôi không muốn rút gọn?

Trả lời

4

Là một workaround, hãy thử sử dụng thực thể unicode thay vì nhân vật không gian riêng của mình:

.author-name:before {content: "by:\00A0"; } 

\00A0 đặc biệt là không gian không bị phá hủy.

+0

Đây là giải pháp phù hợp. Tôi vẫn hy vọng cho một sửa chữa YUI Compressor. Cú pháp '\ 00A0' được hỗ trợ như thế nào trong các trình duyệt hỗ trợ' nội dung' cho nội dung CSS '? – artlung

+1

Được hỗ trợ hoàn hảo trên tất cả các trình duyệt chính bao gồm IE8 +. Chỉ có sự mâu thuẫn mà tôi gặp phải là sử dụng các ký tự hợp chất như '" foo "" bar "' có các vấn đề trong IE theo như tôi nhớ, nhưng đây không phải là trường hợp. –

1

Bạn có thể thêm vào một quỹ để đảm bảo các nội dung:

.author-name:before { 
    content: "by:"; 
    margin: 0 .35em 0 0; 
} 
+1

.3em hoặc thậm chí .35em thường gần với chiều rộng ký tự khoảng trắng hơn. –

+0

điểm tốt. nó luôn luôn tốt hơn để sử dụng các thuộc tính css dự định cho spacings thay vì không gian màu trắng. – apparat

+0

@MaratTanalin: cảm ơn, đã điều chỉnh. – erenon

2

Tôi đã thử css của bạn bằng cách sử dụng phiên bản 2.3.4 và 2.4.6 và cả hai đều bảo toàn không gian bên trong chuỗi. Vì vậy, nó hoặc là một lỗi rất cụ thể (không thể tìm thấy bất cứ điều gì trong tracker lỗi) hoặc cái gì khác là đi sai. Bạn có chắc chắn đó là một ký tự không gian ascii và các dấu nháy đơn thông thường (không phải là các dấu nháy đơn của Windows hay cái gì đó)?

Khi tôi chạy thử nghiệm trên cùng một css thay thế dấu ngoặc kép ascii bằng ký tự unicode 201C, dấu ngoặc kép bên trái, không gian bị xóa. Lý do khá đơn giản: trình phân tích cú pháp không nhận ra nó như là một chuỗi và cho phép nó cắt không gian trắng.

Bạn có thể muốn thử phiên bản mới nhất từ ​​đây http://yuilibrary.com/download/yuicompressor/. Trong trường hợp phiên bản hiện tại của bạn được cài đặt bằng cách sử dụng một số trình quản lý gói: chỉ cần trích xuất tệp .jar từ thư mục 'xây dựng' lưu trữ.

+0

Cảm ơn bạn đã kiểm tra. Điều đó thật lạ lùng khi nó hoạt động khác đi. Tôi đang giải quyết nó với các chuỗi CSS thoát, và dường như đáp ứng nhu cầu của tôi, nhưng khi chúng tôi xem xét lại công cụ trên dự án này, tôi sẽ thử các phiên bản hiện tại của YUI Compressor. – artlung

+0

Ồ, và vâng, tôi khá chắc chắn đó là không gian chuẩn và các ký tự trích dẫn trong CSS - không phải ký tự Windows. Và nó chỉ là thứ mà bị tước đoạt. – artlung

+0

Đã thêm một bài kiểm tra khác để làm rõ nhận xét về dấu ngoặc kép và trường hợp không gian bị tước bỏ. –

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