2012-06-08 8 views
5

Przykład: http://www.homeroe.com/homeroe.com/newHome/pulpaForum/test.phpCSS - Dopełnienie na stole Wyświetlacz przelewem opakowanie

Dlaczego jest to, że div tabela wychodzi z pojemnika ilekroć dodać dopełnienie?

Czy jest jakiś problem związany z tym problemem?

<style> 
.foroContainer { 
    width: 700px; 
    margin-left: auto; 
    margin-right: auto; 
    background: yellow; 
} 

.foroContainer .table{ 
    display: table; 
    width: 100%; 
    padding: 8px; 
    border: 1px solid #a9a9a9; 
    margin-bottom: 1em; 
} 

.foroContainer .row{ 
    display: table-row; 
} 

.foroContainer .cell{ 
    display: table-cell; 
} 

#right.cell{ 
    text-align: right; 
    border-top: 1px solid #a9a9a9; 
} 
} 
</style> 

<div class="foroContainer"> 
<div class="table"> 
    <div class="row"> 
     <div class="cell">asdasdasdas</div> 
    </div> 
    <div class="row"> 
     <div id="right" class="cell">asdasdas | asdasdsad | asdasdasdas</div> 
    </div> 
</div> 
+0

Nie mogłem odtworzyć twojego problemu (lub zrozumieć go poprawnie). Dopełnienie do stołu? Pobyty zawarte (w Chrome). W jakiej przeglądarce testujesz? –

+0

Wypróbowałem [tutaj] (http://jsfiddle.net/sRS5g/). Zwiększyłem dopełnienie tabeli div do 80px i nie ma żadnego przepełnienia. – KiiroSora09

+0

Używam Firefox 13. Oto, co widzę: http://img209.imageshack.us/img209/7490/thisrs.png KiiroSora09 daje ten sam wynik – Homeroe

Odpowiedz

3

Hierarchia enkapsulacji w CSS jest: margines - granica - dopełnienie

Podczas dodawania dopełnienie do obiektu praktycznie zmieniać jego szerokość. Jeśli coś ma szerokość 100px i dodasz dopełnienie: 10px, jego szerokość zmieni się na 120px (100 + 10 padding-left + 10 padding right)

To jest powód, dla którego twój kontener jest przepchnięty (jego szerokość: 100%) dobrym sposobem byłby inny pojemnik wewnątrz twojego stołu o szerokości: 100%, ale stół bez szerokości.

5

Alternatywnie możesz spróbować zmienić właściwość wielkości skrzynek, albo dla każdego elementu na stronie, albo tylko dla jednego kontenera. Na przykład. dla każdego elementu na stronie, należy napisać:

* { box-sizing: border-box; } 

To będzie zmieniać domyślny model blokowy, że przeglądarka używa tak, że szerokość elementu nie ulegnie zmianie, obicia, czy nie.