Заливка строк таблицы
Привет, задача следующая, нужно залить строки таблицы в зависимости от значений первого столбца. Значение в первом столбце могут быть разными, и мы их не знаем.
Должно получиться так: ![]() <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, время: 05:29. |