CSS: градиенты повторяются в Chrome при установке на tbody / thead - PullRequest
13 голосов
/ 15 июня 2011

Проблема, с которой я столкнулся, показана здесь.В основном, когда я помещаю градиент в жабу, Chrome повторяет этот градиент для каждой ячейки ... Фактически желаемый результат - это то, что произвел firefox - сплошной градиент для всей жабы.1005 * Любые идеи о том, как это исправить?

Вот CSS у меня есть:

thead.header {
    font-weight: bold;
    border-bottom: 1px solid #9C9C9C;
    background-repeat: no-repeat;
    background: #C6C6C6;
    background: -moz-linear-gradient(top, #DEDEDE 0%, #BDBDBD 80%, #BBB 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#DEDEDE), color-stop(80%,#BDBDBD), color-stop(100%,#BBB));
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#DEDEDE', endColorstr='#BBB',GradientType=0 );
}

Вот HTML, если это поможет:

  <table style="width:100%" cellpadding="0" cellspacing="0">
    <thead class="header">
      <tr>
        <th width="200px">Actor</th>
        <th rowspan="3">Character</th>
      </tr>
      <tr>
        <th>Gender</th>
      </tr>
      <tr>
        <th>Age</th>
      </tr>
    </thead>

    <tbody class="odd">
      <tr>
        <td width="200px">Test</td> 
        <td rowspan="3">Test</table>
        </td>
      </tr> 
      <tr>
        <td>Male</td>
      </tr> 
      <tr>
        <td>25</td>
      </tr>
    </tbody>
  </table>

Ответы [ 7 ]

5 голосов
/ 14 августа 2014

Установите background-attachment:fixed; на thead, и он будет работать нормально

4 голосов
/ 22 сентября 2013

Это печальная проблема, но есть простой обходной путь, который подойдет для большинства макетов:

Установите градиент на самой таблице и присвойте <td> s сплошной цвет.

скрипка: http://jsfiddle.net/vudj9/

2 голосов
/ 30 ноября 2013

Если вы дадите thead значение display: table-caption;, это сработает.

Требуется дополнительный CSS для позиционирования контента th.

http://jsfiddle.net/4vnpC/

2 голосов
/ 24 октября 2013

Применение градиента к элементу th вместо thead и использование селектора атрибута rowspan, кажется, работает. Это не сработало бы так хорошо, если бы высота двух строк заголовка была гибкой, поскольку вам нужно знать цвет среднего диапазона #7E7E7E в примере. Оформить заказ http://jsfiddle.net/wSWF9/2/

   table {
       border: 1px solid #ccc;
       border-collapse: collapse;
   }

   table thead th[rowspan="2"] {
      background-image: linear-gradient(to bottom, #ccc, #333);
      background-image: -webkit-linear-gradient(top, #ccc, #333);
      background-repeat: repeat-x;
   }

   table thead tr th {
      background-image: linear-gradient(to bottom, #ccc, #7E7E7E);
      background-repeat: repeat-x;
   }

   table thead tr + tr th {
      background-image: linear-gradient(to bottom, #7E7E7E, #333);
      background-repeat: repeat-x;
   }
2 голосов
/ 25 октября 2012

Я считаю, что это потому, что стиль background нельзя применить к элементу thead.

1 голос
/ 15 июня 2011

Что ж, способ обойти проблема состоит в том, чтобы не использовать отдельные ячейки, а вместо этого использовать <br />.

Я понимаю, что это не очень хорошее решение.

Ваш код: http://jsbin.com/ozuhi5

Ваш код с исправлением: http://jsbin.com/ozuhi5/2

Новый <thead>:

<thead class="header">
  <tr>
    <th width="200">
      Actor<br />
        Gender<br />
        Age
    </th>
    <th>Character</th>
  </tr>
</thead>
0 голосов
/ 24 декабря 2013

Это ошибка в Google Chrome. Подробнее об этом можно узнать на этой странице Google о проблемах в Chrome .

У меня возникает та же проблема при попытке стилизовать элемент tbody. Это решение, которое я использую, чтобы исправить свой код, не нарушая поддержку других браузеров:

table>tbody {
    background-image: -moz-linear-gradient(270deg, black, white); /* keep the right code     for other browsers */
    background-image: -ms-linear-gradient(270deg, black, white);
    background-image: -o-linear-gradient(270deg, black, white);
    background-image: linear-gradient(to bottom, black, white);

    background-color: transparent; /* needed for chrome*/
    background-image:-webkit-linear-gradient(0deg, rgba(0,0,0,0),rgba(0,0,0,0)); /*del the linear-gradient on google chrome */
}
table {  /*fix tbody issues on google chrome engine*/
    background-image: -webkit-linear-gradient(270deg, rgba(0,0,0,0) 39px, black 0px,white ); /* 359px is the calculated height of the thead elemx */
    border-spacing: 0; /*delete border spacing */
}

См. Демонстрацию на этом Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...