Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > не хочет меняться цвет границы таблицы


Автор: kaa 30.1.2007, 00:20
Вот собственно код:

Код

document.getElementById("table_param_node").bordercolor = "#000000" 


но менять цвет границы таблицы он категорически отказывается - его как будто и нету вовсе...

А когда ставлю такой:
Код

document.getElementById("table_param_node").style.borderStyle = "solid";
document.getElementById("table_param_node").style.borderColor = "#000000";


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

Никто не подскажет как динамически менять цвет границы таблицы?

Автор: Sardar 30.1.2007, 01:30
Цитата(kaa @  29.1.2007,  23:20 Найти цитируемый пост)
его как будто и нету вовсе...

Да, такого свойства нету вовсе.

Вёрсткой проще всего так:
Код
<!-- линии между ячейками в 1px -->
<style type="text/css">
table.my_table { //вешаем любые дополнительные стили
    background-color: black;
    border: solid 1px black;
}
table.my_selected {
    background-color: orange;
    border: solid 1px orange;
}
</style>

<table class="my_table" cellspacing="1" onmouseover="this.className='my_selected';" onmouseout="this.className='my_table';">
  <tr><td>test</td><td>wow</td></tr>
  <tr><td>bla</td><td>ttt</td></tr>
</table>


Принцип думаю ясен.

Автор: kaa 30.1.2007, 14:59
Sardar, 
А почему тогда код 

Код

document.getElementById("table_param_node").style.borderStyle = "solid";
document.getElementById("table_param_node").style.borderColor = "#000000";


не срабатывает? Там же стиль границы наследуется по умолчанию от еблице к её ячейкам, а у мя рамка только вокруг таблицы smile (незнаю, сюда я этот вапрос влепил - не сюда? Вродь явой-скриптом работаю, а вроде как и вёрстка)

Спасибо за ответ - пойду классы помучаю. я правда в них не силён smile

Автор: Sardar 30.1.2007, 22:07
Цитата(kaa @  30.1.2007,  13:59 Найти цитируемый пост)
не срабатывает?

Нет, ячейки не наследуют бордюры от таблицы. Задавая скриптом бордюр ты забыл про borderWidth, когда он в 0px (по умолчанию), то бордюра не будет естественно.

Автор: kaa 30.1.2007, 22:38
Sardar, гм... Не наследуется... А существует тогда какой-нибудь способ поменять границу у ячеек сразу у всех, не бегая по ним? А то насколько я понял необходимо цыклом пробежаться по всем ячейкам и у каждой установить цвет и стиль...

Автор: Sardar 30.1.2007, 23:36
Цитата(kaa @  30.1.2007,  21:38 Найти цитируемый пост)
А существует тогда какой-нибудь способ поменять границу у ячеек сразу у всех, не бегая по ним?

CSS  smile 

Код
<style type='text/css'>
table.my_style td {
   border: 1px solid blue;
}

table.my_second_style td {
   border: 1px solid red;
}
</style>

...
document.getElementById('tableid').className = 'my_second_style'; //и все ячейки сменились


Срочно изучать CSS2/3 (w3.org/Style)

Автор: kaa 31.1.2007, 00:19
Sardar, Понял, спасибо.
Классы-тоя учил када-то, но на практике еще не пользовался, вот и позабыл. Ща перечитаю smile

Автор: slang 7.2.2007, 08:18
А подскажите, как изменять фон поля input и textaria при onblur и onfocus ?

Автор: slang 7.2.2007, 10:41
получилось нечто:
Код

<style type='text/css'>
input.unselected {
    background-color: white;
    border: solid 1px orange;
}
input.selected {
    background-color: orange;
    border: solid 1px orange;
}
</style>

Код

<td align='left'>
    <input id='title' name='title' type='text' size='47' maxlength='100' 
    onfocus="this.className='selected';" onblur="this.className='unselected';">
</td>

так работает, только я не знаю, как задать чтобы изначально (после загрузки страницы) для поля применялся стиль unselect.

Добавлено @ 10:55 
все снят вопрос:
Код

<input id='title' name='title' type='text' size='47' maxlength='100' 
            class="unselected"
            onfocus="this.className='selected';" onblur="this.className='unselected';">

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)