Nie jest to najbardziej eleganckie rozwiązanie, ale wygląda na to, że działa.
HTML:
<div class="page">
<div>
SOMEHEADER
</div>
</div>
CSS:
.page > div {
margin: 0 -1000%;
}
Przykład: http://jsfiddle.net/grc4/w36mX/
Metoda ta działa poprzez rozciąganie wewnętrzną div takie, że jest wystarczająco szeroka, aby dopasować swoją zawartość w całości (bez zawijanie/przepełnienie). Zawartość jest następnie wyśrodkowana (text-align: center
) i przycięta na wymiar przez zewnętrzny element div (overflow: hidden
).
Najtrudniejsze jest, aby wewnętrzna div wystarczająco szeroka, aby zmieścić tekst. Kiedy nie jest wystarczająco szeroki, tekst przepełni się w prawo, aby nie był prawidłowo wycentrowany (jak widać w oryginalnym jsFiddle).
Korzystając negative margins można rozciągnąć element przez pewien okres zarówno po lewej i prawej stronie. Jeśli wiesz, że rozmiar tekstu wynosi na przykład 400 pikseli, możesz użyć margin: 0 -200px
, aby zapewnić, że wewnętrzny element div ma zawsze szerokość co najmniej 400 pikseli (200 pikseli w lewo i 200 pikseli w prawo). Jeśli nie znasz dokładnego rozmiaru tekstu, możesz użyć wartości procentowych lub naprawdę wysokiej wartości px.
-1 rozciągnął element div o 100% jego pierwotnego rozmiaru w lewo, a 100% ponownie w prawo, co spowodowało, że był on trzykrotnie większy niż element div o wartości .page
. Tekst ma około 900 pikseli szerokości, więc ta metoda przestałaby działać, gdyby element .page
div był poniżej szerokości 300 pikseli (spróbuj zmienić rozmiar przeglądarki w jsFiddle za pomocą margin: 0 -100%
, aby zobaczyć, co mam na myśli).
margin: 0 -1000%
rozciąga div Żeby było 21 razy większe, co jest zwykle na tyle, aby dopasować tekst.
+1 naprawdę prostsze rozwiązanie niż kopalni –
to działa świetnie. Czy możesz wyjaśnić, dlaczego to działa? '-1000%' czego? Również "-100%" wydaje się działać tak samo? – mehulkar
Dodałem wyjaśnienie. – grc