2011年8月10日 星期三

VML and DOCTYPE

最近遇到在網頁中使用 VML(Vector Markup Language) 看不到效果的問題, 結果發現移除了 DOCTYPE 就解決了, 但是網頁中其它部份卻因為沒有 DOCTYPE 而亂了, 因此看來還是需要將 DOCTYPE 加上, 往 "加了 DOCTYPE, VML 就不正常" 的方向找問題.

在找了些資料並作實驗後, 發現有兩處要改:

原本的 CSS:
    v\:* {
        behavior:url(#default#VML);
    }

修改後的 CSS:
    v\:line {
        behavior:url(#default#VML);
        display: inline-block;
    }

第一點就是在 CSS 中要特別指定 VML element, 而不能用 * (wildcard) 代替所有 element; 第二點是要為此 element 加上 display 屬性, 這樣就可以繼續用 DOCTYPE 了.

順便一題, 要使用 VML, 在 html element 中要指定 namespace.
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">

更多資訊:
Introduction to VML
- VML element is not displayed in strict standards-compliant mode in Internet Explorer
- loose.dtd 問題

沒有留言:

張貼留言