2013-02-11 3 views
7

Я занимаюсь разработкой сайта, и я сталкиваюсь с проблемой в нижней части с тенями на трех разных разделах. Я хочу, чтобы граница отображалась вокруг всех трех, но она отображается только слева и справа.Ящик теней не отображается сверху или снизу

Вот HTML для этого раздела:

<div class="three-cols-row"> 

<div class="three-cols-col three-cols"> 
<p style="text-align: center;"><img src="https://www.lytyx.com/subdomains/test/websites/mynaturerich.com/wp-content/uploads/2013/02/section01.jpg" alt="" /></p> 
<p style="text-align: center;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et. <a href="#">Read More</a></p> 

</div> 
<div class="three-cols-col three-cols"> 
<p style="text-align: center;"><img src="https://www.lytyx.com/subdomains/test/websites/mynaturerich.com/wp-content/uploads/2013/02/section02.jpg" alt="" /></p> 
<p style="text-align: center;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et. <a href="#">Read More</a></p> 

</div> 
<div class="three-cols-col three-cols"> 
<p style="text-align: center;"><img src="https://www.lytyx.com/subdomains/test/websites/mynaturerich.com/wp-content/uploads/2013/02/section03.jpg" alt="" /></p> 
<p style="text-align: center;">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et. <a href="#">Read More</a></p> 

</div> 
</div> 
<div class="clearboth"></div> 

Вот это CSS для этого раздела:

.three-cols-col{ margin:0 16px 0 16px; overflow:hidden; float:left; display:inline; } 
.three-cols-row { margin:0 auto; width:960px; overflow:hidden; } 
.three-cols-row .three-cols-row { margin:0 -16px 0 -16px; width:auto; display:inline-block; } 
.three-cols { width:248px; padding: 15px; background: #fff; -moz-box-shadow: 0 0 3px #d4d4d4;-webkit-box-shadow: 0 0 3px #d4d4d4; box-shadow: 0 0 3px #d4d4d4; } 
+1

Что именно, это вопрос, который вы спрашиваете? (Stack Overflow следует формату вопросов и ответов, и я не совсем понимаю вопрос в этом случае.) – dgvid

+0

@aleshoug - Удаление ссылки вашего сайта не делает ее секретной; люди все еще видят это, глядя на историю изменений. Всегда лучше поставить соответствующий код прямо здесь, в вопросе, и не использовать живую ссылку в любом случае. – KatieK

ответ

13

У вас есть два варианта:

  1. Удалите overflow: hidden из все узлы родителей, потому что это отсекает тень. В вашем случае удалите его из следующих селекторов: .row, .column и .three-cols.

  2. Вы можете добавить только вертикальное поле к своему: .three-cols-col. Вместо: margin: 0 16px 0 16px; вы можете просто положить: margin: 16px 16px 16px 16px;.

Оба варианта были протестированы в Google Chrome.

+1

Я выбрал второй вариант, и он работал безупречно. Спасибо! – alexhoug

0

Родительский элемент ваших 3-х ящиков (.three-cols-row) не имеет достаточного пространства для отображения тени текста, которая существует в верхней и нижней части ее дочерних элементов. Попробуйте добавить некоторое дополнение:

.three-cols-row { padding-top: 10px; padding-bottom: 10px; } 

Пример JS скрипку: http://jsfiddle.net/KatieK/zZhxr/1/

4

Следующий оператор решил аналогичную проблему:

position: relative; 
-1
position: relative; 
z-index: 2; 
+1

Как позиция и z-индекс изменяют тень? Пожалуйста, уточните свой ответ, чтобы он мог помочь ОП. – Syfer

+0

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно **, как ** и ** почему ** он решает проблему, улучшит долгосрочную ценность ответа. – Alexander

Смежные вопросы