Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2010, 21:17
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

Динамический CSS средствами JS
Вопрос: как?

Нашел статью, но у меня выходит ошибка:

Uncaught exception: ReferenceError: Undefined variable: CSS

http://revnode.com/oss/css/
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2010, 22:26
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Для каких целей?
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2010, 18:11
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

tx - css текст
d - document;
вернет ноду созданного стиля. в IE6 лучше создавать стили до body иначе тормоза сильные.
function include(tx, d) {
	var s;
	if (d.createStyleSheet) try {
		(s = d.createStyleSheet()).cssText += tx;
		return s.owningElement;
		} catch(e){};


	(s = d.createElement('style')).type = 'text/css';
	s.appendChild(d.createTextNode(tx));
	if (d = d.documentElement.firstChild) d.appendChild(s);
	return s;
	};
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2010, 08:36
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

vflash, я так понял это код динамического добавления css-файла.

Я бы хотел динамический изменять один параметр. А именно: есть коробка, высотой на всю страницу. А ширину (widthtable) задает пользователь.

table.style = 'width: "widthtable"';

Возможно ли сделать такое?
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2010, 08:45
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

table.style.width = widthtable + 'px';
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2010, 09:23
Новичок
Отправить личное сообщение для inGray Посмотреть профиль Найти все сообщения от inGray
 
Регистрация: 03.08.2010
Сообщений: 230

Aspiring,
А почему через css-файл? Все что есть в нем можно задать через DOM.
__________________
Не хочешь, чтобы тебя послали? Не спрашивай куда идти.
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2010, 12:56
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

Aspiring,
да можно. styleNode.sheet.cssRules (в IE свое наименование).

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

inGray, там где нужно изменить параметр огромной группе может оказаться быстрее чем пробегать по каждому элементу.
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2010, 18:19
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

B~Vladi, спасибо

vflash, спасибо за разъяснения. У меня всего один table

Спасибо Вам форумчане. Уже какой раз обращаюсь к Вам с нелепыми вопросами.

PS: Я счастлив, таблица "нарисовалась" на браузере так, как я задумывал. Думаю, редко кто применял такой способ

a[n].style = 'width: 50; height: 50; margin: 5; white-space: pre-line';

widthtable = cols * 55+ 40;
table.style.width = widthtable + 'px';


В результате не вмещенные элементы таблицы идут следующей строкой. Так добивается нужное количество ячеек в каждой строке.

Вначале пробывал вставлять .innerHTML += "<br />" после каждой строки, но после этого неработало свойтво .onclick для всех ячеек, кроме последней строки.
Ответить с цитированием
  #9 (permalink)  
Старый 09.09.2010, 22:47
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Aspiring
a[n].style = 'width: 50; height: 50; margin: 5; white-space: pre-line';
Странно, что это работает... Вообще надо так:
a[n].style.cssText = 'width: 50; height: 50; margin: 5; white-space: pre-line';
Ответить с цитированием
  #10 (permalink)  
Старый 10.09.2010, 19:31
Интересующийся
Отправить личное сообщение для Aspiring Посмотреть профиль Найти все сообщения от Aspiring
 
Регистрация: 23.08.2010
Сообщений: 27

Сообщение от B~Vladi Посмотреть сообщение
Странно, что это работает... Вообще надо так:
a[n].style.cssText = 'width: 50; height: 50; margin: 5; white-space: pre-line';
Вот оказывается из-за чего код работал только на Opera. Более того без ошибок при инспектировании страницы.

Все время оставлял на потом. Спасибо, что сэкономили мне время
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление CSS свойста с помощью JS Hurley Internet Explorer 2 01.10.2009 21:55
CSS Class & JS keysi_ Общие вопросы Javascript 10 29.04.2009 18:37
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
Ajax. Полноценная подгрузка страниц, содержащих CSS и JS. Alex22 AJAX и COMET 6 05.11.2008 23:53