2010-11-23 14 views
4

Ist es eine gute Übung, negative Ränder zu verwenden, um das Padding des Wrapper-Elements zu entfernen?CSS - Negativer Rand zum Entfernen von Parent's Padding

Zum Beispiel, welche der folgenden Codestücke ist besser zu verwenden?

<div style="padding: 5px;"> 
Shortened width string 
<div style="margin: 0 -5px;">Full width string</div> 
Shortened width string 
</div> 

oder

<div> 
<div style="padding: 5px;">Shortened width string</div> 
<div>Full width string</div> 
<div style="padding: 5px;">Shortened width string</div> 
</div> 

Antwort

0

Nun grenzt es ein Hack auf zu sein. Solange es mit Zurückhaltung verwendet wird, würde ich sagen, es ist in Ordnung. Der Schlüssel ist, sicherzustellen, dass es leicht zu lesen und zu verstehen ist. Fügen Sie Kommentare hinzu, wenn Sie müssen.

2

Warum nicht einfach padding:5px 0; deklarieren, so dass Sie keine horizontale Auffüllung haben? Obwohl ich argumentiere, dass es vollkommen in Ordnung ist, negative Ränder zu verwenden, dafür sind sie gemacht, aber wenn Sie sie überhaupt vermeiden können, tun Sie das auch.

+1

Aber im Beispiel werden will ich horizontale Polsterung müssen für so genannte 'Verkürzte Breite string'. –

+0

Warum sollte man es nicht einfach in ein anderes Element wickeln und auffüllen? –

+0

BTW, ich werde immer noch argumentieren, dass negative Margen dafür perfekt sind. –

0

Die zweite ist weit überlegen. Negative Ränder sollten vermieden werden, weil sie Ihnen Probleme in IE verursachen werden.

+0

Position hinzufügen: relativ; hilft IE, negative Ränder richtig anzuzeigen. Danach müssen Sie nur die Probleme beheben, die durch position verursacht wurden: relativ; selbst: D. (Auslösung von hasLayout hilft) – AMilassin

0

negativer Rand sein verstecken das Div .... Hier ist Trick Verwendung Zoom: 1, position: relative

Hier ist Beispiel

Problem:

.container{ 
padding: 20px; 
} 
.toolbar{ 
margin-top: -10px ; 
} 

in IE roten Bereich der Symbolleiste div verstecken sich. sogar wir verwenden Zoom: 1. Um dieses Problem loszuwerden, müssen wir Position: relativ hinzufügen.

Lösung:

so Ihre CSS-Klasse

.container{ 
padding: 20px; 
} 
.toolbar{ 
margin-top: -10px ; 
zoom: 1; 
position: relative; 
}