2013-02-11 16 views
7

Zajmuję się tworzeniem strony i napotykam problem w kierunku dołu za pomocą cieniowania w trzech różnych sekcjach. Chcę, aby granica pojawiła się wokół wszystkich trzech, ale wyświetla się tylko po lewej i prawej stronie.Cień pudełka nie jest wyświetlany u góry ani u dołu

Oto HTML dla tej sekcji:

<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> 

Oto CSS dla tej sekcji:

.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

Co dokładnie jest pytanie prosicie? (Przepełnienie stosu jest zgodne z formatem pytań i odpowiedzi, a część pytań nie jest całkowicie jasna.) – dgvid

+0

@aleshoug - usunięcie linku do witryny nie powoduje, że jest to tajne; ludzie nadal mogą to zobaczyć, patrząc na historię edycji. Zawsze lepiej umieścić odpowiedni kod w tym miejscu, a nie używać linku na żywo. – KatieK

Odpowiedz

13

Masz dwie możliwości:

  1. Zdjąć overflow: hidden od węzeł wszystkich rodziców, ponieważ przycina on twój cień. W twoim przypadku usuń go z następujących selektorów: .row, .column i .three-cols.

  2. Możesz po prostu dodać pionowy margines do swojego: .three-cols-col. Zamiast: margin: 0 16px 0 16px; możesz po prostu wstawić: margin: 16px 16px 16px 16px;.

Obie opcje zostały przetestowane w Google Chrome.

+1

Wybrałem drugą opcję i działało bezbłędnie. Dzięki wielkie! – alexhoug

0

Element nadrzędny 3 pól (.three-cols-row) nie ma wystarczającej ilości miejsca, aby pokazać cienie tekstowe, które znajdują się na górze i na dole jego elementów podrzędnych. Spróbuj dodać trochę padding:

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

Przykład JS Fiddle: http://jsfiddle.net/KatieK/zZhxr/1/

4

Poniższe oświadczenie zdecydowała podobny problem:

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

W jaki sposób pozycja i indeks Z zmieniają cień? Proszę rozwinąć odpowiedź, aby pomóc OP. – Syfer

+0

Chociaż ten kod może odpowiedzieć na pytanie, podanie dodatkowego kontekstu dotyczącego ** how ** i ** why ** rozwiązuje problem poprawi długoterminową wartość odpowiedzi. – Alexander

Powiązane problemy