Подтвердить что ты не робот

Таблица Row Box-Shadow on Hover (Webkit)

Возможно ли это?

Мой код работает в Firefox. Я также могу заставить webkit изменять другие свойства (например, цвет фона и т.д.) При наведении, но тень окна не вступает в силу:

tr:hover {
    -webkit-box-shadow: 0px 2px 4px #e06547;
    -moz-box-shadow: 0px 2px 4px #e06547;
    box-shadow: 0px 2px 4px #e06547;
    background-color: #d4d5d6;
}
4b9b3361

Ответ 1

Как сказано здесь: fooobar.com/questions/132806/..., а не стиль tr, вы должны стилизовать элемент td в сочетании с псевдоклассами :first-child и :last-child. Prepending tr:hover сделает трюк для вас:

tr:hover td {
    -moz-box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    -webkit-box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}
tr:hover td:first-child {
    -moz-box-shadow: 4px 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    -webkit-box-shadow: 4px 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    box-shadow: 4px 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}
tr:hover td:last-child {
    -moz-box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    -webkit-box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
    box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}

Демо 1 со вставкой: http://jsfiddle.net/Kk6Th/

Обновление:
Демо 2 без вставки (классическая тень): http://jsfiddle.net/2nw4t/1/
Демо 3 без вставки (эффект свечения): http://jsfiddle.net/2CSuM/

Ответ 2

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

  • Добавить тень на все td.
  • Установите display: block на tr.
  • Использовать правильно стиль td:first-child:before.
  • Добавить тень ко всем td и покрыть части, которые нам не нужны.

Вы можете проверить их на этом jsFiddle: https://jsfiddle.net/maskl/cxscmvpr/3/

Ответ 3

Это случилось со мной, и я наложил на него небольшой радиус границы, и он работает.

border-radius: 1px;

В зависимости от внешнего вида, который вы пытаетесь достичь, это может быть взлом, который вы можете использовать.

Ответ 4

AvL-решение очень хорошее, спасибо за подсказку. Хотя, если мне нравится, что вы хотите box-shadow (inset) во всем tr, а не только в стороне, этот код вам поможет:

tr:hover td {
    -webkit-box-shadow: 0 4px 2px -3px rgba(0, 0, 0, 0.5) inset, 0 -4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}
tr:hover td:first-child {
    -webkit-box-shadow: 4px 4px 2px -3px rgba(0, 0, 0, 0.5) inset, 4px -4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}
tr:hover td:last-child {
    -webkit-box-shadow: -4px 4px 2px -3px rgba(0, 0, 0, 0.5) inset, -4px -4px 2px -3px rgba(0, 0, 0, 0.5) inset;
}

Ответ 5

Используйте свойство transform scale (1,1) с тэгом box-shadow, оно решит проблему.

tr:hover {
  transform: scale(1);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  box-shadow: 0px 0px 5px rgba(0,0,0,0.3);
  -webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.3);
  -moz-box-shadow: 0px 0px 5px rgba(0,0,0,0.3);
}

Fiddle: https://jsfiddle.net/ampicx/5p91xr48/

Спасибо!!

Ответ 6

Добавьте это

tr {
    display: block;
}

По какой-то причине Webkit должен явно знать, что этот элемент является блочным элементом для отображения тени в ящике.