2013-03-11 11 views
16

Odkryłem, że w CSS nie ma centrum pływaka i byłem trochę zawiedziony. Jednak nie mogę pomóc, ale zadać sobie pytanie, dlaczego. Chociaż wiele osób chce tego użyć do centrowania zawartości, chciałem go użyć, aby unieść kilka bloków w rzędy na dynamicznym rozmiarze strony. Niestety bez środka pływającego wygląda to niechlujnie, ponieważ po jednej stronie jest dodatkowa przestrzeń (bez względu na ułamek pełnego bloku). Smutno mi, że zabrakło mi tej funkcji, której używają pływacy.Dlaczego w CSS nie ma centrum swobodnego działania?

Nie widzę powodu, dla którego nie ma centrum pływaka i zastanawiałem się, czy ktoś ma powody, techniczne lub w inny sposób, dlaczego centrum pływaka nie zostało uwzględnione w standardzie.

+2

Czy możesz pokazać nam przykład tego, co zrobiłeś, co wygląda źle? –

+0

http://jsfiddle.net/kevincox/rAkNY/3/ To prawie cała historia. Jeśli okno nie jest wielokrotnością rozmiaru pudełka, całość wygląda na dziwną. –

+0

, jeśli znasz dokładne rozmiary pudeł i liczb w wierszu, co jest łatwe. – albert

Odpowiedz

3

nie ma centrum, ponieważ pływak pływa się elementy z przepływu treści i umieść je tak daleko w lewo/w prawo, jak to możliwe. same pływają tylko poruszają rzeczy na boki. nie 100% w tej ostatniej części, ale myślę, że ma to coś wspólnego z drukiem. Wiem, że idea pływaków została zaczerpnięta z branży poligraficznej.

+1

Możesz zdefiniować środek w połowie drogi między skrajną lewą a prawą stroną, chociaż myślę o interakcjach z lewymi i prawymi ruchami. To może być trudne do zdefiniowania. –

+1

Nie tak bardzo ... są one wykonane specjalnie po to, aby przejść "tak daleko w lewo, jak to możliwe", jak również wskazano, że elementy pływające są usuwane z przepływu treści, ustawienie ich automatycznie w centrum jest niemożliwe. .. zawartość nie będzie się unosić wokół niego – albert

3

Tak, nie ma Pływaka środka/środka i może W3C ma odpowiedź.

Jest tag <center>, ale już nie.

Znacznik <center> jest przestarzała jak HTML 4 i wykorzystuje je tworzy kilka różnych problemów. Elementy wyśrodkowane w HTML mogą wyświetlać w różny sposób w różnych przeglądarkach, a użycie tagu może zwiększyć czas ładowania strony. Również intensywne korzystanie z nich komplikuje ponowne projektowanie stron - usunięcie setek znaczników zajmuje dużo dłużej niż zmianę jednej reguły stylu w arkuszu stylów.

Znacznik został oficjalnie uznany za przestarzały wiele lat temu, ale jest nadal rozpoznawany przez większość przeglądarek za pośrednictwem ich funkcji kompatybilności wstecznej: . Więc tak, jeśli coś, to będzie wyśrodkowany. Jednak, w interesie przyszłej ochrony, użytkownik powinien używać nowoczesnych metod CSS centrowania .

Zastosowanie margin:0 auto;

Jeśli centrowania coś innego, margin: 0 auto; przez większość czasu twój element będzie wyśrodkowany. (Szybka uwaga: twój element musi mieć deklarowaną szerokość, aby to zadziałało.)

Margines: 0 auto; reguła jest skrótem dla 0 górnego i dolnego marginesu, a automatycznego lewego i prawego marginesu. Automatyczne lewe i prawe marginesy współpracują, aby wepchnąć element w środek jego pojemnika.

+1

Automatyczne ustawianie marginesów nie działa dla "prawdziwego" użycia zmiennoprzecinkowego, ponieważ elementy są traktowane indywidualnie. Jeśli ograniczysz kontener do rozmiarów "przyciągania" w przyrostach zawartości, możesz wyśrodkować pełne wiersze, ale częściowo wypełnione wiersze nadal będą wyłączone na jedną stronę. –

+0

@KevinCox: pokaż nam problem, zrób skrzypce lub podaj link do strony internetowej ... – krish

+1

Przykład, w którym auto margin nie zadziała http://jsfiddle.net/kevincox/rAkNY/3/ –