Javascript.RU

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

Скрипт с выбором css-файла
Все проверено (путь к файлам указан верно, условия выполняются), код вставлен в body index.php, но скрипт не работает. Скажите пожалуйста, что не так?
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/md_stylechanger.js"></script>

</head>
<body>
<script language="javascript" type="text/javascript">
var height=0;
var width=0;

if (self.screen) { // for NN4 and IE4
width = screen.width
height = screen.height
}
else if (self.java) { // for NN3 with enabled Java
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}
if (width == 1366 && height == 768) {
document.write("<link rel='stylesheet' type='text/css' href='<?php echo $mosConfig_live_site; ?>/css/position.css'>");
}else if(width == 800 && height == 600){
document.write("<link rel='stylesheet' type='text/css' href='<?php echo $mosConfig_live_site; ?>/css/position.css'>");
}
document.write("<link rel='stylesheet' type='text/css' href='<?php echo $mosConfig_live_site; ?>/css/position.css'>");
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2010, 16:46
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от lmln
// for NN4 and IE4
Сообщение от lmln
// for NN3 with enabled Java
Это браузеры из прошлого века их уже давно никто не использует.



screen.width и screen.height — разрешение монитора. Эти значения проверять бесполезно, потому что:
1. Окно браузера не обязательно развернуто во весь экран.
2. Даже максимизированное окно браузера не обязательно занимает весь экран (можно меню пуск справа разместить или QIP прилепить к краю экрана, открыть какую нибудь панель в браузере и много других способов уменьшить рабочее пространство по горизонтали). Нужно проверять availWidth и availHeight.
2. Многие люди работают на нескольких мониторах, но не все браузеры в этом случае выдают правильные значения свойств объекта screen, например, IE будет показывать всегда разрешение основного монитора, которое может сильно отличаться от размеров монитора, на котором отображается окно браузера. Распространенная схема: дисплей ноутбука (основной монитор) + внешний монитор (на него расширен рабочий стол). К примеру внешний монитор имеет FullHD разрешение, а дисплей ноутбука 1366х768. Открываем IE во весь экран на FullHD-мониторе, получаем screen.width == 1366, вместо 1920.

Что делать, если не подключать разные стили для разных разрешений?
Верстать так, чтобы одни и те же стили одинаково хорошо отображался при любом разрешении монитора.


Отформатируйте свой код: http://javascript.ru/formatting

Последний раз редактировалось Octane, 20.07.2010 в 16:54.
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2010, 17:26
Новичок на форуме
Отправить личное сообщение для lmln Посмотреть профиль Найти все сообщения от lmln
 
Регистрация: 20.07.2010
Сообщений: 6

Ну, вообще-то интересовало, именно почему код не работает
Меня его минусы в общем-то устраивают. Несколько стилей для разных разрешений в любом случае лучше, чем всего одно. Разумеется, кроме описанного случая с двумя мониторами =) В общем, я предпочитаю все же использовать этот скрипт. Но он, блин, не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2010, 17:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от lmln
Несколько стилей для разных разрешений в любом случае лучше, чем всего одно.
Вообще ни в одном из случаев не лучше.
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2010, 17:54
Новичок на форуме
Отправить личное сообщение для lmln Посмотреть профиль Найти все сообщения от lmln
 
Регистрация: 20.07.2010
Сообщений: 6

Хм. Видимо, я сильно ошибаюсь Просто я не знаю никаких проблем, если написать скрипт, который бы при опред. разрешении выдавал опред. таблицу стилей... Еще был вариант просто масштабировать весь сайт в зависимости от разрешения, так тот скрипт тоже не работает.
Ну, раз так, но можно конечно сделать с расчетом на 1024, и фиг с ним со скроллингом на меньших разрешениях и ладно что будет много свободного места по бокам на бОльших разрешениях. А я надеялась, кто-нибудь поможет
Или хоть объясните, чем плохо то, что я хотела сделать (кроме случая с несколькими мониторами)
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2010, 18:05
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://www.yandex.ru/
http://www.rambler.ru/
http://mail.ru/
Где на этих сайтах скроллинг на меньших разрешениях и много свободного места на больших?
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2010, 18:19
Новичок на форуме
Отправить личное сообщение для lmln Посмотреть профиль Найти все сообщения от lmln
 
Регистрация: 20.07.2010
Сообщений: 6

на сколько я понимаю, у них "резиновые" сайты. Читала, что резиновые сайты это мол неудобно и непрактично, поэтому сама делать не стала. Кстати, яндекс - на больших разрешениях - поля, и меньше каких-то разрешений на мэйле и яндексе скроллинг есть... Хм, и на рамблере то же самое.
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2010, 19:29
Новичок на форуме
Отправить личное сообщение для sdfsd@mail.ru Посмотреть профиль Найти все сообщения от sdfsd@mail.ru
 
Регистрация: 20.07.2010
Сообщений: 1

Ищу тоже самое что и вы, и похоже нашел.

Пример:
<a href="/" onclick="stylech();return false;">style change</a><br>
<script>
function stylech(){
tmp=document.createElement("div");
tmp.innerHTML = '<style type="text/css">a:hover{color:orange!important;font:bold 14px Tahoma,sans-serif!important;}</style>';
document.body.appendChild(tmp.firstChild);}
</script>

Можно подгружать и так

<a href="/" onclick="stylech();return false;">style change</a><br>
<script>
function stylech(){
tmp=document.createElement("div");
tmp.innerHTML = '<link rel="stylesheet" type="text/css" href="v2.css">';
document.body.appendChild(tmp.firstChild);}
</script>

Но не забывайте в v2.css указывать !important;

Последний раз редактировалось sdfsd@mail.ru, 20.07.2010 в 19:32.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение внешних таблиц из css файла chippolino (X)HTML/CSS 14 30.04.2010 12:36
Как получить атрибут из CSS файла ? sionus Events/DOM/Window 1 04.01.2010 09:39
Доступ к input или css файла bobroff jQuery 7 22.12.2009 22:21
Подключение CSS файла SAA Серверные языки и технологии 1 22.09.2009 13:09
Определить имя файла, в котором скрипт nlf Общие вопросы Javascript 5 26.04.2009 23:13