Альтернативный цвет строки таблицы с помощью CSS?
Я использую таблицу с другим цветом строки с этим.
tr.d0 td {
background-color: #CC9999;
color: black;
}
tr.d1 td {
background-color: #9999CC;
color: black;
}
<table>
<tr class="d0">
<td>One</td>
<td>one</td>
</tr>
<tr class="d1">
<td>Two</td>
<td>two</td>
</tr>
</table>
здесь я использую класс tr
, но я хочу использовать только для table
. Когда я использую класс для таблицы, чем это применяется на tr
альтернативы.
могу ли я написать свой HTML так, используя CSS?
<table class="alternate_color">
<tr><td>One</td><td>one</td></tr>
<tr><td>Two</td><td>two</td></tr>
</table>
как я могу сделать строки "полосами зебры" с помощью CSS?
9 ответов
$(document).ready(function()
{
$("tr:odd").css({
"background-color":"#000",
"color":"#fff"});
});
tbody td{
padding: 30px;
}
tbody tr:nth-child(odd){
background-color: #4C8BF5;
color: #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>10</td>
<td>11</td>
<td>13</td>
</tr>
</tbody>
</table>
есть селектор CSS, действительно псевдо-селектор, называемый nth-child. В чистом CSS вы можете сделать следующее:
tr:nth-child(even) {
background-color: #000000;
}
Примечание: нет поддержки в IE 8.
или, если у вас есть jQuery:
$(document).ready(function()
{
$("tr:even").css("background-color", "#000000");
});
у вас : nth-child () псевдо-класс:
table tr:nth-child(odd) td{
}
table tr:nth-child(even) td{
}
В первые дни :nth-child()
его поддержка браузеров из бедных. Вот почему setting class="odd"
стал такой распространенной техникой. В конце 2013 года я рад сказать, что IE6 и IE7, наконец, мертвы (или достаточно больны, чтобы перестать заботиться), но IE8 все еще вокруг-к счастью, это исключение.
просто добавьте следующее в свой html-код (с помощью <head>
), и вы сделали.
HTML-код:
<style>
tr:nth-of-type(odd) {
background-color:#ccc;
}
</style>
проще и быстрее, чем примеры jQuery.
могу ли я написать свой html так с помощью css ?
Да вы можете, но тогда вам придется использовать :nth-child()
псевдо селектор (который имеет ограниченную поддержку):
table.alternate_color tr:nth-child(odd) td{
/* styles here */
}
table.alternate_color tr:nth-child(even) td{
/* styles here */
}
<script type="text/javascript">
$(function(){
$("table.alternate_color tr:even").addClass("d0");
$("table.alternate_color tr:odd").addClass("d1");
});
</script>
большинство вышеуказанных кодов не будут работать с версией IE. Это решение, которое работает для IE+ других браузеров.
<style type="text/css">
tr:nth-child(2n) {
background-color: #FFEBCD;
}
</style>
мы можем использовать нечетные и четные правила CSS и метод jQuery для альтернативных цветов строк
использование CSS
table tr:nth-child(odd) td{
background:#ccc;
}
table tr:nth-child(even) td{
background:#fff;
}
использование jQuery
$(document).ready(function()
{
$("table tr:odd").css("background", "#ccc");
$("table tr:even").css("background", "#fff");
});
table tr:nth-child(odd) td{
background:#ccc;
}
table tr:nth-child(even) td{
background:#fff;
}
<table>
<tr>
<td>One</td>
<td>one</td>
</tr>
<tr>
<td>Two</td>
<td>two</td>
</tr>
</table>
вы можете использовать nth-дочерние(нечетные/четные) селекторы, но не все браузеры ( ie 6-8, ff v3.0) поддерживает эти правила, поэтому большинство решений возвращаются к некоторой форме решения javascript / jquery, чтобы добавить классы в строки для этих несовместимых браузеров, чтобы получить эффект тигровой полосы.
есть довольно простой способ сделать это в PHP, если я понимаю ваш запрос, я предполагаю, что вы кодируете в PHP, и вы используете CSS и javascript для улучшения вывода.
динамический вывод из базы данных будет содержать цикл for для итерации результатов, которые затем загружаются в таблицу. Просто добавьте вызов функции к этому:
echo "<tr style=".getbgc($i).">"; //this calls the function based on the iteration of the for loop.
затем добавьте функцию в файл страницы или библиотеки:
function getbgc($trcount)
{
$blue="\"background-color: #EEFAF6;\"";
$green="\"background-color: #D4F7EB;\"";
$odd=$trcount%2;
if($odd==1){return $blue;}
else{return $green;}
}
теперь это будет динамически чередуйте цвета в каждой новой строке таблицы.
Это намного проще, чем возиться с CSS, который не работает на всех браузерах.
надеюсь, что это помогает.