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

  1. Msee

    Часто ли вы с такими встречались?

    А главное, зачем вы их такими сделали?
    Плох тот веб-кто-нибудь, создающий картинки с закрывающими скобками в именах. Плох тот веб-кто-нибудь, использующий шрифты с запятыми и всерьёз на них полагающийся.

    Хотя, если уж пришлось — то пришлось.

  2. SeLarin

    Не знаю кому как, но мне с кавычками как-то удобнее (особенное, если имя шрифта содержит пробелы). Лично мне удобнее с кавычками.

    P.S. При изучении CSS я преимущественно читал официальную документацию :)

  3. Kildor

    Шрифты я не так часто пишу в CSS, а вот урлы постоянно — для меня это просто часть „аккуратного” кода — как атрибуты в html…

  4. Kildor

    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
    (это мне выдалось после того, как попытался комментарий отправить…)

  5. Давид Мзареулян

    Ну, когда-то и кавычки вокруг значений атрибутов считались необязательными…

  6. Иван Сагалаев

    Вообще-то, в HTML они так и остались необязательными.

  7. BOLK

    Эти кавычки тянутся из тех смутных времён, когда на свете ещё был жив браузер Netscape 4.xx. Вот он без этих кавычек жить не мог, в некоторых случаях приходилось указывать два вариант - без кавычек и с кавычками.

  8. Ozz

    так что они реально не нужны???
    какого черта тогда все эти заморочки в коде с обратным слэшем перед кавычками, я каждый атрибут в HTML в кавычки заключал всегда и вечно боролся потом с ява-скриптами и РНР..
    Кстати, меня всегда смущало наличие кавычек с двумя лапками (") и с одной - апострофом (') - в коде соответственно употребляют то одни, то другие, чтобы не путать..

    Нет, точно они не нужны??

  9. Иван Сагалаев

    В HTML — не всегда. Если атрибут содержит только лаинские буквы, цифры и знаки ". - _", то можно писать и без кавычек. Однако это приводит к тому, что часть атрибутов пишется в кавычках (href="/index.htm" — слеш нельзя без кавычек), а часть — без (src=image.png). И вот это порождает такую некрасивую кашу, что лучше просто взять за правило кавычки писать всегда. Это, кстати, рекомендация валидатора на W3C.

    Хотя я, признаться, частенько опускаю кавычки, если очень лениво :-). Типа <textarea rows=10 cols=80>.

  10. Евгений

    А главное, зачем вы их такими сделали?
    Плох тот веб-кто-нибудь, создающий картинки с закрывающими скобками в >именах. Плох тот веб-кто-нибудь, использующий шрифты с запятыми и всерьёз >на них полагающийся.

    Я всегда знал, что верстальщики Лебедева ...

    http://www.artlebedev.ru/;-)/artlebedev_logo.gif

  11. Евгений Адищев

    Кстати, о кавычках.
    http://www.livejournal.com/users/zexo/6290.html

  12. Konstantin Ermakov

    Конец рабочего дня, посему могу ошибаться и тупить. Но разве здесь не сказано, что в некоторых случаях без кавычек не обойтись?

  13. Иван Сагалаев

    В некоторых — не обойтись. Я об этом в конце и не написал, просто не привел весь список исключений. Основная мысль в том, что в подавляющем большинстве случаев таких странных названий, требующих кавычек (начинающихся с пробелов, содержащих несколько пробелов подряд и т.д.), не встречается.

  14. Draco Ater
        <p>Привык уже всегда стринги в кавычки заключать, а вот числовые константы пишу так.<br />
    


    =)

    Offtop: будет ли статейка про Float в css в учебнике? А то жду-недождусь =(

  15. Иван Сагалаев

    Обязательно будет. Уж очень я ее откладываю, но напишу, видимо, к началу следующей недели.

  16. Kir_pich

    font-family: Times New Roman, serif; —-
    не согласен с этим те м что ежели ты кроссбраузерщик, то кавычки обязательно ставить чтобы не только всё было пучком, но и в других браузерах тоже!!!!

  17. Pilum

    Посмотрите на эту строку - background-image: url(body.png)

    Говоря идеологически, background-image: url - это все литералы (операторы-функции и т.п.) "языка" (здесь кавычки тоже нужны) - а вот "body.png" - это данные.

    Поэтому кавычки тут - правильны (допустимо обратное "спецификацией" или нет..).

    А вообще все эти html, css и прочая web-каша - это просто разжиж мозга. Вроде той же библии в противовес Научному Мышлению...

Добавить комментарий