#html #css #frontend
#HTML #css #интерфейс
Вопрос:
Я хочу, чтобы эффект рамки-тени отображался по всем элементам внутри таблицы. Вот самое близкое, что я мог бы получить к тому, что я хочу:
body{
background: #000;
}
table{
margin:0px;
padding:0px;
display: inline-block;
background: #aaa;
box-shadow: inset 1px 1px 20px 20px rgba(0, 0, 0, 1);
}
img{
margin: 10px;
}
<body>
<table>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
</table>
</body>
Прочитав несколько вопросов по stackoverflow, я обнаружил, что лучшим способом сделать это было бы создать div или псевдоэлемент до конца контейнера (в данном случае таблицы) и применить к нему эффект.
Но когда я пытаюсь это сделать, я в конечном итоге перекрываю / переполняю контейнер.
Я попытался изменить несколько параметров для обоих элементов (контейнера и div), но безуспешно.
В следующем фрагменте кода тень зеленая, а границы таблицы красные для целей отладки.
body{
background: #000;
}
table{
border:2px solid red ;
display: inline-block;
background: #aaa;
border-radius:5px;
}
#boxShadow{
position: absolute;
height: 100%;
width: 100%;
box-shadow: inset 1px 1px 20px 20px rgba(0, 255, 0, 1);
}
img{
margin: 10px;
}
<body>
<table>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
<div id="boxShadow"></div>
</table>
</body>
Код также находится здесь в jsfiddle.com :http://jsfiddle.net/h0rf42m7/1
Ответ №1:
Мне удалось заставить ее работать должным образом, создав новый div для размещения таблицы:
body{
background: #000;
}
table{
position: relative;
background: #aaa;
border-radius:5px;
margin: 0px;
padding: 0px;
}
#container{
position: relative;
display:inline-block;
}
#boxShadow{
position: absolute;
top:0;
height: 100%;
width: 100%;
box-shadow: inset 1px 1px 20px 20px rgba(0, 0, 0, 1);
}
img{
margin: 10px;
}
<body>
<div id="container">
<table border = 1>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
<tr><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td><td><img src="https://miro.medium.com/max/1200/0*VU152GltXiWeD0Xy.png" height=20%></td></tr>
</table>
<div id="boxShadow">
</div>
</div>
</body>
Прекрасный эффект!