2012-01-16 23 views
22

Tôi đang cố gắng thêm một số CSS nội tuyến trong một tệp HAML. Tôi nghĩ rằngHAML - thêm loại = text/css vào <style> thẻ với: bộ lọc css

%noscript 
    :css 
    .pagecontent {display:none;} 

sẽ tạo ra:

<noscript> 
    <style type="text/css"> 
    /*<![CDATA[*/ 
     .pagecontent {display:none;} 
    /*]]>*/ 
    </style> 
</noscript> 

nhưng nó không. Vì nó lá ra type="text/css" và sản xuất:

<noscript> 
    <style> 
    /*<![CDATA[*/ 
     .pagecontent {display:none;} 
    /*]]>*/ 
    </style> 
</noscript> 

Tôi chỉ có thể sử dụng brute force %style(type="text/css") nhưng :css lọc HAML của vẻ như nó nên được nhiều hơn "tao nhã"?!? Hoặc, tôi đã bỏ lỡ điều gì đó (tôi hiếm khi đối phó với CSS nội tuyến) và type không còn cần thiết nữa?!?

Trả lời

19

Haml sẽ xuất ra thuộc tính type nếu tùy chọn format được đặt thành xhtml hoặc html4. Nếu định dạng được đặt thành html5, thuộc tính sẽ bị bỏ qua.

Xem Haml docs on optionssource of the CSS filter.

Giá trị mặc định trong Haml 3.1.x là xhtml, ngoại trừ trong Rails khi nó là html5 do đó là Rails mặc định. Trong Haml 4+, mặc định sẽ là html5 trong toàn bộ. (Ngoài ra trong 4+ các thẻ CDATA sẽ được bỏ ra theo mặc định khi định dạng là html4 hoặc html5.)

+7

Một đánh cắp rất xứng đáng của dấu kiểm màu xanh lá cây, thưa ông. +1 – Domenic

9

type defaults to text/css as of HTML5 và luôn thực hiện điều này (ví dụ: trong quá trình triển khai trình duyệt).

Vì vậy, có, type="text/css" là không cần thiết (và chưa bao giờ có).

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