Loại = văn bản / css có cần thiết trong thẻ <link> không?


192

Tôi đã tự hỏi liệu có cần thiết phải sử dụng <link rel="stylesheet" type="text/css" href=...>hơn <link rel="stylesheet" href=...>. Các rel="stylesheet"dấu những thông tin mà nó là một kiểu - vì vậy text/csskhông thực sự thêm bất cứ điều gì như xa như tôi đang quan tâm.

Định dạng bản định kiểu duy nhất được HTML sử dụng là CSS, vậy text/css'nói' với trình duyệt là gì? Một số trang web dường như thêm type="text/css"thuộc tính ( http://www.jquery.com/ ), trong khi các trang web khác thì không ( http://www.youtube.com/ ).

Vì vậy, việc sử dụng type="text/css"trong một <link rel="stylesheet">yếu tố là gì, và có cần thiết phải bao gồm nó không?


1
Nó có thể đã được triển khai để hoạt động như một dự phòng cho các máy chủ không trả lại chính xác MIME-typetrên .csscác tệp, nhưng có vẻ như nó không bao giờ cần thiết. Tôi sử dụng nó chỉ vì mục đích nhất quán.
vét

Một cái gì đó tôi vừa chạy vào, không chỉ định loại = "" hoặc IE sẽ không tải biểu định kiểu của bạn.
mhenry1384

Ngày nay, trang jquery.com không sử dụng type="text/css", nhưng trang Stackoverflow vẫn đang sử dụng.
Marco Demaio

Câu trả lời:


149

Không bắt buộc với thông số HTML5, nhưng đối với các phiên bản HTML cũ hơn thì bắt buộc phải có.

Thông số kỹ thuật 4 W3.org

http://www.w3.org/TR/html40/struct/links.html#edef-LINK http://www.w3.org/TR/html40/present/styles.html

Loại là viết tắt của Loại MIME của biểu định kiểu. Giá trị được hỗ trợ duy nhất tôi từng thấy là Text / CSS, có lẽ đó là lý do tại sao HTML5 đã bỏ nó. Tôi tưởng tượng họ đã có nó cho các phiên bản trước để cho phép các khả năng mở rộng trong tương lai không bao giờ xảy ra.

Sử dụng HTML5 và không chỉ định loại, cho đến nay tôi không gặp vấn đề gì với khả năng tương thích ngay cả khi thử nghiệm các phiên bản IE cũ hơn.


24
nó có thể được yêu cầu trong thông số HTML4, nhưng không có trình duyệt nào thực sự thực thi nó.
Spudley

4
tốt, có một loại cho "hình ảnh / ico"
maxisam

2
Trên thực tế, thông số HTML4.01 không xuất hiện để yêu cầu typethuộc tính.
Tất cả công nhân là cần thiết

30

Nó không bắt buộc, không.

Phần của Tiêu chuẩn sống HTML mà bạn quan tâm là Phần linktử , trong đó nêu rõ:

Một linkphần tử phải có relthuộc tính hoặc itempropthuộc tính, nhưng không phải cả hai.

Các typethuộc tính cung cấp cho các loại MIME của tài nguyên liên kết. Nó hoàn toàn là tư vấn. Giá trị phải là một chuỗi loại MIME hợp lệ.

Đối với các liên kết tài nguyên bên ngoài, typethuộc tính được sử dụng làm gợi ý cho tác nhân người dùng ...


"Như một gợi ý cho tác nhân người dùng ..." nghĩa là gì? "Tác nhân người dùng" là gì?
ScottyBlades

@ScottyBlades Câu hỏi hay! Tác nhân người dùng là bất cứ điều gì có thể thay mặt người dùng tải xuống (trong trường hợp này) HTML. Hầu hết thời gian đó là một trình duyệt web, nhưng nó cũng có thể là một máy khách đầu cuối như curl.
alexmuller

6

HTML4.01 không yêu cầu typethuộc tính trên <link>thẻ. Theo đặc điểm kỹ thuật, typethuộc tính là một gợi ý cho trình duyệt. Nếu trình duyệt không hỗ trợ loại nội dung được gợi ý, thì nó có thể bỏ qua việc tìm nạp nó.

loại = nội dung-loại [CI]

Thuộc tính này đưa ra gợi ý tư vấn về loại nội dung của nội dung có sẵn tại địa chỉ mục tiêu liên kết. Nó cho phép các tác nhân người dùng lựa chọn sử dụng cơ chế dự phòng thay vì tìm nạp nội dung nếu họ được thông báo rằng họ sẽ nhận được nội dung theo loại nội dung mà họ không hỗ trợ.

Các tác giả sử dụng thuộc tính này chịu trách nhiệm quản lý rủi ro rằng nó có thể trở nên không phù hợp với nội dung có sẵn tại địa chỉ mục tiêu liên kết.

  • LƯU Ý: <link>trì hoãn <a>định nghĩa của typethuộc tính.

1
Đây là câu trả lời hữu ích nhất => về cơ bản: chỉ sử dụng thuộc tính type nếu trình duyệt có thể không hỗ trợ loại => vô dụng đối với các tệp tiêu chuẩn web như CSS.
jave.web

4

Tôi hiểu rằng đó là cho phép đặc tả các bảng định kiểu ở các định dạng khác ngoài văn bản / css.

Mặc dù đã trở thành định dạng phân phối (và tiêu chuẩn) chiếm ưu thế cho các bảng định kiểu cho các tài liệu HTML (X), nhưng thông số kỹ thuật thực sự đủ rộng để cho phép nhiều loại MIME khác nhau được thông qua, chỉ là các trình duyệt tiêu chuẩn không triển khai chúng.


1

Không liên quan đến hầu hết mọi người, nhưng một số hệ thống (ít nhất là Microsoft SharePoint 2013) sẽ sử dụng thuộc tính loại này khi tìm cách xử lý HTML (ví dụ: khi tạo tệp trang .master).


-1

Không, nó chỉ là viết tắt của loại MIME, nó không được dùng trong HTML, Chúng tôi có thể bỏ qua sử dụng mà không cần bất kỳ khả năng tương thích trình duyệt nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.