Khi xác định nội dung và bản trình bày là gì, hãy xem tài liệu HTML của bạn dưới dạng vùng chứa dữ liệu. Sau đó, hãy tự hỏi sau đây trên mỗi phần tử và thuộc tính:
Liệu thuộc tính/yếu tố đại diện cho một tổ chức có ý nghĩa trong dữ liệu của tôi?
Ví dụ: các từ giữa thẻ <b>
có in đậm chỉ dành cho mục đích hiển thị hay tôi muốn thêm trọng tâm vào dữ liệu đó?
Tôi có sử dụng thuộc tính/yếu tố thích hợp cho thuộc tính thể hiện loại dữ liệu tôi muốn đại diện không?
Vì tôi muốn nhấn mạnh vào phần cụ thể đó, tôi nên sử dụng <em>
(nó không có nghĩa là nghiêng, có nghĩa là nhấn mạnh và có thể được in đậm) hoặc <strong>
tùy thuộc vào mức độ nhấn mạnh mong muốn.
Tôi có sử dụng thuộc tính/yếu tố chỉ cho mục đích hiển thị không? Nếu có, phần tử có thể được xóa và phần tử cha được tạo kiểu bằng CSS không?
Đôi khi thẻ trình bày có thể được thay thế đơn giản bằng các quy tắc CSS trên phần tử gốc.Trong trường hợp đó, thẻ trình bày cần được loại bỏ.
Sau khi tự hỏi mình ba câu hỏi đơn giản này, bạn thường có thể đưa ra quyết định sáng suốt. Một ví dụ:
gốc Mã số: <label for="name"><b>Name:</b></label>
Kiểm tra thẻ <b>
...
Liệu thuộc tính/yếu tố đại diện cho một tổ chức có ý nghĩa trong dữ liệu của tôi?
Không, thẻ không đại diện cho nút dữ liệu. Nó là hoàn toàn cho trình bày.
Tôi có sử dụng thuộc tính/yếu tố thích hợp cho thuộc tính thể hiện loại dữ liệu tôi muốn đại diện không?
<b>
được sử dụng để trình bày các phần tử in đậm.
Tôi có sử dụng thuộc tính/yếu tố chỉ cho mục đích hiển thị không? Nếu có, phần tử có thể được xóa và phần tử cha được tạo kiểu bằng CSS không?
Vì <b>
là thuyết trình và tôi đang sử dụng nó để trình bày, có. Và kể từ khi yếu tố <b>
ảnh hưởng đến toàn bộ <label>
, nó có thể bị xóa và kiểu được áp dụng cho <label>
.
Mục tiêu của HTML ngữ nghĩa là không đơn giản hóa thiết kế và thiết kế lại hoặc để tránh tạo kiểu nội tuyến, nhưng để giúp trình phân tích cú pháp hiểu những gì thẻ cụ thể đại diện trong tài liệu của bạn. Bằng cách đó, các ứng dụng có thể được tạo ra (tức là: công cụ tìm kiếm) để thông minh quyết định nội dung của bạn có ý nghĩa gì và phân loại nó cho phù hợp.
Do đó, bạn nên sử dụng thuộc tính CSS content:
để thêm dấu ngoặc kép xung quanh văn bản nằm trong thẻ <q>
(không có giá trị cho dữ liệu trong tài liệu của bạn khác bản trình bày đó), nhưng không có ý nghĩa Thuộc tính CSS để thêm biểu tượng © vào chân trang của bạn vì nó có giá trị trong dữ liệu của bạn.
Cùng áp dụng cho các thuộc tính. Sử dụng thuộc tính width
và height
trên thẻ <img>
đại diện cho biểu tượng ở kích thước 16x16 có ý nghĩa ngữ nghĩa vì điều quan trọng là hiểu ý nghĩa của thẻ <img>
(biểu tượng có thể có các biểu diễn khác nhau tùy thuộc vào kích thước được hiển thị). Sử dụng các thuộc tính giống nhau trên thẻ <img>
thể hiện hình thu nhỏ của hình ảnh lớn hơn thì không.
Đôi khi bạn sẽ cần phải thêm các phần tử không ngữ nghĩa để có thể đạt được bản trình bày mong muốn của bạn, nhưng thường thì những điều đó có thể tránh được.
Không có yếu tố sai. Có sử dụng sai các yếu tố cụ thể. <b>
không nên được sử dụng khi thêm nhấn mạnh. <small>
nên được sử dụng cho văn bản phụ hợp pháp, không làm cho văn bản nhỏ hơn (xem HTML5 - Section 4.6.4 vì lý do), v.v ... Tất cả các phần tử đều có một kịch bản sử dụng cụ thể và tất cả đều biểu diễn dữ liệu (trừ các phần tử thuyết trình, nhưng chúng có sử dụng một số trường hợp). Không có yếu tố nào được đặt sang một bên.
Thuộc tính là một điều khác.Hầu hết các thuộc tính đều mang tính chất thuyết trình. Các thuộc tính như <img border>
và <body fgcolor>
hiếm khi có dấu hiệu trong dữ liệu bạn đại diện do đó bạn không nên sử dụng chúng (ngoại trừ trong những trường hợp hiếm hoi).
Công cụ tìm kiếm là một ví dụ tốt về lý do tài liệu ngữ nghĩa quan trọng như vậy. Microformats là tập hợp các phần tử và lớp được xác định trước mà bạn có thể sử dụng để trình bày dữ liệu mà công cụ tìm kiếm sẽ hiểu theo một cách nhất định. The product price information in Google Searches là một ví dụ về ngữ nghĩa tại nơi làm việc.
Bằng cách sử dụng các quy tắc được xác định trước trong tiêu chuẩn đã đặt để lưu trữ thông tin trong tài liệu của bạn cho phép chương trình của bên thứ ba hiểu nội dung có vẻ là tường văn bản mà không sử dụng thuật toán chẩn đoán có thể dễ bị lỗi. Nó cũng giúp người đọc màn hình và các ứng dụng trợ năng khác dễ dàng hiểu được ngữ cảnh trong đó thông tin được trình bày. Nó cũng giúp duy trì khả năng đánh dấu của bạn vì mọi thứ được gắn với một định nghĩa đã định.
nhưng chỉ có hình nền. ý bạn là chúng tôi không nên sử dụng nếu chúng tôi muốn tách nội dung và bản trình bày –
Tất cả các thiết kế trong thư viện CSS Zen Garden đều sử dụng cùng một tệp HTML mà bạn có thể xem tại đây: http://www.csszengarden.com/ zengarden-sample.html. Không có gì thay đổi giữa mỗi thiết kế. Chỉ tham chiếu đến tệp CSS thích hợp. Có hơn 200 thiết kế, và sự thay đổi là quyết liệt. –
@Jitendra: Không không không .... không ai nói bạn phải tránh bất kỳ thẻ cụ thể nào. Mục tiêu là sane và hợp lý về nó, và có được một sự tách biệt rõ ràng nhất có thể. CSS Zen là một trang demo tuyệt vời, nhưng chúc may mắn cố gắng để có được mức độ tách biệt đó với một ứng dụng web. – slugster