CSS, как и HTML — технология, которую большинство людей изучают не по официальным спецификациям, а просто читая чужой код. И это хорошо тем, что позволяет быстро достичь результата, не разбираясь досконально в каждом аспекте. Однако из-за этого же часто получается, что из кода в код (и из года в год) копируются одни и те же мелкие заблуждения...
Одно из них — кавычки вокруг названий шрифтов и вокруг URL'ов:
{
font-family: "Times New Roman", serif;
background-image: url("body.png");
}
На самом деле их можно совершенно официально опускать:
{
font-family: Times New Roman, serif;
background-image: url(body.png);
}
Все то же самое, просто выглядит слегка менее лохмато.
А кавычки реально нужны, если вам надо передать в строке символы-разделители. Например, если название шрифта содержит запятую или URL картинки — закрывающую скобку. Часто ли вы с такими встречались? :-)
Комментарии: 17
А главное, зачем вы их такими сделали?
Плох тот веб-кто-нибудь, создающий картинки с закрывающими скобками в именах. Плох тот веб-кто-нибудь, использующий шрифты с запятыми и всерьёз на них полагающийся.
Хотя, если уж пришлось — то пришлось.
Не знаю кому как, но мне с кавычками как-то удобнее (особенное, если имя шрифта содержит пробелы). Лично мне удобнее с кавычками.
P.S. При изучении CSS я преимущественно читал официальную документацию :)
Шрифты я не так часто пишу в CSS, а вот урлы постоянно — для меня это просто часть „аккуратного” кода — как атрибуты в html…
PS: Оффтопиком
Not Found
The requested URL /blog/http://softwaremaniacs.org/blog/2005/11/12/quotes-in-css/ was not found on this server.
и в адресной строке
http://softwaremaniacs.org/blog/http%3A%2F%2Fsoftwaremaniacs.org%2Fblog%2F2005%2F11%2F12%2Fquotes-in-css%2F
(это мне выдалось после того, как попытался комментарий отправить…)
Ну, когда-то и кавычки вокруг значений атрибутов считались необязательными…
Вообще-то, в HTML они так и остались необязательными.
Эти кавычки тянутся из тех смутных времён, когда на свете ещё был жив браузер Netscape 4.xx. Вот он без этих кавычек жить не мог, в некоторых случаях приходилось указывать два вариант - без кавычек и с кавычками.
так что они реально не нужны???
какого черта тогда все эти заморочки в коде с обратным слэшем перед кавычками, я каждый атрибут в HTML в кавычки заключал всегда и вечно боролся потом с ява-скриптами и РНР..
Кстати, меня всегда смущало наличие кавычек с двумя лапками (") и с одной - апострофом (') - в коде соответственно употребляют то одни, то другие, чтобы не путать..
Нет, точно они не нужны??
В HTML — не всегда. Если атрибут содержит только лаинские буквы, цифры и знаки "
. - _
", то можно писать и без кавычек. Однако это приводит к тому, что часть атрибутов пишется в кавычках (href="/index.htm"
— слеш нельзя без кавычек), а часть — без (src=image.png). И вот это порождает такую некрасивую кашу, что лучше просто взять за правило кавычки писать всегда. Это, кстати, рекомендация валидатора на W3C.Хотя я, признаться, частенько опускаю кавычки, если очень лениво :-). Типа
<textarea rows=10 cols=80>
.Я всегда знал, что верстальщики Лебедева ...
http://www.artlebedev.ru/;-)/artlebedev_logo.gif
Кстати, о кавычках.
http://www.livejournal.com/users/zexo/6290.html
Конец рабочего дня, посему могу ошибаться и тупить. Но разве здесь не сказано, что в некоторых случаях без кавычек не обойтись?
В некоторых — не обойтись. Я об этом в конце и не написал, просто не привел весь список исключений. Основная мысль в том, что в подавляющем большинстве случаев таких странных названий, требующих кавычек (начинающихся с пробелов, содержащих несколько пробелов подряд и т.д.), не встречается.
=)
Offtop: будет ли статейка про Float в css в учебнике? А то жду-недождусь =(
Обязательно будет. Уж очень я ее откладываю, но напишу, видимо, к началу следующей недели.
font-family: Times New Roman, serif; —-
не согласен с этим те м что ежели ты кроссбраузерщик, то кавычки обязательно ставить чтобы не только всё было пучком, но и в других браузерах тоже!!!!
Посмотрите на эту строку - background-image: url(body.png)
Говоря идеологически, background-image: url - это все литералы (операторы-функции и т.п.) "языка" (здесь кавычки тоже нужны) - а вот "body.png" - это данные.
Поэтому кавычки тут - правильны (допустимо обратное "спецификацией" или нет..).
А вообще все эти html, css и прочая web-каша - это просто разжиж мозга. Вроде той же библии в противовес Научному Мышлению...