10 января 2008 ~ 22 Комментария

Css-хак под любой браузер — легко!

css

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

С помощью этого хака можно будет изменять вид вашего сайта(редактируемой странички) для любого браузера и любой ОС в отдельности.

Смотрим код:

<script type="text/javascript">
  var cssFix = function(){
  var u = navigator.userAgent.toLowerCase(),
  addClass = function(el,val){
    if(!el.className) {
      el.className = val;
    } else {
      var newCl = el.className;
      newCl+=(" "+val);
      el.className = newCl;
    }
  },
  is = function(t){return (u.indexOf(t)!=-1)};
  addClass(document.getElementsByTagName('html')[0],[
    (!(/opera|webtv/i.test(u))&&/msie (\d)/.test(u))?('ie ie'+RegExp.$1)
      :is('firefox/2')?'gecko ff2'
      :is('firefox/3')?'gecko ff3'
      :is('gecko/')?'gecko'
      :is('opera/9')?'opera opera9':/opera (\d)/.test(u)?'opera opera'+RegExp.$1
      :is('konqueror')?'konqueror'
      :is('applewebkit/')?'webkit safari'
      :is('mozilla/')?'gecko':'',
    (is('x11')||is('linux'))?' linux'
      :is('mac')?' mac'
      :is('win')?' win':''
  ].join(" "));
}();
</script>

 

Думаю после просмотра кода Вы поняли в чем суть этого скрипта.

Изменять css свойства для разных браузеров мы будем с помощью следующих css классов:

Классы ОС:

  • .win - Windows
  • .linux - Linux
  • .mac - MacOS

Ricky Gervais Live 2: Politics on dvd  

Классы браузеров:

  • .ie - все версии ИЕ
  • .ie8 - ИЕ 8.х
  • .ie7 - ИЕ 7.x
  • .ie6 - ИЕ 6.x
  • .ie5 - ИЕ 5.x
  • .gecko - все версии фаерфокса, и остальные гекко-браузеры
  • .ff2 - фаерфокс 2
  • .ff3 - фаерфокс 3
  • .opera - все версии оперы
  • .opera8 - опера 8.x
  • .opera9 - опера 9.x
  • .konqueror - konqueror
  • .safari - сафари

 

К примеру на нужно изменить цвет шрифта для третьей версии Firefox запущенной под Windows.

.win .ff3 {

color: #000000;

}

На мой взгляд, просто и гениально. Единственный минус этого способа — javascript, так что все юзеры с отключенным javascript'ом отсекаются.

Используйте на здоровье! ;-)

22 Комментария для “Css-хак под любой браузер &amp;mdash; легко!”

  1. Альберт 10 июля 2008 at 18:49 Permalink

    Спасибо

  2. Sam 10 июля 2008 at 19:06 Permalink

    Особенно радует «Написал Я собственной персоной» ;)

  3. Я собственной персоной 10 июля 2008 at 19:32 Permalink

    Особенно радует «Написал Я собственной персоной» ;)

    Подумываю убрать этот кусочек кода в вордпресс.
    Тогда никого это не будет радовать (-:
    Приеду — уберу.

  4. Jman 10 июля 2008 at 20:42 Permalink

    Эмм, а мне казалось, что когда откуда-то берут статью, ставят ссылку а источник :)
    Я когда на хабре прочитал, еле удержался от копипаста :)

  5. aratak 10 июля 2008 at 20:45 Permalink

    а ссылку на хабраисточник? А то некрасиво ж…

  6. Jman 10 июля 2008 at 20:53 Permalink

    2aratak, ну автор в самом начале поста написал что не претендует на своё авторство. А вот ссылка – правило хорошего тона. В принципе настоящий автор, не требовал ссылку при цитировании.

  7. kikaha 10 июля 2008 at 22:33 Permalink

    2aratak, ну автор в самом начале поста написал что не претендует на своё авторство.

    значит это не автор а копипастер

    В принципе настоящий автор, не требовал ссылку при цитировании.

    значит будем навариваться на деликатных нежадных авторах, которые вместо здрасьте сразу в лоб не требуют ссылку? я когда копипастю – мне пофигу – просил автор, или требовал – я поставлю ссылку на источник – для меня самого это важно в первую очередь.
    «Я помню чудное мгновение» – это очень красиво, но даже тому, кто никогда не читал Пушкина, я не буду тереть что это мои стихи – мне самому стыдно и неприятно будет, да, таким мама воспитала.

  8. Jman 10 июля 2008 at 23:03 Permalink

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

  9. Я собственной персоной 12 июля 2008 at 14:18 Permalink

    Извините, у меня день рождения был, писал заметку на скорую руку, и честно говоря, забыл про ссылку ;-)

  10. Jman 12 июля 2008 at 21:15 Permalink

    Поздравляю :), как говорится с прошедшим.

  11. Sicon 13 июля 2008 at 0:25 Permalink

    поздравляемъ

  12. Sicon 13 июля 2008 at 0:33 Permalink

    [кстати, прикрути кнопку удаления сессии в комментировании]

  13. Dr.Death 16 июля 2008 at 18:39 Permalink

    кстати

    .win .ff3 {
    color: #000000;
    }

    не будет работать так как оба класа установлены у html а в css идет клас за класом селектор :)

  14. Евгений 18 июля 2008 at 5:10 Permalink

    Вот это то что давно искал спасибо.

  15. dip 22 июля 2008 at 11:48 Permalink

    Смысл от этого, тогда уж проще сделать отдельные файлы для каждого браузера, чтобы не грузить бестолковый для меня стиль IE / Safari / Oper’ы и еще кучки браузеров если я сижу в FF, да и вобще …

  16. FanToM 0T F_1M 22 августа 2008 at 15:02 Permalink

    Спасибо))Сохранил на винт))

  17. Вадим 17 сентября 2008 at 15:55 Permalink

    Неплохо продумано, но в основном все проблемы связаны с IE. Поэтому под все остальные браузеры можно не париться, потому что они обычно отображают так, как показывает опера или файерфокс. Для меня IE – это заноза в заднице, все там как-то криво.

  18. случайно зашел 16 октября 2008 at 17:05 Permalink

    ненавижу код без отступов ;-( уж в одну строку всё написали бы

  19. Alex 25 июня 2009 at 18:35 Permalink

    >Неплохо продумано, но в основном все проблемы связаны с IE. Поэтому под все остальные браузеры можно не париться
    Хе хе. А под другие ОС? Сравните ФФ 3 под мак и под вынь =)
    Полезный скрипт. Активно юзаю подобный.

  20. Toy 4 июля 2009 at 2:49 Permalink

    А если у меня к примеру. Как его совместить с win. ie.?

  21. manitu 18 октября 2009 at 21:36 Permalink

    Запарился разбираться с хаками для IE. Половина того что пишут миф.
    А за это большое человеческое спасибо.

  22. FOMICHJOVIl'ja29 1 июня 2011 at 17:48 Permalink

    тимбилдинг по отличной цене в Киеве


Оставить комментарий