Заливка строк таблицы
Привет, задача следующая, нужно залить строки таблицы в зависимости от значений первого столбца. Значение в первом столбце могут быть разными, и мы их не знаем.
Должно получиться так: ![]() <table> <tr><td>111</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>fff</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>ytutyu</td><td>32r23r</td></tr> </table> |
Цитата:
|
Цитата:
|
Заливка строк таблицы
Sav2907,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window.addEventListener("DOMContentLoaded", function() { var d = document.querySelectorAll("tr td:nth-child(1)"); var bgcolors = new Array("#F9B28C", "#9BC1EA", "#FEFF03"); function r() { return Math.round(255 * Math.random()) } [].reduce.call(d, function(b, c) { var a = c.textContent, a = b[a] || (b[a] = bgcolors.pop() || "rgb(" + r() + ", " + r() + ", " + r() + ")"); c.parentNode.style.backgroundColor = a; return b }, {}) }); </script> </head> <body> <table> <tr><td>111</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>fff</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>ytutyu</td><td>32r23r</td></tr> </table> </body> </html> |
Цитата:
|
Рони, можете рассказать как это работает?
|
Рони, интересует как подставить свои цвета
|
Sav2907,
цикл по первых ячейкам, содержимое ячейки уникальный ключ, если в обьекте нет такого ключа, генерируется новый цвет -- согласно значению данного ключа родителю(tr) присваивается это значение. всё. |
Цитата:
|
Sav2907,
смотрите пример снова |
Цитата:
|
Sav2907,
Вы не вникли в ответ Rise, заготовка в стиле для классов постоянная! Если число цветов ограничено и не изменяется в процессе просмотра, естественно удобнее стилем к примеру <!DOCTYPE> <html> <head> <style> table,tr,td{ border-collapse:collapse } table td { min-width:73px; border:1px solid #000; padding:auto 3px; } tr td:first-child { text-align:right; } tr.D111 {background: #FEFF05;} tr.D222 {background: #9CC1E6;} tr.D888 {background: #F4AF85;} </style> </head> <body> <table> <tr class="D111"><td> Бла-Бла</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr class="D111"><td> Бла-Бла</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr class="D222"><td> Бла-Бла</td><td>fsdfweа</td><td>asfasfasf</td></tr> <tr class="D888"><td> Бла-Бла</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr class="D111"><td> Бла-Бла</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr class="D222"><td> Бла-Бла</td><td>6hy56</td><td>h56h56</td></tr> <tr class="D888"><td> Бла-Бла</td><td>6hy56</td><td>h56h56</td></tr> <tr class="D888"><td> Бла-Бла</td><td>ytutyu</td><td>32r23r</td></tr> </table> </body> </html> Т.е. в стиле нун ток проставить соответствие Вашим цифрам (желательно с постоянной буквой в начале), вставляемым в класс, -коду цвета... Цитата:
|
Deff,
как прописать в стиль класс, который нам неизвестен?? |
Цитата:
Чо в скрипт вставлять в массив соответствия цифр в ячейке коду цвета, чо в стиле прописать чему цифры соответстувуют, какому цвету! В класс пишешь те же цифры, что и в ячейку, ток желательно с буквой перед ними(Было какое то ограничение в старых браузах)... Возможно чичас на первую букву уже нет.. |
рони,
проблема с цветом шрифта ![]() |
Цитата:
$html .='<table class="ui fixed single line celled table" style="width: 70%; margin: auto; top: 4%; position: relative; z-index: 1;">'; foreach ($data as $komaxid => $rows) { $html .= ' <tr> <th colspan="5" style="text-align: center; font-weight: bold; background: black; color: white; height: 35px;">Komax '.$komaxid.'</th> </tr> <tr style="font-weight: bold;"> <th>Operator</th> <th>XPPS Number</th> <th>Date start</th> <th>Date end</th> <th>GoodParts</th> </tr>'; sort($rows); foreach ($rows as $key => $rows2){ $html .='<tr><td>'.$rows2['PersonnelNo'].'</td><td>'.$rows2['PPSNo'].'</td><td>'.$rows2['ActualStartCaoDtZt'].'</td><td>'.($rows2['ActualEndCaoDtZt'] == '1970-01-01 02:00:00' ? '' : $rows2['ActualEndCaoDtZt']).'</td><td>'.$rows2['GoodParts'].'</td><tr>'; } } $html .= '</table>'; |
Sav2907,
где код(макет) и в чём проблема? |
Sav2907,
что мешает добавить var colors ... c.parentNode.style.сolor = ... |
рони,
проблема только с темной заливкой, тогда черный текст не видно |
Sav2907,
как вариант ... <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window.addEventListener("DOMContentLoaded", function() { var d = document.querySelectorAll("tr td:nth-child(1)"); var bgcolors = ["1628B7", "B14B0B", "99C3C1"]; function inv(r) { return (parseInt(r, 16) ^ 0xFFFFFF | 0x1000000).toString(16).substring(1); } [].reduce.call(d, function(b, c) { var a = c.textContent, a = b[a] || (b[a] = bgcolors.pop() || "0000FF"); c.parentNode.style.backgroundColor = "#"+a; c.parentNode.style.color = "#"+inv(a); return b }, {}) }); </script> </head> <body> <table> <tr><td>111</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>fff</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>ytutyu</td><td>32r23r</td></tr> </table> </body> </html> |
рони,
тогда первые 4 заливает, другие нет |
Цитата:
|
Цитата:
|
Sav2907,
bgcolors напишите с запасом |
Цитата:
![]() |
Sav2907,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window.addEventListener("DOMContentLoaded", function() { var d = document.querySelectorAll("tr td:nth-child(1)"); var bgcolors = ["1628B7", "B14B0B", "99C3C1"]; function inv(r) { return (parseInt(r, 16) ^ 0xFFFFFF | 0x1000000).toString(16).substring(1); } var i = -1, len = bgcolors.length; [].reduce.call(d, function(b, c) { var a = c.textContent, a = b[a] || (i = ++i%len,b[a] = bgcolors[i]); c.parentNode.style.backgroundColor = "#"+a; c.parentNode.style.color = "#"+inv(a); return b }, {}) }); </script> </head> <body> <table> <tr><td>111</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>fff</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>ytutyu</td><td>32r23r</td></tr> <tr><td>eee</td><td>ytutyu</td><td>32r23r</td></tr> </table> </body> </html> |
Sav2907,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window.addEventListener("DOMContentLoaded", function() { var f = document.querySelectorAll("tr td:nth-child(1)"), d = ["C5D9F1", "C4BD97", "E6B8B7"], b = -1, g = d.length; [].reduce.call(f, function(c, e) { var a = e.textContent, a = c[a] || (b = ++b % g, c[a] = d[b]); e.parentNode.style.backgroundColor = "#" + a; return c }, {}) }); </script> </head> <body> <table> <tr><td>111</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>dfgdfg</td><td>asdfasfsfd</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>111</td><td>fdsfsdf</td><td>kjhkhjk</td></tr> <tr><td>fff</td><td>fsdfwe</td><td>asfasfasf</td></tr> <tr><td>fff</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>6hy56</td><td>h56h56</td></tr> <tr><td>ttt</td><td>ytutyu</td><td>32r23r</td></tr> <tr><td>eee</td><td>ytutyu</td><td>32r23r</td></tr> </table> </body> </html> |
рони,
Да, это оно, спасибо |
Часовой пояс GMT +3, время: 13:55. |