Chương 2: Giới thiệu về Mobile Web
2.4.8. Sự khác nhau giữa XHTML và HTML
XHTML tuân theo một cách nghiêm ngặt cú pháp của ngôn ngữ XML, trong khi HTML thỡ khụng. HTML không đòi hỏi phải bám chặt vào các tập luật của ngôn ngữ XML, do đó có thể việc hiển thị nội dung không giống nhau trên một số trình duyệt. Sự tuân thủ nghiệm ngặt các quy luật viết mã của XML đảm bảo một thể hiện thống nhất về nội dung trên phần lớn các trình duyệt và thiết bị. Nó cũng đảm bảo tất cả các tài liệu đều đúng định dạng và đúng theo XML, vì thế ta có thể sử dụng các công cụ XML chuẩn để quản lý, chuyển đổi, thao tác, và phân tích chúng. HTML XTHML <UL> <li><B><I>item</b> one</i> <LI>item two</li> </ul> <BR> <A href=document.html>a link</a> <ul> <li class="i"> <span class="b">item</span> one</li> <li>item two</li> </ul> <br/> <a href="document.xhtml">link</a >
Bảng 2.4 Các quy tắc của XML có trong XHTML nhưng không có trong HTML
Minh họa trên đây sử dụng CSS thuần túy, không có các phần tử <b> và <i> lỗi thời (và thừa nhận các lớp CSS i và b được định nghĩa trong mẫu (style sheet) để áp dụng các thuộc tính CSS font-style: italic và font-weight: bold, theo thứ tự định sẵn). Trong thực tế, XHTML MP bao gồm các phần tử <b>, <i>, <big>, và <small> giúp cho việc định dạng chữ tiện lợi.
Lưu ý những điểm khác nhau sau đây giữa HTML và XHTML MP:
• HTML không phân biệt chữ hoa, chữ thường trong các thẻ tên (tag name). XHTML thì lại phân biệt dạng chữ trong tên tất cả các phần tử và thuộc tính. Hiện nay, tên của tất cả các phần tử trong XHTML MP là chữ thường.
• Trong cột HTML, thẻ <li> đầu tiên thiếu thẻ đóng </li> của nó. Tất cả các phần tử cần phải được đóng lại trong XHTML.
• Các thẻ <b> và <i> không được lồng nhau trong mã HTML, việc lồng nhau này lại không được dùng trong XHTML MP.
• Dấu nhỏy khụng bao quanh giá trị của thuộc tính href trong mã HTML. Giá trị các thuộc tính trong XHTML luôn luôn phải nằm trong dấu nháy đơn hoặc kép.
• Tất cả các thẻ rỗng trong XHTML phải được “seft-closing” (tự đóng); ví dụ, <br/> có một dấu / đóng bên trong thẻ để chỉ ra rằng sẽ không có thẻ đóng </br> tương ứng. Nó cũng được áp dụng ở nhiều thẻ khác như <hr/>, <input/>,... • Các cặp giá trị thuộc tính không thể bị giảm thiểu như chúng có thể trong
HTML. Trong HTML, khi một thuộc tính có thể mang chỉ một giá trị, nó được phép bỏ qua giá trị. Ví dụ bên trong phần tử HTML <form> ở đoạn mã sau:
<option value=”somevalue” selected>
thuộc tính “selected” vừa được cực tiểu hoá.
• Trong ví dụ trên, trình duyệt HTML cho rằng phần tuỳ chọn nên được hiển thị là “selected”. Tuy nhiên, XHTML lại yêu cầu phải cung cấp cả tên thuộc tính và giá trị của nó, ngay cả khi chỉ có một giá trị được cho phép:
<option value="somevalue" selected="selected">
• Luật này cũng được dùng cho cho các phần tử khác. Ví dụ:
<input type="radio" ... checked="checked" /> <input type="checkbox" ... checked="checked" /> <dl compact="compact">
• Các trình duyệt HTML có thể xử lý được những sự mơ hồ, không rõ ràng với những tài liệu không đúng theo chuẩn HTML. Tuy nhiên mọi thứ trong XHTML đều phải được rõ ràng vỡ nú được tuân theo các luật cú pháp nghiêm ngặt của XML.
• Các trường nhập văn bản hỗ trợ thuộc tính CSS -wap-input-format để định nghĩa kiểu nhập, ví dụ *N cho kiểu nhập số. Điều này sẽ giúp người dùng tránh việc chuyển đổi qua lại giữa các kiểu nhập.