2012-10-18 13 views
12

Próbuję użyć elementów komórki tabeli w systemie grid, który wykorzystuje ujemne marginesy w wierszach, aby wyeliminować lewe i prawe rynny w zagnieżdżonych elementach siatki. Działa to dobrze na płynęły i inline-block elementów, ale elementy z display: table, respektując negatywnego lewy margines, ignorować negatywne prawy margines:Nie można użyć ujemnego prawego marginesu na elemencie tabeli?

Table with negative right margin

dziwne, eh? Prosta demonstracja: http://jsfiddle.net/57FAN/1/

Niestety, wszystkie przeglądarki sprawdziły się w ten sam sposób. Jakieś pomysły?

P.S. Odłóżmy debatę nad tabelą - * elementy do układu, dopóki skrzynka flex nie zostanie ustandaryzowana.

+0

Nie ma powodu, aby odłożyć debatę nad stołami do układu tak jak nie ma powodu, aby używać tabel dla układu. – Kyle

+3

@KyleSevenoaks OP nie korzysta z tabel, używa właściwości wyświetlania tabeli. Reguła polega na tym, aby nie używać znacznika table dla layoutu, ponieważ jest on zaprojektowany do wyrażania danych tabelarycznych, nie oznacza to, że nie można sprawić, aby elementy inne niż tabelowe wyglądały jak tabela. – cimmanon

+0

No dobra, nie złapałem tego. Oczywiście korzystanie z wyświetlacza: tabela; własność jest całkowicie legalna (nie sarkazm). Dzięki za wyczyszczenie tego. – Kyle

Odpowiedz

6

Tabela nie ignoruje marginesu ujemnego, ale ma tylko 100% szerokości i jest przesunięta o 5 pikseli w lewo. Będziesz potrzebował "100% + 2 * 5px", aby całkowicie wypełnić szary obszar.

Rząd nie ma szerokości, dlatego używa całej dostępnej szerokości.

Jeśli chcesz użyć

.row { 
    margin: 0 -5px; 
    width: 100%; 
} 

byłoby widać, że szerokość są równe

+0

Ach, masz rację. Nie uważałem, że szerokość: auto na poziomie bloku nie zawsze jest takie samo jak szerokość: 100%. –

0

Kod mieć więcej margin i padding zakwaterowania. więc tak to wygląda. Tutaj poprawiłem niektóre kody.

Fiddle DEMO

+0

Dzięki Selva, ale marginesy i dopełnienie są częścią systemu gridowego i nie można ich usunąć. –

Powiązane problemy