2013-08-09 15 views
7

W jaki sposób mogę wyśrodkować tekst bezwzględnego położenia wewnątrz względnego rodzica cieczy? Próbuję użyć text-align:center na elementach nadrzędnych, ale zawsze centruje lewy róg dziecka, a nie sam element.CSS: centrowanie bezwzględnego tekstu umieszczonego wewnątrz względnego rodzica

http://jsfiddle.net/sucTG/2/

+0

Dlaczego potrzebujemy 'position: absolute;' w .text klasy CSS? Po prostu próbowałem usunąć tę linię, a tekst jest poprawnie wyśrodkowany; – amaurymartiny

+0

ponieważ w blokach będą znajdować się elementy względne i chcę, aby tekst nie wpływał na ich położenie i wyświetlał się tylko na nich. – vlad

+0

Aby umieścić coś na wierzchu, wystarczy pozycjonowanie, niekoniecznie bezwzględnie. – melancia

Odpowiedz

18

Chodzi o to, że position:absolute; modyfikuje szerokość elementu, aby dopasować jego zawartość i że text-align: center; centra tekst wewnątrz bloku szerokości elementu. Więc jeśli dodasz position: absolute;, nie zapomnij o zwiększeniu szerokości elementu, inaczej właściwość text-align: center; będzie bezużyteczna.

Najlepszym sposobem rozwiązania tego problemu jest dodanie width: 100%; i left: 0px; w sekcji .text.

http://jsfiddle.net/27van/

0

Aktualizacja: Co kładę przed była zła/zły

http://jsfiddle.net/brJky/1/

To powinno być znacznie bliżej do tego, co chcesz?

Twój tekst jest względny, a pozostałe elementy wewnątrz kontenera są bezwzględne!

.text { 
    color:#fff; 
    padding:50px 0; 
    display:block; 
    position:relative; 
} 

.absolute { 
    background:#f0f; 
    height:25px; width:25px; 
    position:absolute; 
    top:36px; left:50%; 
} 
Powiązane problemy