Javascript.RU

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

Как поменять значение width в css
Здравствуйте. Существует следующая проблема:
Есть шаблон joomla, все в нем устраивает кроме того, что при выводе широкой таблицы(элемента) часть таблицы не видно. Настроить шаблон не получилось. Ширина шаблона фиксированная и равна 962 пикселя. Решение проблемы вижу в следующем - написать javascript который динамически будет считать ширину документа исходя из размера таблицы(элемента) и автоматически подставлять ее в (ширину документа) в css(width). Вообщем получилось следующее:
=====
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" >
<head>
<base href="http://localhost/tablica/fizika/6-test.html" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />
<title>Test</title>
<link rel="stylesheet" href="/tablica/plugins/system/modalizer/modals/fancybox/jquery.fancybox-1.3.1.css" type="text/css" />
<link rel="stylesheet" href="http://localhost/tablica/components/com_tag/css/tagcloud.css" type="text/css" />
<style type="text/css">
    <!--

	#wrapper { margin: 0 auto; width: 962px;padding:0;}
	.s-c-s #colmid { left:160px;}
	.s-c-s #colright { margin-left:-320px;}
	.s-c-s #col1pad { margin-left:320px;}
	.s-c-s #col2 { left:160px;width:160px;}
	.s-c-s #col3 { width:160px;}
	
	.s-c-x #colright { left:160px;}
	.s-c-x #col1wrap { right:160px;}
	.s-c-x #col1 { margin-left:160px;}
	.s-c-x #col2 { right:160px;width:160px;}
	
	.x-c-s #colright { margin-left:-160px;}
	.x-c-s #col1 { margin-left:160px;}
	.x-c-s #col3 { left:160px;width:160px;}
    -->
  </style>

<script type="text/javascript">
//функция wf()
function wf() {
var tb = document.getElementById('tb'); //вытягиваем tb из <table border="1" id="tb"/>
var xrt = tb.offsetWidth; //берем значение offsetWidth от tb т.е. ширину таблицы
var wd; // создаем переменную в которую поместим новое значение ширины документа
if (xrt > 640) // 640 - ширина модуля вывода статьи
{
wd = 962 + (xrt - 640); // вычисляем новую ширину документа
}
else
{
wd = 962; // Если ширина таблицы не превышает 640 пикселей оставляем значение по умолчанию 962 пикселя
}	
//alert(wd); - тестируем, что получилось в wd
	}
</script>
</head>
<body onLoad="wf()"/> <!-- //Вызываем функцию  wf() по событию onLoad(загрузка документа)-->
<div>
<table border="1" id="tb"/> <!- присваиваем id=tb таблице>
<tbody>
<tr>
<td bgcolor="#cccccc"></td>
.....
...
</tbody>
</table>
===
Вопрос в следующем:
Как подставить значение wd вместо 962 в строку из блока css - #wrapper { margin: 0 auto; width: 962px;padding:0;} ?

Последний раз редактировалось xbox, 07.11.2010 в 20:44.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2010, 19:36
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 14:54. Причина: если я вдруг ошибся в id подставте то ...
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2010, 19:39
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 14:54.
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2010, 20:42
Новичок на форуме
Отправить личное сообщение для xbox Посмотреть профиль Найти все сообщения от xbox
 
Регистрация: 07.11.2010
Сообщений: 3

Сообщение от Gozar Посмотреть сообщение
js никак нельзя.

Можно установить значение style у элемента, но заменить в css нельзя.
например так:
document.getElementById('tb').style.width = wd + 'px';


если я вдруг ошибся в id подставте то, что нужно, ваш код почти невозможно читать, форматируйте в след. раз.
Заранее извиняюсь, может Вы не увидели но строка:
#wrapper { margin: 0 auto; width: 962px;padding:0;}

находится в теле html(№4 в выделенном блоке css), а не в отдельном файле, даже в этом случае изменить нельзя?
Насколько я понял, то ширину модуля в моем случае определяет строка:
<div id="wrapper" class="foreground">

значение "wrapper" берется из блока css вверху страницы.
Как мне пристроить
document.getElementById('tb').style.width = wd + 'px';
чтобы менялась ширина страницы на необходимую.
Просто я не силен в программировании в общем и в javascript в частности.

Последний раз редактировалось xbox, 07.11.2010 в 20:47.
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2010, 21:19
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 14:54.
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2010, 21:52
Новичок на форуме
Отправить личное сообщение для xbox Посмотреть профиль Найти все сообщения от xbox
 
Регистрация: 07.11.2010
Сообщений: 3

Большое спасибо! Все работает.
Подскажите какое событие лучше выбрать. Я так понимаю событие onLoad в
<body onLoad="wf()"/>

запустит ф-цию wf(), только тогда, когда загрузится весь документ, а если будут перебои со связью и не загрузится к примеру счетчик, то событие не произойдет?
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2010, 19:53
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Произойдет, но по таймауту загрузки. Короче ждать долго
А нахрена такой бред делать надо? А если у чела JS отключен? На выходе очередная говностраница? Такого дерьма полный интернет

Последний раз редактировалось vladlen, 10.11.2010 в 19:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как передеть css файл родителя фрейму? Zeal Events/DOM/Window 9 21.10.2008 16:47
Как поменять SRC у Img в Pocket IE Maxidrom Events/DOM/Window 2 08.10.2008 15:05
Неопределенное значение width. lancer Общие вопросы Javascript 3 03.04.2008 17:48