Co zrobić, jeśli chcesz, aby wszystkie rozwijały się podczas rozwijania strony?
CodyBugstein
31
@imray wystarczy użyć% zamiast px
TehTris
9
Czy mógłbyś wyjaśnić, dlaczego używać <br style="clear: left;" />tego stylu w szczególności.
Mike de Klerk,
2
@MikedeKlerk to poprawka, aby uniknąć zawalenia się rodzica.
Angel Politis,
jak wyjaśnił @Nick Craver, powinieneś nadać wszystkim swoim elementom właściwość float: left . Dzieje się tak, ponieważ właściwość float określa sposób umieszczenia elementu wzdłuż lewej lub prawej strony kontenera nadrzędnego .
Ale DIV jest elementem na poziomie bloku, prawda? Jak to się dzieje, że są umieszczane obok siebie, a nie w następnych wierszach (gdy elementy na poziomie bloku zaczynają się i kończą podziałem linii). Czy float ma na to jakiś wpływ?
Ashwin
26
unosić je wszystkie w lewo
upewnij się, że określono szerokość, aby wszystkie mogły zmieścić się w kontenerze (innym div lub oknie), w przeciwnym razie zostaną zawinięte
ten kod, który ktoś tam opublikował, załatwił sprawę !!! kiedy wklejam go tuż przed zamknięciem DIV kontenera, pomaga wyczyścić wszystkie kolejne DIV z nakładania się z DIV, które utworzyłem obok siebie u góry!
<div><divclass="left"></div><divclass="left"></div>
...
...<divclass="left"></div><!-- then magic trick comes here --><brstyle="clear: left;"/></div>
Chodzi o to, że moja odpowiedź jest najbardziej poprawna i kiedy nowa osoba będzie przeszukiwać to Q w Internecie, natknie się na moją odpowiedź, która byłaby dla niej najbardziej pomocna.
Arwen
2
To może być. Ale nie ma żadnego wyjaśnienia. Na tej stronie można kopiować inne odpowiedzi, łącząc wiele odpowiedzi częściowych w jedną połączoną lepszą odpowiedź. Możesz edytować i uzupełniać swoje. Jednak nowi użytkownicy mają kilka ograniczeń (upvoting, kilka linków), dlatego nadal zalecałbym, aby nie skupiać się na starych i udzielanych odpowiedziach.
por.
@ cfi dziękuję, zachowam to na przyszłość.
Arwen,
10
Zwykle pływam pierwszy w lewo, drugi w prawo. Trzeci automatycznie dopasowuje się wtedy między nimi.
Czy to nie powoduje bałaganu przy zmianie rozmiaru przeglądarki?
CodyBugstein
10
<style>.left-column
{float:left;width:30%;background-color:red;}.right-column
{float:right;width:30%;background-color:green;}.center-column
{margin:auto;width:30%;background-color:blue;}</style><divid="container"><sectionclass="left-column">THIS IS COLUMN 1 LEFT</section><sectionclass="right-column">THIS IS COLUMN 3 RIGHT</section><sectionclass="center-column">THIS IS COLUMN 2 CENTER</section></div>
zaletą tego sposobu jest to, że możesz ustawić szerokość każdej kolumny niezależnie od drugiej, o ile utrzymasz ją poniżej 100%, jeśli użyjesz 3 x 30%, pozostałe 10% zostanie podzielone jako 5% przestrzeń dzieląca między kolumnami
ZAKTUALIZOWANO: Oczywiście, aby skorzystać z tej techniki i ze względu na bezwzględne pozycjonowanie, musisz zamknąć div na pojemniku i wykonać postprocessing, aby określić wysokość if, coś takiego:
Oczywiście, aby skorzystać z tej techniki i ze względu na bezwzględne pozycjonowanie, musisz zamknąć div na pojemniku i wykonać postprocessing, aby określić wysokość if, coś takiego:
jpbourbon
jQuery (dokument) .ready (function () {jQuery ('. main'). height (Math.max (jQuery ('. column-left'). height (), jQuery ('. column-right'). wysokość (), jQuery ('. center-center'). height ()));}); Nie jest to najbardziej niesamowita rzecz na świecie, ale przynajmniej nie psuje się na starszych IE.
jpbourbon
4
Ale czy to działa w Chrome?
Unieś każdy div i wyczyść; oba dla rzędu. Nie musisz ustawiać szerokości, jeśli nie chcesz. Działa w Chrome 41, Firefox 37, IE 11
<divclass="stack"><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div></div><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div><divclass="col">
Three
</div></div></div>
@Leniel ta metoda jest dobra, ale musisz dodać szerokość do wszystkich pływających elementów div. Powiedziałbym, aby uczynić je równymi szerokościami lub przypisać stałą szerokość. Coś jak
.content-wrapper > div { width:33.3%;}
możesz przypisywać nazwy klas każdemu divowi, zamiast dodawać inline style, co nie jest dobrą praktyką.
Pamiętaj, aby użyć div div Clearfix lub Clear div, aby uniknąć, że treść pozostanie poniżej tych div.
Szczegółowe informacje na temat korzystania z div Clearfix można znaleźć tutaj
display: inline-block
tych facetów, niż ich unosić. Jeśli ich szerokości są w sumie mniejsze niż szerokość pojemnika, usiądą obok siebie.Odpowiedzi:
Po prostu podaj im szerokość, a
float: left;
oto przykład:źródło
<br style="clear: left;" />
tego stylu w szczególności.Współczesnym sposobem jest użycie Flexbox CSS , patrz tabele wsparcia .
Możesz także użyć siatki CSS , zobacz tabele wsparcia .
źródło
Jest tak samo jak w przypadku dwóch div, po prostu przestaw trzeci na lewą lub prawą.
źródło
unosić je wszystkie w lewo
upewnij się, że określono szerokość, aby wszystkie mogły zmieścić się w kontenerze (innym div lub oknie), w przeciwnym razie zostaną zawinięte
źródło
ten kod, który ktoś tam opublikował, załatwił sprawę !!! kiedy wklejam go tuż przed zamknięciem DIV kontenera, pomaga wyczyścić wszystkie kolejne DIV z nakładania się z DIV, które utworzyłem obok siebie u góry!
tadaa !! :)
źródło
Przesuń wszystkie trzy divy w lewo. Jak tutaj:
źródło
Zwykle pływam pierwszy w lewo, drugi w prawo. Trzeci automatycznie dopasowuje się wtedy między nimi.
źródło
zaletą tego sposobu jest to, że możesz ustawić szerokość każdej kolumny niezależnie od drugiej, o ile utrzymasz ją poniżej 100%, jeśli użyjesz 3 x 30%, pozostałe 10% zostanie podzielone jako 5% przestrzeń dzieląca między kolumnami
źródło
możesz unosić się: pozostawiony dla wszystkich i ustawić szerokość na 33,333%
źródło
spróbuj dodać styl „display: block”
źródło
Nie widziałem odpowiedzi bootstrap, więc po co to jest warte:
niech Bootstrap obliczy wartości procentowe. Na wszelki wypadek lubię je usuwać.
źródło
Wolę tę metodę, zmienne są słabo obsługiwane w starszych wersjach IE (naprawdę? ...)
ZAKTUALIZOWANO: Oczywiście, aby skorzystać z tej techniki i ze względu na bezwzględne pozycjonowanie, musisz zamknąć div na pojemniku i wykonać postprocessing, aby określić wysokość if, coś takiego:
Nie jest to najbardziej niesamowita rzecz na świecie, ale przynajmniej nie psuje się na starszych IE.
źródło
Ale czy to działa w Chrome?
Unieś każdy div i wyczyść; oba dla rzędu. Nie musisz ustawiać szerokości, jeśli nie chcesz. Działa w Chrome 41, Firefox 37, IE 11
Kliknij, aby pobrać JS Fiddle
HTML
CSS
źródło
Oto jak udało mi się zrobić coś podobnego do tego wewnątrz
<footer>
elementu:CSS:
źródło
@Leniel ta metoda jest dobra, ale musisz dodać szerokość do wszystkich pływających elementów div. Powiedziałbym, aby uczynić je równymi szerokościami lub przypisać stałą szerokość. Coś jak
możesz przypisywać nazwy klas każdemu divowi, zamiast dodawać
inline style
, co nie jest dobrą praktyką.Pamiętaj, aby użyć div div Clearfix lub Clear div, aby uniknąć, że treść pozostanie poniżej tych div.
Szczegółowe informacje na temat korzystania z div Clearfix można znaleźć tutaj
źródło