Przesuwałem obrazy i wstawki w górnej części kontenera za pomocą float: prawo (lub lewo) wiele razy. Ostatnio natrafiłem na potrzebę przeniesienia div w prawym dolnym rogu innego div z normalnym zawijaniem tekstu, który otrzymujesz z float (tekst zawijany powyżej i tylko z lewej strony).
Pomyślałem, że to musi być stosunkowo łatwe, mimo że liczba zmiennoprzecinkowa nie ma dolnej wartości, ale nie byłem w stanie tego zrobić za pomocą wielu technik, a wyszukiwanie w sieci nie wymyśliło nic innego niż użycie absolutnego pozycjonowania, ale to nie podać prawidłowe zawijanie wyrazów.
Myślałem, że będzie to bardzo powszechny projekt, ale najwyraźniej tak nie jest. Jeśli nikt nie ma sugestii, będę musiał podzielić mój tekst na osobne pola i wyrównać div ręcznie, ale jest to raczej niepewne i nie chciałbym robić tego na każdej stronie, która tego potrzebuje.
EDYCJA: Tylko uwaga dla każdego, kto tu przyjdzie. Pytanie połączone powyżej jako duplikat nie jest w rzeczywistości duplikatem. Wymóg zawijania tekstu wokół elementu wstawki czyni go zupełnie innym. W rzeczywistości odpowiedź na najczęściej głosowaną odpowiedź tutaj wyjaśnia, dlaczego odpowiedź na powiązane pytanie jest błędna jako odpowiedź na to pytanie. W każdym razie nadal nie wydaje się, aby istniało ogólne rozwiązanie tego problemu, ale niektóre rozwiązania zamieszczone tutaj i w powiązanym pytaniu mogą działać w określonych przypadkach.
Odpowiedzi:
Ustaw div rodzica na
position: relative
, a następnie div wewnętrzny na ...... i proszę bardzo :)
źródło
Oto sposób na to, aby działał:
Obróć macierzystą div o 180 stopni za pomocą
JSfiddle: http://jsfiddle.net/wcneY/
Teraz obróć wszystkie elementy, które unoszą się w lewo (nadaj im klasę) o 180 stopni, aby ponownie je wyprostować. Voila! unoszą się na dno.
źródło
Po kilku dniach zmagania się z różnymi technikami muszę powiedzieć, że wydaje się to niemożliwe. Nawet używając javascript (czego nie chcę robić) nie wydaje się to możliwe.
Wyjaśnienia dla tych, którzy mogli nie rozumieć - tego właśnie szukam: podczas publikowania dość często układa się wstawkę (obraz, tabelę, rysunek itp.), Aby jej dolne linie były wyrównane do dolnej ostatniej wiersz tekstu bloku (lub strony) z tekstem przepływającym wokół wstawki w naturalny sposób powyżej oraz w prawo lub w lewo, w zależności od strony, na której wstawka jest włączona. W html / css użycie stylu pływakowego do wyrównywania górnej krawędzi wstawki z górą bloku jest trywialne, ale ku mojemu zaskoczeniu wydaje się niemożliwe wyrównywanie dolnej części tekstu i wstawki, mimo że jest to typowe zadanie układu .
Chyba będę musiał powtórzyć cele projektowe dla tego przedmiotu, chyba że ktoś zaproponuje coś w ostatniej chwili.
źródło
Osiągnąłem to w JQuery, umieszczając element rozpórki o zerowej szerokości powyżej pływaka w prawo, a następnie zmieniając rozmiar rozpórki (lub rury) zgodnie z wysokością rodzica pomniejszoną o wysokość pływającego dziecka.
Przed uruchomieniem js używam bezwzględnego podejścia do pozycji, które działa, ale umożliwia przepływ tekstu z tyłu. Dlatego przełączam się na pozycję statyczną, aby umożliwić podejście rozpórki. (nagłówek jest elementem nadrzędnym, wycięcie jest tym, którego chcę u dołu po prawej, a rura to moja kolumna)
CSS
Rura musi zająć 1. miejsce, następnie wycięcie, a następnie tekst w kolejności HTML.
źródło
Spowoduje to umieszczenie stałej div na dole strony i poprawki na dole podczas przewijania w dół
źródło
Umieść div w innym div i ustaw styl div rodzica na
position:relative;
Następnie na div div ustaw następujące właściwości CSS:position:absolute; bottom:0;
źródło
Jeśli nie masz nic przeciwko temu, że dolna linia tekstu znajduje się z boku bloku (w przeciwieństwie do całkowicie dookoła i pod nim, co nie jest możliwe bez zakończenia bloku i rozpoczęcia nowego), nie jest niemożliwe przeniesienie bloku do jednego z dolnych rogów bloku rodzica. Jeśli umieścisz część treści w tagu akapitu w bloku i chcesz przenieść link do prawego dolnego rogu bloku, umieść link w bloku akapitu i ustaw go jako pływający: w prawo, a następnie wstaw tag div z czystym : oba ustawione tuż pod końcem znacznika akapitu. Ostatnim divem jest upewnienie się, że znacznik nadrzędny otacza zmienne.
źródło
Jeśli ustawisz element nadrzędny jako pozycję: względną, możesz ustawić dziecko na dolną pozycję ustawienia: absolutną; i na dole: 0;
źródło
Jeśli chcesz, aby tekst ładnie się zawijał: -
źródło
Wiem, że te rzeczy są stare, ale ostatnio napotkałem ten problem.
skorzystaj z porady absolutnej pozycji divs jest naprawdę głupie, ponieważ cała rzecz typu float traci punkt z pozycjami absolutnymi.
teraz nie znalazłem uniwersalnego rozwiązania, ale w wielu przypadkach prople używam pływających div, aby wyświetlić coś z rzędu, jak szereg elementów rozpiętości. i nie można tego wyrównać w pionie.
Aby osiągnąć podobny efekt, możesz to zrobić: nie ustawiaj div jako float, ale ustaw jego właściwość display na
inline-block
. wtedy możesz wyrównać go w pionie, jakkolwiek ci się podoba. wystarczy własności div określonym profilu rodzicavertical-align
albotop
,bottom
,middle
lubbaseline
mam nadzieję, że to komuś pomoże
źródło
Wraz z wprowadzeniem Flexboksa stało się to dość łatwe bez większego hakowania.
align-self: flex-end
na elemencie potomnym wyrówna go wzdłuż osi poprzecznej .Wynik:
Pokaż fragment kodu
źródło
Znalazłem to rozwiązanie również od dłuższego czasu. Oto co otrzymuję:
align-self: flex-end;
link: https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/ Nie pamiętam jednak, skąd otworzyłem ten link. Mam nadzieję, że to pomoże
źródło
Zrobiłbym tylko stół.
A CSS:
Zobacz to w akcji:
http://jsfiddle.net/mLphM/1/
źródło
Wypróbowałem kilka z tych technik, a następujące działały dla mnie, więc jeśli wszystko inne tutaj, jeśli wszystko inne zawiedzie, spróbuj tego, ponieważ zadziałało dla mnie :).
źródło
Wybrałem takie podejście @ dave-kok. Ale działa tylko wtedy, gdy cała zawartość pasuje bez przewijania. Doceniam, czy ktoś poprawi się
Oto kod http://jsfiddle.net/d9t9joh2/
źródło
Jest to teraz możliwe dzięki Flex Box. Wystarczy ustawić „display” div div jako „flex” i ustawić właściwość „margin-top” na „auto”. Nie zniekształca to żadnej własności obu div.
źródło
Nie jestem pewien, ale scenariusz opublikowany wcześniej wydawał się działać, jeśli użyjesz position: krewny zamiast absolutnego na div div.
I żadnych stołów ...!
źródło
Jeśli potrzebujesz względnego wyrównania, a DIV nadal nie dają ci tego, czego chcesz, po prostu użyj tabel i ustaw valign = "bottom" w komórce, w której chcesz dopasować zawartość do dołu. Wiem, że nie jest to świetna odpowiedź na twoje pytanie, ponieważ DIV mają zastąpić tabele, ale to właśnie zrobiłem ostatnio z podpisem obrazu i jak dotąd działało bezbłędnie.
źródło
Próbowałem również tego scenariusza opublikowanego wcześniej;
Pozycjonowanie absolutne naprawia div do najniższej części przeglądarki po załadowaniu strony, ale kiedy przewijasz w dół, jeśli strona jest dłuższa, nie przewija się wraz z tobą. Zmieniłem położenie, aby było względne i działa idealnie. Div przechodzi prosto na dół po załadowaniu, więc nie zobaczysz go, dopóki nie zejdziesz na dół.
źródło
Jednym z ciekawych podejść jest ułożenie kilku prawych elementów pływających jeden na drugim.
Jedynym problemem jest to, że działa to tylko wtedy, gdy znasz wysokość pudełka.
źródło
Odpowiedź Stu jest najbliższa dotychczasowej pracy, ale nadal nie bierze pod uwagę faktu, że wysokość twojego zewnętrznego div może się zmieniać, w zależności od sposobu, w jaki tekst się w nim zawija. Zatem zmiana położenia wewnętrznego div (poprzez zmianę wysokości „rury”) tylko raz nie wystarczy. Ta zmiana musi nastąpić wewnątrz pętli, abyś mógł ciągle sprawdzać, czy osiągnąłeś już właściwe pozycjonowanie, i w razie potrzeby dostosuj.
CSS z poprzedniej odpowiedzi jest nadal całkowicie poprawny:
Jednak JavaScript powinien wyglądać mniej więcej tak:
źródło
Wiem, że to bardzo stary wątek, ale nadal chciałbym odpowiedzieć. Jeśli ktoś postępuje zgodnie z poniższym css & html, to działa. Div stopki dziecka będzie przyklejać się do dołu jak klej.
źródło
Aby użyć
margin-top
właściwości css w celu ustawienia stopki na dno kontenera. I użyćtext-align-last
właściwości css do ustawienia zawartości stopki na środku.źródło
Och, młodzi ... Oto jesteś:
Brak absolutnej pozycji! Czuły! Stara szkoła
źródło
Dość stare pytanie, ale wciąż ... Możesz umieścić div na dole strony w następujący sposób:
Możesz zobaczyć, gdzie dzieje się magia. Myślę, że możesz zrobić to samo, aby przenieść go na dno rodzica div.
źródło
proste ...... w pliku html po prawej .... na dole znajduje się „stopka” (lub div, który chcesz na dole). Więc nie rób tego:
ZRÓB TO: (wstaw stopkę poniżej).
Po wykonaniu tej czynności możesz przejść do pliku css i przesunąć „pasek boczny” po lewej stronie. następnie „treść” unosi się w prawo, a następnie „stopka” wyczyść oba.
to powinno zadziałać. dla mnie.
źródło
Dostałem to do pracy przy pierwszej próbie dodając
position:absolute; bottom:0;
do div ID w CSS. Nie dodałem stylu nadrzędnegoposition:relative;
.Działa idealnie zarówno w Firefoksie, jak i IE 8, jeszcze nie wypróbowałem go w IE 7.
źródło
alternatywną odpowiedzią jest rozsądne użycie tabel i rozpiętości wierszy. ustawiając wszystkie komórki tabeli w poprzednim wierszu (z wyjątkiem jednej głównej zawartości) na rowspan = "2", zawsze otrzymasz jedną komórkę na dole głównej komórki tabeli, którą zawsze możesz ustawić valign = "bottom".
Możesz także ustawić jego wysokość tak, aby była minimalna dla jednej linii. Dzięki temu zawsze otrzymasz ulubioną linię tekstu na dole, niezależnie od tego, ile miejsca zajmuje reszta tekstu.
Próbowałem wszystkich odpowiedzi div, nie byłem w stanie zmusić ich do zrobienia tego, czego potrzebowałem.
źródło
oto moje rozwiązanie:
źródło
Możesz spróbować użyć pustego elementu o szerokości 1px i przesunąć go. Następnie usuń element, który chcesz ustawić, i użyj wysokości pustego elementu, aby kontrolować, jak daleko sięga.
http://codepen.io/cssgrid/pen/KNYrey/
źródło