marża ujemna jest jedynym sposobem, aby przejść w tym przypadku naprawdę (i jest jednym z niewielu przypadków gdzie uznałbym to za dopuszczalne użycie).
Istnieją inne rozwiązania można badać (np się czerwona bg ustawiony centralnie wyrównany bg obrazu, wtedy div
„sz dopełnienie treści poza h1
), ale naprawdę nie ma bonus do robi to nad użyciem negatywna margines, w rzeczywistości długoterminowy jest mniej konserwowalny.
Jak już zasugerowano, można również użyć pozycjonowania, aby rozwiązać ten problem (patrz przykład poniżej).
HTML:
<div class="container">
<p>Lorem ipsum dolor sit amet</p>
<p>Lorem ipsum dolor sit amet</p>
<h1>testing, testing, 1 2 3</h1>
</div>
CSS:
.container {
background: #f00;
margin: 0 0 0 20px;
padding: 100px 0;
position: relative;
width: 400px;
}
h1 {
background: #00f;
color: #fff;
left: -20px;
padding: 0 20px;
position: absolute;
width: 100%;
}
http://jsfiddle.net/d7KJ9/4/
Niestety chociaż dodawanie treści po h1
wydaje się złamać tę metodę:
http://jsfiddle.net/d7KJ9/2/
Co więcej, gdyby powyższa metoda zadziałała, niekoniecznie byłaby lepsza niż użycie marginesu ujemnego (w rzeczywistości wymaga to większej liczby stylów CSS).
Podsumowując, wystarczy przejść do rozwiązania z marginesem ujemnym, marginesy ujemne niekoniecznie muszą być złe, gdy są właściwie stosowane, po prostu z własnego powodu przed użyciem (czy jest lepszy sposób na osiągnięcie tego, czego pragniesz?)
użyciu marża ujemna jest w porządku, tylko w inny sposób byłoby użyć 'pozycji: absolute' z ujemna "lewa" wartość –
tak, ujemny margines to sposób, aby przejść tutaj. – andi