2010-09-27 18 views
19

Próbowałem:Czy istnieje odpowiednik css dla "align =" center ""?

margin-left: auto; 
margin-right: auto; 

Ale nie wyśrodkować elementy w moich komórkach tabeli. Mam kombinację tekstu i <span> elementów w <td> s.

Po ustawieniu "align =" center "" w dowolnym z elementów <td>, robi on środek.

Jak osiągnąć to w arkuszu stylów?

Przy okazji, kiedy wykonuję text-align: center, który działa dla tekstu. Ale nie dla innych elementów, takich jak <span> s.

Edit:

Przęsło ma następujące klasy, jeśli to ma wpływ na kwestię wyrównania:

.dot { 
    display: block; 
    width: 10px; 
    height: 10px; 
    background: #333; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -khtml-border-radius: 5px; 
} 
+2

Uwaga: 'margin: 0 auto;' robi to samo w mniej linii kodu – jcolebrand

+0

Dzięki @drachenstern.Zawsze szukam sposobów na zredukowanie niepotrzebnego kodu :) – marcamillion

+0

@drachenstern: Nie, nie ma - dowód: http://jsfiddle.net/pzRPA/11/ i http://jsfiddle.net/pzRPA/10/ – Crozin

Odpowiedz

22

margin:0 auto; działa na

  • blokowe poziomu nie-płynął statyczne/względem umieszczonych elementów z wyraźnej szerokości ustawione
  • wewnętrzne elementy szerokości, takich jak obrazy/obiektów/tabele

text-align:center będzie pracować nad

  • /inline inline bloki

do sytuacji prawdopodobnie można zrobić ..

#container { text-align:center; } 
#container span.block-level-spans { margin: 0 auto; } 

lub dokonać przęseł wewnątrz inline-block zamiast block.

Edycja:

inline bloku: Wartość ta powoduje element do generowania pola bloku, który sam w sobie jest płynęły w jednym polu inline, podobnie do otrzymuje elementu. Wewnątrz bloku wbudowany blok ma format , a sam element to sformatowany jako wstawiony element .

+0

Cudownie .... tworząc przęsło "blok inline" i dodając, że selektor przęsła przęsło-przęsła najwyraźniej zrobił lewy. Niesamowity! Czy możesz podać link do tego, co robi podział na poziomie bloku i dlaczego działa? Dzięki. – marcamillion

+1

Warto zauważyć, że 'margin: 0 auto' nie działa na IE, chyba że zmusisz go do (tak zwanego) trybu zgodności z normami za pomocą' DOCTYPE', co jest czymś, co i tak powinieneś robić. – cletus

+0

Blok inline jest w zasadzie elementem inline, który może przyjmować szerokość/wysokość. Jest bardzo podobny do pływaka, chyba że nie musisz się martwić o to czyszczenie. Może mieć pionowe wyrównanie. Czasami musisz podać 'top', jeśli nie jest wyrównany do góry. –

-3

Zrobiłem szybkie wyszukiwanie w google i znalazłem to:

rozpiętość jest inline element i dlatego nie można go wyrównać. Ustaw go jako p lub jako jednostkę przestawną zamiast span, lub jawnie ustaw poziom przęsła za pomocą wyświetlacza: block.

znaleźć w: Velocity Reviews Forumn Link

+0

W dalszej części tego postu znajduje się więcej informacji, w szczególności: tekst-wyrównanie centruje tekst w zakresie. Ponieważ rozpiętość jest tak szeroka, jak tekst, który zawiera, wyśrodkowanie tego tekstu nie daje żadnego efektu. Aby wyśrodkować zakres, należy zastosować wyrównanie tekstu: środek; do elementu blokowego jest rodzica zakresu. – PatrickV

+0

RECENZJA wpisów o niskiej jakości: Nie! Dyskusja z referencjami pochodzi z 2005 roku. CSS pozwala teraz całkowicie zmienić wygląd elementu. – ElmoVanKielmo

Powiązane problemy