Автор Тема: Вопрос про стили CSS и определение браузера.  (Прочитано 11902 раз)

0 Пользователей и 1 Гость просматривают эту тему.

grenoble

  • Гость
Вопрос о стилях:
<LINK HREF="/design/css/mystyle.css" REL="Stylesheet" TYPE="text/css">

как сделать ветвление по браузерам стрых версий, ие4++, опера, фаирфокс?

Я ПОНИМАЮ, что на JS сделать скрип который будет определять браузер, вставлять код со стилями... мне это не нравится... вопрос в том, как определить браузер средставми движка, а на выходе в html-контенте будет лишь одна строчка (см выше), а в ней - тот или иной файл со стилями.

Очень бы хотелось как-то так (файл шаблон):
[#if is_ie4plus#]
  <LINK HREF="/design/css/ie4plus.css" REL="Stylesheet" TYPE="text/css">
[#elseif is_opera#]
  <LINK HREF="/design/css/opera.css" REL="Stylesheet" TYPE="text/css">
[#elseif is_firefox#]
 <LINK HREF="/design/css/slyleff.css" REL="Stylesheet" TYPE="text/css">
[#elseif#]
 <LINK HREF="/design/css/shittahappensa.css" REL="Stylesheet" TYPE="text/css">
[#endif#]

« Последнее редактирование: 21 февраля 2010, 12:51:22 от grenoble »

malahov

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #1 : 21 февраля 2010, 15:31:09 »
с помощью модуля произвольного кода и примерно такого php кода
$agent=$_SERVER['HTTP_USER_AGENT'];

$browser="none";
if (strpos($agent, "MSIE") !== false ) $browser='ie';
if (strpos($agent, "Opera") !== false ) $browser='opera';
if (strpos($agent, "FireFox") !== false ) $browser='firefox';
....  и т.д.

echo '<link rel="stylesheet" type="text/css" href="/css/'.$browser'.css">';

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 472
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Вопрос про стили CSS и определение браузера.
« Ответ #2 : 22 февраля 2010, 17:21:12 »
+1. Хорошее решение с произвольным кодом.

Jean179

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #3 : 22 февраля 2010, 19:08:23 »
А можно полный текст реализации. Или в модуль оформить - это же бомбовская вещь!

malahov

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #4 : 24 февраля 2010, 04:56:05 »
Можно, как только реализация появится, это концепт  ;D к сожалению пока нет надобности
И если честно, то сразу на вскидку не вижу где это можно в своих проектах применить, т.к стараюсь все же писать код более мнее универсальный, css хаки пока проще чем огород с разными css для каждого браузера.
Топикстартеру: чтобы например выяснить не только имя браузера, а его версию вплоть до запятой, лучше наверное использовать php функцию get_browser(), которая возвращает массив очень подробный, можно сразу проверить включена ли ява, кукисы, ОС, версию, подверсию:
Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)




grenoble

  • Гость
по поводу сделать это "как концепт"

IMHO....  смотря у кого какие стили! допустим свояли сайтик и .css файл к нему (описали все стили)... сейчас народ продвинутый, все чаще и чаще и чаще и чаще используют такие стили что бы под всеми браузерами работало нормально... и заморочки возникают только с одним или несколькими стилями на каком-то одном браузере... поэтому заморачиваться не всем интерестно. и еще - трудоемкость. делать кучу .css файлов не всегда оправдано в плане денег, т.е. заказчик это не заказывал, а работа трудоемкая.

поэтому приведенного кода вполне достаточно - каждый может из этого сделать то что ему надо, большое спасибо)

smot

  • Гость
да жалко вам чтоли пару лишних кб скачаных пользователем ? все уже придкмали. чем вариант определения стиля самим броузером плох ? вот в секции <head> пишем :
<!--[if IE]>
   подключаем стилевой файл для ослика
<![endif]-->

<!--[if !lt IE 5]> -->
   стиль если ослик старше пятой версии или не ослик совсем
<!-- <[endif]-->

<!--[if !lt IE 6]><!-->
    стиль если ослик старше 6 версии или не ослик совсем
<!--<![endif]-->

<!--[if !IE]> -->
     . . . или не ослик совсем
<!-- <[endif]-->




вот пример : http://www.wellstyled.com/files/html-hide-older-ie/example.html

только вот (вязято с css форума ) :
Цитировать
"Conditional comments" были придуманы микрософтом. В других браузерах нет подобного. Используйте css-хаки.

malahov

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #7 : 01 апреля 2010, 03:39:12 »
чем вариант определения стиля самим броузером плох ?

....


а вот, видимо чем  :)

"Conditional comments" были придуманы микрософтом. В других браузерах нет подобного. Используйте css-хаки.

Ronin

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #8 : 01 апреля 2010, 11:25:33 »
а вот, видимо чем  :)

"Conditional comments" были придуманы микрософтом. В других браузерах нет подобного. Используйте css-хаки.
Увы, не только этим... FX3.6 умудрялась отлавливать
<!--[if IE]>
   подключаем стилевой файл для ослика
<![endif]-->
и плевать ему было на условие...

malahov

  • Гость
Re: Вопрос про стили CSS и определение браузера.
« Ответ #9 : 01 апреля 2010, 13:36:31 »
о том и речь, что лучше использовать get_browser()

grenoble

  • Гость
Я тоже думаю что лучше определять движком, чем css хаки и мелкомягкие 'ветвления'.  Еще правда есть на javascript, но он тоже бывает отключен у пользователей.