2011-10-03 37 views
79

Tôi nhớ đã nghe một thời gian dài trước đó nó đã được coi là "thực hành tốt nhất" để quấn dấu ngoặc kép quanh tên phông chữ có chứa nhiều từ trong thuộc tính CSS font-family, như thế này:Tôi có cần bọc dấu ngoặc kép xung quanh tên họ phông chữ trong CSS không?

font-family: "Arial Narrow", Arial, Helvetica, sans-serif; 

Đối với các heck của nó , Tôi đã thử xóa dấu ngoặc kép khỏi "Arial Narrow" và Safari và Firefox không gặp bất kỳ sự cố nào khi hiển thị nó.

Vì vậy, có bất kỳ logic nào với quy tắc chung này hay chỉ là một huyền thoại? Đó có phải là vấn đề với các trình duyệt cũ không còn áp dụng cho các phiên bản hiện tại không? Tôi đã làm điều này từ rất lâu đến nỗi tôi không bao giờ dừng lại để nghĩ rằng nó có thực sự cần thiết hay không.

+0

Tôi nghĩ rằng tốt hơn nên trích dẫn mọi gia đình phông chữ, ít hơn những chữ cái chung. Nó giữ mọi thứ nhất quán. –

Trả lời

70

Các CSS 2.1 spec cho chúng ta biết:

tên gia đình Font phải hoặc được trích dẫn như dây đàn, hoặc không thể viện chứng như là một chuỗi của một hoặc nhiều số nhận dạng. Điều này có nghĩa là hầu hết các dấu câu ký tự và chữ số ở đầu mỗi mã thông báo phải được đặt trong tên họ phông chữ không được trích dẫn.

Nó tiếp tục nói:

Nếu một chuỗi các định danh được cho là một tên họ phông chữ, các trị giá tính toán là tên chuyển thành một chuỗi bằng cách tham gia tất cả các định danh trong theo từng khoảng trắng.

Để tránh những sai lầm trong thoát, nó được khuyến khích để trích dẫn phông chữ gia đình tên có chứa khoảng trắng, chữ số, hoặc các ký tự chấm câu khác hơn là dấu gạch nối:

Vì vậy, có, có một sự khác biệt, nhưng một điều đó không gây ra bất kỳ vấn đề gì. Cá nhân, tôi luôn trích dẫn tên phông chữ khi chúng chứa dấu cách. Trong một vài trường hợp (có lẽ rất hiếm), có dấu ngoặc kép là hoàn toàn cần:

tên gia đình Font điều đó xảy ra để được giống như một giá trị từ khóa ('kế thừa', 'serif', 'sans-serif' , 'monospace', 'fantasy' và 'chữ thảo') phải được trích dẫn để tránh nhầm lẫn với các từ khóa có tên là . Từ khóa 'ban đầu' và 'mặc định' được dành cho sử dụng trong tương lai và cũng phải được trích dẫn khi được sử dụng làm tên phông chữ.

Cũng lưu ý rằng dấu câu như/hoặc! trong số nhận dạng may also need để được trích dẫn hoặc thoát.

+6

' initial' và 'default' là từ khóa (chúng được dành để sử dụng trong tương lai). _Tên họ phông chữ không được trích dẫn trong CSS_] (http://mathiasbynens.be/notes/unquoted-font-family). –

12

Theo số CSS Fonts Module Level 3 spec của tháng 10 năm 2013, "họ tên phông chữ không phải là họ chung hoặc phải được trích dẫn dưới dạng chuỗi hoặc không được xác định là chuỗi gồm một hoặc nhiều số nhận dạng". Vì vậy, bạn KHÔNG cần phải kèm theo chúng trong dấu ngoặc kép.

Tuy nhiên, nếu bạn không "hầu hết dấu câu và chữ số ở đầu mỗi mã thông báo phải được thoát".Để tránh các lỗi thoát, W3C thực sự khuyên bạn nên trích dẫn các tên họ phông chữ có chứa khoảng trắng, chữ số, dấu chấm câu hoặc giá trị từ khóa (‘kế thừa’, ‘serif’, v.v.).

Tên họ phông chữ chung chung (‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’ và ‘monospace’) KHÔNG được trích dẫn vì chúng thực sự là từ khóa.

0

Nếu kiểu nội tuyến, như <font style="font-family:Arial Narrow">some texte</font>, nó hoạt động.

Nhưng nếu tên của phông chữ cảnh sát chứa một số ký tự đặc biệt hoặc bắt đầu bằng số có dấu ngoặc kép hoặc những thứ khác lạ (như "01 Digitall" hoặc "a_CityNovaTitulB & WLt" hoặc "Bailey'sCar") phải sử dụng cú pháp đặc biệt với & quot; mà có thể được áp dụng cho tất cả các loại stranges phông chữ tên:

<font style="font-family:&quot;a_CityNovaTitulB&WLt&quot; , &quot;Bailey'sCar&quot;">some text</font> 

Trong FireFox, nguồn sẽ hiển thị quot &; như thế này: "

mà không cần thủ thuật này, điều này:

<font style="font-family:a_CityNovaTitulB&WLt ,Bailey'sCar">some text</font> 

không tự động làm việc ở mọi trình duyệt Nó rất hữu ích để tên font phù thủy bắt đầu bằng một số để, như thế nào." 8 Pin "

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