Я разместил изображения и вставки в верхней части контейнера, используя float: right (or left) много раз. Недавно я столкнулся с необходимостью поместить элемент div в нижний правый угол другого элемента div с обычным переносом текста, который вы получаете с помощью float (текст, заключенный выше и только влево).
Я думал, что это должно быть относительно легко, даже если у float нет нижнего значения, но я не смог сделать это с помощью ряда методов, и поиск в Интернете не дал ничего, кроме использования абсолютного позиционирования, но это не дать правильное поведение переноса слов.
Я думал, что это будет очень распространенный дизайн, но, очевидно, это не так. Если ни у кого нет предложений, мне придется разбить мой текст на отдельные блоки и выровнять div вручную, но это довольно опасно, и я не хотел бы делать это на каждой странице, которая нуждается в этом.
РЕДАКТИРОВАТЬ: Просто записка для тех, кто приходит сюда. Вопрос, указанный выше как дубликат, на самом деле не является дубликатом. Требование обтекания текста вокруг вставляемого элемента делает его совершенно другим. На самом деле, ответ на вопрос, получивший наибольшее количество голосов, проясняет, почему ответ в связанном вопросе является неправильным как ответ на этот вопрос. В любом случае, по-видимому, пока нет общего решения этой проблемы, но некоторые решения, опубликованные здесь и в связанном вопросе, могут работать для конкретных случаев.
Ответы:
Установите родительский div в
position: relative
, затем внутренний div в ...... и там вы идете :)
источник
Способ заставить это работать следующим образом:
Поверните родительский div на 180 градусов, используя
JSfiddle: http://jsfiddle.net/wcneY/
Теперь поверните все элементы, которые плавают влево (задайте им класс), на 180 градусов, чтобы снова выровнять их. Вуаля! они плавают на дно.
источник
После нескольких дней борьбы с различными техниками я должен сказать, что это кажется невозможным. Даже с использованием JavaScript (что я не хочу делать) это кажется невозможным.
Чтобы уточнить для тех, кто, возможно, не понял - это то, что я ищу: при публикации довольно распространено расположение макета (рисунок, таблица, рисунок и т. Д.) Так, чтобы его нижние линии совпадали с нижней частью последнего строка текста блока (или страницы) с текстом, текущим вокруг вставки естественным образом выше и вправо или влево в зависимости от того, на какой стороне страницы находится вставка. В html / css тривиально использовать стиль с плавающей точкой для выравнивания верхней части вставки с верхней частью блока, но, к моему удивлению, невозможно выровнять нижнюю часть текста и вставку, несмотря на то, что это обычная задача макета ,
Я думаю, мне придется пересмотреть цели дизайна для этого элемента, если у кого-то нет предложения в последнюю минуту.
источник
Я добился этого в JQuery, поместив элемент распорки нулевой ширины над поплавком справа, а затем определил размер стойки (или трубы) в соответствии с родительской высотой минус высота плавающего дочернего элемента.
До того, как в дело вступит js, я использую абсолютный позиционный подход, который работает, но позволяет потоку текста отставать Поэтому я переключаюсь в статическое положение, чтобы активировать подход к стойке. (заголовок - родительский элемент, вырез - тот, который я хочу внизу справа, и труба - моя стойка)
CSS
Канал должен идти первым, затем вырез, затем текст в порядке HTML.
источник
Это помещает фиксированный div внизу страницы и фиксирует вниз при прокрутке вниз.
источник
Поместите элемент div в другой элемент div и установите для стиля родительского элемента значение «
position:relative;
Затем» в дочернем элементе div установите следующие свойства CSS:position:absolute; bottom:0;
источник
Если у вас все в порядке только с самой нижней строкой текста, идущей в сторону блока (в отличие от полностью вокруг и под ним, что невозможно сделать без окончания блока и начала нового), это невозможно переместить блок в один из нижних углов родительского блока. Если вы поместили некоторый контент в тег абзаца внутри блока и хотите разместить ссылку в правом нижнем углу блока, поместите ссылку в блок абзаца и установите для нее значение float: right, а затем вставьте тег div с clear : оба установлены под концом тега абзаца. Последний div должен убедиться, что родительский тег окружает плавающие теги.
источник
Если вы установите родительский элемент как position: относительный, вы можете установить дочерний элемент в нижнее положение установки: absolute; и снизу: 0;
источник
Если вы хотите, чтобы текст был красиво завернут:
источник
Я знаю, что эти вещи старые, но я недавно столкнулся с этой проблемой.
Использовать абсолютную позицию divs советы действительно глупы, потому что вся вещь с плавающей точкой теряет точку с абсолютными позициями.
сейчас я не нашел универсального решения, но во многих случаях prople использует плавающие div просто для отображения чего-то в ряд, например, серии элементов span. и вы не можете выровнять это по вертикали.
для достижения аналогичного эффекта вы можете сделать это: не делайте div float, а установите его свойство display в
inline-block
. тогда вы можете выровнять его по вертикали так, как вам удобно. вам просто нужно собственность сНа настроенных родителейvertical-align
либоtop
,bottom
,middle
илиbaseline
я надеюсь, что это поможет кому-то
источник
С введением Flexbox это стало довольно легко без особого взлома.
align-self: flex-end
на дочернем элементе выровняйте его вдоль поперечной оси .Вывод:
Показать фрагмент кода
источник
Я уже давно нашел это решение. Вот что я получаю:
выровнять себя: гибкий конец;
ссылка: https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/ Однако я не могу вспомнить, откуда я открыл эту ссылку. Надеюсь, поможет
источник
Я бы просто сделал столик.
И CSS:
Посмотрите это в действии:
http://jsfiddle.net/mLphM/1/
источник
Я попробовал несколько из этих техник, и следующее сработало для меня, поэтому, если все остальное здесь, если все остальное терпит неудачу, попробуйте это, потому что это сработало для меня :)
источник
А выбрал этот подход @ dave-kok. Но это работает, только если весь контент подходит без прокрутки. Я ценю, если кто-то улучшит
Вот код http://jsfiddle.net/d9t9joh2/
источник
Это теперь возможно с гибкой коробкой. Просто установите 'display' родительского div как 'flex' и установите для свойства 'margin-top' значение 'auto'. Это не искажает любое свойство обоих div.
источник
Не уверен, но сценарий, опубликованный ранее, сработал, если вы используете положение: относительное вместо абсолютного в дочернем элементе div.
И никаких таблиц ...
источник
Если вам нужно относительное выравнивание, а DIV по-прежнему не дают того, что вы хотите, просто используйте таблицы и установите valign = "bottom" в ячейке, чтобы содержимое было выровнено по низу. Я знаю, что это не очень хороший ответ на ваш вопрос, поскольку DIV должны заменять таблицы, но это то, что я недавно сделал с заголовком изображения, и до сих пор он работал безупречно.
источник
Я попробовал этот сценарий, опубликованный ранее также;
Абсолютное позиционирование фиксирует div в нижней части браузера при загрузке страницы, но при прокрутке вниз, если страница длиннее, она не прокручивается вместе с вами. Я изменил позиционирование на относительное, и оно работает идеально. Div загружается прямо на дно при загрузке, так что вы не увидите его, пока не дойдете до дна.
источник
Один интересный подход заключается в размещении нескольких правильных элементов с плавающей точкой друг над другом.
Единственная проблема в том, что это работает только тогда, когда вы знаете высоту коробки.
источник
Ответ Стю до сих пор ближе всего к работе, но он по-прежнему не учитывает тот факт, что высота вашего внешнего элемента может изменяться в зависимости от того, как текст обернут внутри него. Таким образом, перемещение внутреннего элемента div (путем изменения высоты «трубы») только один раз будет недостаточно. Это изменение должно происходить внутри цикла, поэтому вы можете постоянно проверять, достигли ли вы правильного позиционирования, и при необходимости корректировать его.
CSS из предыдущего ответа остается в силе:
Тем не менее, Javascript должен выглядеть примерно так:
источник
Я знаю, что это очень старая тема, но все же я хотел бы ответить. Если кто-то следует ниже css & html тогда, это работает. Div нижнего колонтитула будет придерживаться снизу, как клей.
источник
Использовать
margin-top
свойство css с целью установить нижний колонтитул в нижней части его контейнера. И использоватьtext-align-last
свойство css, чтобы установить содержимое нижнего колонтитула в центре.источник
Ох, ребята .... Вот вы
Нет абсолютной позиции! Отзывчивый! Старая школа
источник
Довольно старый вопрос, но все же ... Вы можете поместить div в конец страницы следующим образом:
Вы можете увидеть, где происходит волшебство. Я думаю, что вы могли бы сделать то же самое для плавания его в нижней части родительского div.
источник
просто ...... в html файле справа .... внизу есть нижний колонтитул (или div, который вы хотите внизу). Так что не делайте этого:
СДЕЛАЙТЕ ЭТО: (нижний колонтитул внизу.)
После этого вы можете перейти к файлу css и сделать «боковую панель» плавающей влево. затем «контент» всплывает направо, затем «нижний колонтитул» очищает оба.
это должно работать. для меня.
источник
Я получил это, чтобы работать с первой попытки, добавив
position:absolute; bottom:0;
к div ID внутри CSS. Я не добавил родительский стильposition:relative;
.Он отлично работает как в Firefox, так и в IE 8, еще не пробовал в IE 7.
источник
альтернативный ответ - разумное использование таблиц и строк. установив для всех ячеек таблицы в предыдущей строке (за исключением одной из основного содержимого) значение rowspan = "2", вы всегда получите одно отверстие в нижней части ячейки основной таблицы, которое вы всегда можете поместить в valign = "bottom".
Вы также можете установить его высоту как минимум, необходимый для одной строки. Таким образом, вы всегда получите любимую строку текста внизу, независимо от того, сколько места занимает остальная часть текста.
Я перепробовал все ответы div, я не смог заставить их делать то, что мне было нужно.
источник
вот мое решение:
источник
Вы можете попробовать использовать пустой элемент шириной 1 пиксель и переместить его. Затем очистите элемент, который вы действительно хотите расположить, и используйте высоту пустого элемента, чтобы контролировать, насколько далеко он заходит.
http://codepen.io/cssgrid/pen/KNYrey/
источник