Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2010, 13:56
Интересующийся
Отправить личное сообщение для GRean Посмотреть профиль Найти все сообщения от GRean
 
Регистрация: 17.04.2010
Сообщений: 22

как загрузить css из javascript
Всем привет!
Столкнулся с такой проблемой, что в отображение стилей в разных браузерах происходит по разному. Ну например в Опере и в Фоксе все ровно, а вот в IE кривовато выводятся стили. Решил для каждого браузера подгружать свою таблицу стилей.
С определением типа браузера разобрался, но вот не получается загрузить нужный мне стиль.

<script>

var ua = navigator.userAgent.toLowerCase();
// Определим Internet Explorer
isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1); 
// Opera
isOpera = (ua.indexOf("opera") != -1); 
// Gecko = Mozilla + Firefox + Netscape
isGecko = (ua.indexOf("gecko") != -1);
// Safari, используется в MAC OS
isSafari = (ua.indexOf("safari") != -1);
// Konqueror, используется в UNIX-системах
isKonqueror = (ua.indexOf("konqueror") != -1);
// Простая проверка с помощью document.write
document.write(
    "isIE = " + isIE + "<br>" +
    "isOpera = " + isOpera + "<br>" +
    "isGecko = " + isGecko + "<br>" +
    "isSafari = " + isSafari + "<br>" +
    "isKonqueror = " + isKonqueror + "<br>"
);

if(isIE){
// Что нужно вписать сюда, что бы загрузить Таблица_стилей_для_ИЕ.css
}
else if(isGecko){
// Что нужно вписать сюда, что бы загрузить Таблица_стилей_для_FF.css
}
else if(isOpera)
// Что нужно вписать сюда, что бы загрузить Таблица_стилей_для_Opera.css
</script>


Подскажите плииз решение проблемы.
Если мой подход в корне не правильный, то пожалуйста подскажите как такой вопрос решается другим путем.
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2010, 17:14
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Используйте вместо этого условные комментарии IE!
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2010, 17:50
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

GRean,
Если у пользователя будет отключён джаваскрпит, то стили не подгрузятся, для этих целей есть:
Для Ie:
<!--[if IE 6]><link href="styles.css" rel="stylesheet" type="text/css" /><![endif]-->

Для Opera:
@media all and (min-width: 0) {
.style { background: #FF0; }
}
html:first-child .style {
background: #FF0;
}

Для Лисы, Сафари:
html:root .style {
background: #FA0;
}

.style, x:-moz-any-link {
background: #FA0;
}
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2010, 18:10
Интересующийся
Отправить личное сообщение для GRean Посмотреть профиль Найти все сообщения от GRean
 
Регистрация: 17.04.2010
Сообщений: 22

Спасибо Вам!

Вот код, который мне помог:

<![if IE ]>
    <link rel="stylesheet" type="text/css" href="IEStyle.css" />
<![endif]>
<![if !IE ]>
    <link rel="stylesheet" type="text/css" href="FFStyle.css" />
<![endif]>


Думаю этого будет достаточно! Или этот код тоже требует javascript?
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2010, 18:16
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

GRean,
Сообщение от GRean
Или этот код тоже требует javascript?
Нет)
Ответить с цитированием
  #6 (permalink)  
Старый 17.04.2010, 19:06
Интересующийся
Отправить личное сообщение для GRean Посмотреть профиль Найти все сообщения от GRean
 
Регистрация: 17.04.2010
Сообщений: 22

теперь проблема в том, что в лисе выполняются два условия, а в IE все как надо работает.

Объясните плииз как пользоваться этими хаками, что привел JsLoveR.
Их надо просто скопировать в стили или по месту назначения в див пихать?
Ответить с цитированием
  #7 (permalink)  
Старый 17.04.2010, 19:19
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

<!--заверни условие для Ie в комментарии-->, так
<!--[if IE 6]><link href="styles.css" rel="stylesheet" type="text/css" /><![endif]-->
и тогда в других браузерах, кроме Ие это условие не будет срабатывать

Последний раз редактировалось JsLoveR, 17.04.2010 в 19:26.
Ответить с цитированием
  #8 (permalink)  
Старый 17.04.2010, 19:38
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Ах, да, забыл сказать, что хаки для других браузеров добавлять в CSS, например:
@-moz-document url-prefix() {
div.elem {color:red;}
}
Ответить с цитированием
  #9 (permalink)  
Старый 17.04.2010, 19:42
Интересующийся
Отправить личное сообщение для GRean Посмотреть профиль Найти все сообщения от GRean
 
Регистрация: 17.04.2010
Сообщений: 22

IE тоже видит эти комментарии. Для примера сделал вот так :
<!-- <a>IE</a> -->
Ответить с цитированием
  #10 (permalink)  
Старый 17.04.2010, 19:52
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

<!-- --> Комментарии для html кода, в них добавляются условия для загрузки стилей IE, другие браузеры воспринимают это как комментарии, это условие добавляется обычно в <head></head> и если нету никакого условия внутри этих комментариев ничего происходить не будет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нарисовать график на javascript? Бобр Общие вопросы Javascript 21 30.03.2014 17:27
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
JavaScript и CSS demoniqus Элементы интерфейса 47 16.03.2010 22:51
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26