2008-09-19 34 views
19

Tôi đang xây dựng một trang web ngay bây giờ, cho đến nay tôi đã đau đớn buộc tất cả mọi thứ phải tuân thủ và có vẻ khá giống nhau trên các trình duyệt. Tuy nhiên, tôi bắt đầu triển khai một số javascripts của bên thứ ba/miễn phí làm những việc như thêm thuộc tính (ví dụ: order = 2). Tôi có thể làm việc xung quanh điều này nhưng đó là một nỗi đau, và tôi bắt đầu mất hiệu trưởng của tôi để đảm bảo mọi thứ đều hợp lệ. Thực sự, có điểm nào để làm việc xung quanh một cái gì đó như thế này? Tôi đã nhận plugin HTMLValidator cho firefox và xem hầu hết các trang web lớn (bao gồm cả trang web này, google, v.v.), chúng không phải là XHTML hoặc HTML hợp lệ.Việc tuân thủ XHTML có vô nghĩa không?

+0

Đồng thời xem câu hỏi 'Lựa chọn phiên bản HTML': http://stackoverflow.com/questions/3654/html-version-choice – Chris

+1

Tôi đã xóa thẻ tuân thủ lời nói. Blatantly tấn công, IMHO. –

Trả lời

1

Tôi chưa trải nghiệm một phiên bản khi bổ sung thuộc tính phi tiêu chuẩn đã gây ra sự cố hiển thị trong bất kỳ trình duyệt nào.

Đừng cố gắng giải quyết những thuộc tính không chuẩn đó. Trình xác thực rất tiện dụng như các công cụ để kiểm tra lại mã của bạn cho các lỗi không chủ định, nhưng như chúng ta đều biết, ngay cả xhtml hợp lệ hoàn toàn sẽ không luôn hiển thị liên tục trên các trình duyệt. Có rất nhiều lần khi các quyết định thiết kế yêu cầu chúng tôi sử dụng các hacks cụ thể (và không chuẩn) của trình duyệt để đạt được hiệu quả. Đây là cuộc sống của một nhà phát triển web được chứng minh bằng số lượng trang web công nghệ lái xe (google, yahoo, v.v.) không xác thực.

2

Chỉ cần nhớ rằng thẻ XHTML hiển thị khác nhau trong hầu hết các trình duyệt so với không có. Thuộc tính DOCTYPE xác định chế độ nào trình duyệt hiển thị và quyết định cái gì là và không được cho phép. Nếu bạn đi lạc khỏi việc tuân thủ XHTML, hãy đảm bảo kiểm tra lại trong tất cả các trình duyệt.

Cá nhân tôi tuân theo các tiêu chuẩn mới nhất bất cứ khi nào có thể, nhưng bạn phải cân nhắc thời gian/tiền bạc để tuân thủ chắc chắn và tùy theo sở thích cá nhân nhiều nhất.

4

Xác thực hữu ích để xác định khi nào mọi thứ không đáp ứng được các tiêu chuẩn mà bạn có thể đồng ý. Nếu bạn đang có mục đích sử dụng một công cụ đặc biệt bổ sung một cái gì đó không có trong các tiêu chuẩn xác nhận, rõ ràng là không phá vỡ thỏa thuận tiêu chuẩn cá nhân của bạn. Cuộc thảo luận này trở nên khó khăn hơn nhiều nếu bạn có một ông chủ hoặc một khách hàng tin rằng mọi thứ sẽ trả lại ánh sáng xanh, vì bạn sẽ phải giải thích điều đó với họ và thuyết phục họ không chỉ đơn giản là bạn lười biếng.

Điều đó nói rằng, hãy chắc chắn nó không chỉ đơn giản là một trường hợp bạn lười biếng. Trong khi các trình duyệt tính hợp lệ có thể khó chịu liên tục đưa ra mọi cá thể thuộc tính của bên thứ ba, điều đó không làm mất hiệu lực (ha) các lỗi xác thực khác mà chúng đang đề cập đến. Nó thường có giá trị quét thông qua như là một phương tiện kiểm tra lại công việc của bạn.

1

HTML hợp lệ thường là trợ giúp cho cả bạn và công cụ hiển thị trình duyệt. Càng ít quirks các trình duyệt phải đối phó với, họ càng có thể tập trung vào việc thêm các tính năng mới. Càng nghiêm ngặt hơn, bạn càng mất nhiều thời gian tự hỏi tại sao thẻ f @ # cking độc quyền này không hoạt động trong các trình duyệt khác.

Mặt khác, XHTML là, IMHO, vô nghĩa hơn, ngoại trừ nếu bạn có kế hoạch tích hợp nó trong một số tài liệu XML. Như IE vẫn không nhận ra nó, nó là khá vô dụng để ở gắn bó với.

3

Nếu bạn đang lập kế hoạch tận dụng lợi thế của XHTML dưới dạng XML, thì sẽ rất đáng để làm cho các trang của bạn hợp lệ và được định dạng tốt. Nếu không, HTML ngữ nghĩa cũ thuần túy có thể muốn bạn muốn. Dù bằng cách nào, nhu cầu của khán giả của bạn lớn hơn nhu cầu của một người xác nhận.

4

Tuân thủ tiêu chuẩn về việc tăng cơ hội trang của bạn sẽ hoạt động trong các trình duyệt bạn không thử nghiệm. Điều này bao gồm trình đọc màn hình và bản cập nhật tiếp theo của các trình duyệt mà bạn kiểm tra và các trình duyệt mà bạn thực hiện thử nghiệm nhưng đã được người dùng định cấu hình theo cách bất ngờ.

Xác thực không đảm bảo cho bạn bất kỳ điều gì, vì có thể trang của bạn xác thực nhưng vẫn đủ mơ hồ rằng nó sẽ không hoạt động theo cách bạn muốn trên trình duyệt một số ngày.

Tuy nhiên, nếu trang của bạn xác thực, bạn ít nhất có hiệu lực của thông số XHTML cho biết cách hoạt động của nó. Nếu nó không hợp lệ, tất cả những gì bạn có là một loạt các quy ước không chính thức giữa các nhà văn trình duyệt.

Có lẽ tốt hơn để viết HTML hợp lệ 3 hơn XHTML không hợp lệ, nếu có điều gì đó bạn muốn làm được phép trong một nhưng không được phép.

+0

+1 cho đoạn cuối cùng của bạn –

0

Tôi cố gắng viết mã tuân thủ phần lớn thời gian cân nhắc thời gian/chi phí so với nhu cầu của đối tượng trong mọi trường hợp nhưng một. Trường hợp bạn mã cần phải được tuân thủ 503, đó là lợi ích tốt nhất của bạn và sự quan tâm của đối tượng của bạn để viết mã tuân thủ. Tôi đã đi qua một loạt các độc giả màn hình mà thổi lên khi mã thậm chí còn hơi tắt.

Giống như phần lớn các áp phích đã nói, đó thực sự là tất cả về những gì khán giả của bạn cần.

1

Tôi nghĩ rằng viết "mã hợp lệ" là quan trọng, đơn giản vì bạn đang đặt một ví dụ bằng cách làm theo các quy tắc. Nếu mọi nhà phát triển đã viết mã cho Fx, Safari và Opera, tôi nghĩ rằng IE phải "bắt đầu theo các quy tắc" sớm hơn so với phiên bản 8.

0

Nó không phải là vô nghĩa bởi bất kỳ phương tiện, nhưng có rất nhiều biện minh cho phá vỡ nó. Trong giai đoạn đầu của quá trình phát triển CSS, nó rất hữu ích cho việc chẩn đoán các vấn đề trình duyệt nếu đánh dấu của bạn là hợp lệ. Ngoài ra, nếu bạn muốn làm điều gì đó và bạn cảm thấy phương pháp thích hợp nhất là phá vỡ xác thực, điều đó thường là ok.

Cách khác để sử dụng thuộc tính tùy chỉnh là sử dụng thuộc tính 'rel', ví dụ: xem Litebox (và thân nhân của nó).

2

Theo như các trình duyệt được quan tâm, XHTML tuân thủ là vô nghĩa ở chỗ:

  1. Trình duyệt không có phân tích cú pháp XHTML. Họ có các trình phân tích cú pháp HTML tương thích với các phiên bản cụ thể, không tương thích với phiên bản web, xây dựng một DOM xung quanh không gian tên http://www.w3.org/1999/xhtml.

  2. Một số trình duyệt có trình phân tích cú pháp XML có thể xử lý đánh dấu XHTML được phân phối dưới dạng ứng dụng/xhtml + xml dưới dạng XML. Điều này sẽ lấy XML và cung cấp kiểu HTML và hành vi mặc định cho các phần tử trong không gian tên http://www.w3.org/1999/xhtml. Tuy nhiên, theo như phân tích cú pháp đi, nó không có gì để làm với XHTML. Các quy tắc phân tích cú pháp XML được theo sau, chứ không phải một số quy tắc của XHTML DTD.

Vì vậy, khi bạn sử dụng đánh dấu XHTML, bạn đang đưa thứ gì đó xa lạ cho trình duyệt và xem nó có xuất hiện như bạn dự định hay không. Vấn đề là, bạn có thể làm điều này với bất kỳ đánh dấu nào. Nếu nó ám như dự định và tạo ra đúng DOM, bạn đang làm khá tốt. Bạn chỉ cần nhớ đảm bảo chuyển đổi DOCTYPE và đảm bảo rằng bạn không dựa vào lỗi trình duyệt (vì vậy mọi thứ không bị xáo trộn trong các trình duyệt không có lỗi).

Việc tuân thủ XHTML là tốt cho việc kiểm tra cú pháp (bằng cách xác thực) để xem đánh dấu có được định dạng tốt hay không. Điều này giúp tránh phân tích lỗi. Tất nhiên, điều này cũng có thể được thực hiện với HTML, vì vậy không có gì đặc biệt về XHTML trong trường hợp này.Dù bằng cách nào, bạn vẫn phải thử nghiệm trong các trình duyệt và hy vọng các nhà cung cấp trình duyệt tạo ra các trình phân tích cú pháp HTML tuyệt vời có thể chấp nhận tất cả các loại crap.

Không có gì vô nghĩa khi cố gắng tuân thủ những gì các trình duyệt mong đợi. HTML5 giúp với thời gian lớn này. Và, nói về HTML5, bạn có thể xác định các thuộc tính tùy chỉnh tất cả những gì bạn muốn. Chỉ cần tiền tố chúng với dữ liệu, như trong < p data-order = "Đây là thuộc tính hợp lệ, tùy chỉnh". > kiểm tra </p >.

+0

Tất cả các trình duyệt chính ngoại trừ IE có trình phân tích XHTML. XHTML DTD là loại được tôn trọng (các thực thể được đặt tên hoạt động khi nó hiện diện, đôi khi sai lầm ngay cả khi nó không :) Tính đúng đắn và xác nhận hợp lệ trong các thuật ngữ XML là những thứ khác nhau. – Kornel

0

Chắc chắn, bạn luôn có thể tiếp tục và viết nó theo cách bạn muốn, đảm bảo rằng tối thiểu nó hoạt động. Tất nhiên, chúng tôi đã phải chịu đựng tâm lý này và đã chứng kiến ​​sản lượng của nó, Internet Explorer 6.

Tôi là người hâm mộ lớn của số Mike Davidson approach to standards-oriented development.

Chỉ vì bạn có thể xác thực mã của mình không có nghĩa là bạn tốt hơn bất kỳ ai khác. Heck, nó thậm chí không nhất thiết có nghĩa là bạn viết mã tốt hơn bất kỳ ai khác. Ai đó có thể viết một ứng dụng ngân hàng hoàn toàn trong Flash là một coder tốt hơn bạn. Người nào đó có thể tích hợp mã của bên thứ ba vào một môi trường xuất bản phức tạp là một coder tốt hơn bạn. Hãy suy nghĩ về xác nhận là sử dụng ngữ pháp hoàn hảo của hình ảnh; nó giúp bạn hiểu ý tưởng của bạn và là một dấu hiệu của một nền giáo dục tốt, nhưng nó không quan trọng bằng các ý tưởng và khái niệm mà bạn nghĩ đến và sau đó giao tiếp. Người có sức lôi cuốn và thông minh nhất mà tôi từng làm việc là từ miền Nam và sử dụng từ “không phải” khá thường xuyên. Nó đã không làm cho anh ta ít thông minh hơn, và, trên thực tế, nó làm cho anh ta đáng nhớ hơn. Vì vậy, tất cả những gì tôi nói là có rất nhiều thứ để đánh giá một người nào đó ... việc xác thực là một trong số họ, nhưng chắc chắn không phải là điều quan trọng nhất.

Rất nhiều người hiểu lầm bài đăng này có nghĩa là chúng tôi không nên viết mã theo tiêu chuẩn. Chúng ta nên, rõ ràng, nhưng nó không phải là một cái gì đó thậm chí nên thực sự được suy nghĩ về. Quân đội xác thực sẽ luôn luôn giải mã những người không xác thực, nhưng xác thực có nghĩa là nhiều hơn mã hợp lệ.

Vì vậy, không làm mất nguyên tắc của bạn, nhưng hãy nhớ rằng nếu bạn tuân thủ các tiêu chuẩn, bạn sẽ ít có khả năng kết thúc trong các vấn đề sâu sắc hơn trong tương lai. Nội dung bạn đang cố cung cấp quan trọng hơn rất nhiều so với nội dung được hiển thị.

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