Показано с 1 по 17 из 17

Тема: Помогите с CSS

Комбинированный просмотр

  1. #1

    Регистрация
    31.01.2007
    Сообщений
    5
    Ребята, вопрос следующего характера - можно ли прописать кодировку в самом файле СSS ? Есть каталог в котором лежат html файлы, там же и лежит СSS файл (делал не я, это web интерфейс мэйл сервера) все дело в том что все html файлы не имеют тегов head в которых можно было бы прописать кодировку - приведу пример такого файла :
    =================================================
    ;
    ; Main welcome page.
    ; Following macros can be used:
    ; ##DATE## - Current date
    ; ##TIME## - Current time
    ;

    <body onLoad="frm.username.focus();">
    <table width="100%" class="greentable">
    <tr>
    <td>Date ##DATE##
    Time ##TIME##
    </td>
    </tr>
    </table>
    <h2 align="center">Welcome to My Mail Server</h2>
    <p align="center">Check your mail here</p>
    <div align="center">
    ==============================================
    при переводе некоторых фраз на кирилицу - при загрузке кодировка не определяется. Можно ли ее вписать в СSS файл, который лежит в корневом каталоге и как я понимаю определяет все физуальные эффекты на всех страницах ??? Хотя я не видел в файлах ссылок на него?!?!?
    Заранее премного благодарен!!!

  2. #2

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by serjii@Jan 31 2007, 01:36
    Ребята, вопрос следующего характера - можно ли прописать кодировку в самом файле СSS ?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Нельзя.
    Информацию о кодировке должен предоставлять браузеру сервер. Для этого может использоваться либо параметр "charset" заголовочного поля "Content-Type" протокола HTTP:
    Код:
    Content-Type: text/html; charset=ISO-8859-1
    либо объявление <meta> в html-файле:
    Код:
    <meta http-equiv="Content-Type" content="text/html" charset="ISO-8859-1">
    И Вы совершенно правы – объявление <meta> должно находиться именно в элементе <head>.

    Originally posted by serjii@Jan 31 2007, 01:36
    ...СSS файл, который лежит в корневом каталоге и как я понимаю определяет все физуальные эффекты на всех страницах ??? Хотя я не видел в файлах ссылок на него?!?!?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Если ссылок действительно нет – значит ничего этот файл CSS не определяет...

  3. #3

    Регистрация
    11.09.2006
    Сообщений
    2
    эти хтмл файлы - шаблоны! тебе надо найти шаблон шапки сайта!

  4. #4

    Регистрация
    20.02.2004
    Адрес
    саратов
    Сообщений
    28
    в ксс файле кодировку прописать можно.
    делается это с помощью строчки, которая должна быть самой первой:
    Код:
    @charset "utf-8";

  5. #5

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by talisman@Jan 31 2007, 15:20
    в ксс файле кодировку прописать можно.
    делается это с помощью строчки, которая должна быть самой первой:
    Код:
    @charset "utf-8";
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]</div>
    Ёлки-палки.
    Заглянул в Спецификацию CSS2 – и ведь действительно обнаружил там то, о чем Вы пишете. Раздел 4.4.

    Но по-моему это не совсем то, что нужно автору.
    Этой директивой определяется кодировка CSS-файла. И не более того, имхо.
    Может, конечно, я и ошибаюсь (в спецификации по этому поводу довольно сухо и мало написано), но на практике проверял – для HTML-документа сие чудо не работает.

    Также нельзя не принимать во внимание и тот факт, что никто особо что-то не спешит такими методами пользоваться...

    P.S. Поправьте меня, если заблуждаюсь. Буду признателен.

  6. #6

    Регистрация
    23.03.2004
    Адрес
    Беларусь/Минск
    Сообщений
    926
    Originally posted by talisman@Jan 31 2007, 13:20
    в ксс файле кодировку прописать можно.
    делается это с помощью строчки, которая должна быть самой первой:
    Код:
    @charset "utf-8";
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]</div>
    кстати, читал уже об этом. но что дасть кодировка, прописанная в CSS? а если сам шаблон в cp1251? разве это поможет?

  7. #7

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by Zigzag@Jan 31 2007, 17:34
    что дасть кодировка, прописанная в CSS?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    В том-то и дело, что ничего, имхо...

    Эксперимент проводил такой:

    1. Меняю кодировки в <meta> – браузеры их явно и прекрасно видят.

    2. Убираю определение <meta> напрочь, задаю директиву @charset во внешнем файле CSS и линкую этот файл с документом HTML... – Ноль эмоций! Браузеры чихать хотели на такое положение вещей. У моего хостера на серверах windows-1251 по умолчанию – так вот она и "прет" при отсутствии <meta> вне зависимости от директивы @charset в CSS-файле...

  8. #8

    Регистрация
    23.03.2004
    Адрес
    Беларусь/Минск
    Сообщений
    926
    хм. я так понимаю тогда, что это возможность не реализована в user-agent&#39;ах, а что говорит спецификация?

  9. #9

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    А спецификация ничего особо конкретного не говорит.

    4.4 Представление документов, в которых используются CSS

    Таблица стилей CSS представляет собой последовательность символов универсального набора. Для передачи и хранения эти символы должны кодироваться в соответствии с той системой кодировки, которая поддерживает набор символов US-ASCII. Информацию о наборах символов и кодировании символов можно найти в спецификации HTML 4.0, а также в спецификации XML 1.0...

    Если таблица стилей импортируется в другой документ, то она использует систему кодировки, принятую в документе...

    Если таблица стилей находится в отдельном файле, браузеры при определении кодировки символов документа должны учитывать следующие приоритеты (по степени убывания приоритета):

    1. Параметр "charset" HTTP в поле "Content-Type".
    2. Правило @charset.
    3. Элементы кодировки языка в документе, из которого происходит ссылка на таблицу (например, атрибут "charset" элемента LINK в HTML-документе)

    Следует помнить, что использование конструкции @charset теоретически может вызвать проблемы, связанные с тем, что заранее неизвестно, какая кодировка используется в самой этой конструкции.*
    Кажется, понятно в чем дело...

    1. Убираем <meta> – сервер выдает кодировку по-умолчанию в HTTP-заголовке (в моем случае – windows1251).
    2. Заголовок HTTP в данном контексте имеет приоритет над директивой @charset в CSS.

    Мораль: @charset – в утиль...

    P.S. Поправьте, если ошибаюсь...

  10. #10

    Регистрация
    23.03.2004
    Адрес
    Беларусь/Минск
    Сообщений
    926
    а почему молчит автор топика интересно?

  11. #11

    Регистрация
    31.01.2007
    Сообщений
    5
    Спасибо за ответы ребята !
    Из выше сказанного, я понимаю, что прописать низя будет - и при отсутствии тэгов "head" прописать кодировку тоже невозможно - но вот у меня возникла такая мысля - если вы посмотрите на тот кусок кода - вы увидите что файл начинается с тэга <body> ! Вопрос - нельзя ли прописать кодировку с помошью Java Script который бы располагался в <body> ??? Если, кто знает такой скрипт - подкинте пожалуйста !!!

  12. #12

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by serjii@Jan 31 2007, 21:12
    Спасибо за ответы ребята !
    Из выше сказанного, я понимаю, что прописать низя будет - и при отсутствии тэгов "head" прописать кодировку тоже невозможно - но вот у меня возникла такая мысля - если вы посмотрите на тот кусок кода - вы увидите что файл начинается с тэга <body> ! Вопрос - нельзя ли прописать кодировку с помошью Java Script который бы располагался в* <body> ??? Если, кто знает такой скрипт - подкинте пожалуйста !!!
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    С помощью JavaScript – нельзя.
    Но что Вам мешает прописать кодировку без элемента <head>?
    Согласно спецификации HTML 4.01 – раздел <head> является необязательным. Т.е. его можно спокойно опустить. Другое дело, что не указывать явно <head>...</head> – это как бы "дурной тон". Но в Вашем случае – укажите, например:

    Код:
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    до <body>. И воздастся Вам...

  13. #13

    Регистрация
    23.03.2004
    Адрес
    Беларусь/Минск
    Сообщений
    926
    хм. маловероятно это. есть четка иерархия

    <html>
    <head>
    <body>

  14. #14

    Регистрация
    31.01.2007
    Сообщений
    5
    Все дело в том что я уже пробовал прописать <meta> до <body> ! Еффект- тот же, не определяется кодировка!

  15. #15

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by serjii@Feb 1 2007, 14:30
    Все дело в том что я уже пробовал прописать <meta> до <body> ! Еффект- тот же, не определяется кодировка!*
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Не знаю уж, как Вы там пробовали, конечно...
    Я вот сейчас специально эксперимент провел – всё работает как часы.
    Можете убедиться:

    [Только зарегистрированные пользователи могут видеть ссылки. ]
    [Только зарегистрированные пользователи могут видеть ссылки. ]
    [Только зарегистрированные пользователи могут видеть ссылки. ]

  16. #16

    Регистрация
    31.01.2007
    Сообщений
    5
    Спасибо, я вот как раз вчера вечером нашел способ прописать кодировку - правда не в самих файлах - а в настройках самого сервака ! Заработало! Хотя вопрос как бы остается открытым - если и есть функция @charset в CSSе, почему она не корректно работает ... ?

  17. #17

    Регистрация
    15.11.2006
    Адрес
    Тольятти
    Сообщений
    2,698
    Originally posted by serjii@Feb 2 2007, 10:48
    Спасибо, я вот как раз вчера вечером нашел способ прописать кодировку - правда не в самих файлах -* а в настройках самого сервака ! Заработало!
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Вот, видимо, с этого-то и нужно было начинать...

    Originally posted by serjii@Feb 2 2007, 10:48
    Хотя вопрос как бы остается открытым - если и есть функция @charset в CSSе, почему она не корректно работает ... ?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    Я свое мнение по этому поводу уже высказал выше.
    На мой взгляд из-за того, что заголовок HTTP, выдаваемый сервером, имеет приоритет над директивой @charset в CSS.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •