Tôi đang phát triển một ứng dụng sử dụng tính phổ biến-xform. Trước đây tôi đã từng phục vụ các trang dưới dạng text/html với tài liệu XHTML 1.0.Bạn có thể tạo kiểu dáng các phần tử XHTML trong một không gian tên khác bằng cách sử dụng các bộ chọn css tên và lớp không?
Nếu tôi chuyển loại mime thành application/xhtml + xml, tôi sẽ thấy một cải tiến hiệu suất khá lớn, vì javascript có thể sử dụng hàm get ____ NS() thay vì những gì nó đang làm bây giờ (từ từ lặp qua toàn bộ Cây DOM mỗi khi cần chọn một phần tử).
Nhưng khi tôi thử điều này, một loạt CSS của tôi đã ngừng hoạt động. Tôi nhận thấy rằng khi tôi kiểm tra các phần tử, hoặc trong Firebug hoặc trong WebKit Nightly Web Inspector, điểm thất bại là '.classname' và '#id' css selectors trên các phần tử trong không gian tên XFORMS. Tôi cũng nhận thấy rằng trong các thuộc tính DOM được liệt kê cho các phần tử đó, chúng thiếu cả thuộc tính 'id' và 'className'.
Câu hỏi của tôi là, có cách nào để tôi có thể nhận được UA để nhận ra đây là các lớp và id không?
Những điều tôi đã cố gắng, không có kết quả:
- xác định "id" thuộc tính như ID trong ATTLIST một inline DOCTYPE của
- cố gắng mỗi loại tài liệu tôi có thể, hoặc không có loại tài liệu ở tất cả các
- đủ điều kiện thuộc tính id và tên lớp trong không gian tên xhtml (ví dụ: xhtml: id)
Dưới đây là một số mẫu xhtml. Không hoạt động trong cả hai trình duyệt Firefox 3.5 hoặc Safari 4/WebKit hàng đêm
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<style type="text/css">
/* <![CDATA[ */
#test {
background-color: red;
}
.testing {
color: blue;
}
/* ]]> */
</style>
</head>
<body>
<xf:group id="test" class="testing">Test</xf:group>
</body>
Vì tôi đang phát triển một ứng dụng nội bộ, tôi đã được cấp quyền thiết lập các yêu cầu của trình duyệt, vì vậy IE không phải là vấn đề (cơ bản là Firefox 3.6 và Safari 4). Tôi đã hy vọng rằng tôi có thể tránh phải sửa đổi tất cả các kiểu, nhưng có vẻ như tôi không có nhiều lựa chọn. – Frankie