Css прижать блок к правому краю: Как прижать блок к правому краю? — Хабр Q&A

HTML\CSS: Свойство position: absolute и relative

CSS

Свойство position определяет порядок, в соответствии с которым элемент отображается на веб-странице. По умолчанию элементы отображаются последовательно один за другим в том порядке, в котором они определены в документе (static).

Блочные элементы (p, div, table, blockquote и др.) занимают 100% ширины родительского элемента. Поэтому последовательные блочные элементы отображаются один под другим.

Инлайновые элементы (em, strong, span, q, abbr и т.п.) занимают ширину которая соответствует ширине данных внутри него. Поэтому инлайновый элементы отображаются рядом друг с другом.

Свойство position вместе с top, right,

bottom и left свойствами может отображать элемент с нарушением обычного порядка.

static
По умолчанию. Элементы отображаются последовательно один за другим в том порядке, в котором они определены в документе.
relative
Позиция элемента смещается относительно его исходного положения вверх, вниз, вправо или влево (зависит от того, какое свойство применено: top, right, bottom или left).
absolute
Позиция элемента смещается относительно родительского элемента вверх, вниз, вправо или влево (зависит от того, какое свойство применено: top, right, bottom или left), а так же нарушается порядок отображения элементов. Элементы, следующие за ним располагаются так, словно его нет на странице. Также на положение влияет значение свойства position родительского элемента.
Так, если у родителя значение position установлено как  static или родителя нет, то отсчет координат ведется от края окна браузера.
Если у родителя значение position задано как relative, fixedили absolute, то отсчет координат ведется от края родительского элемента.
fixed
Позиция эелемента зафиксирована относительно границы окна браузера и поэтому элемент не прокручивается вместе с остальным контентом страницы. Позиция элемента смещается вверх, вниз, вправо или влево (зависит от того, какое свойство применено: top, right, bottom или left)
inherit
Заимствует значение у родительского элемента.

Пример: прижать div к правому верхнему углу родительского:

<style type="text/css">
        .parent { position: relative; }
        .child { position: absolute; right: 10px; top: 10px; }
</style>
<div>
        <div>
            Some text
        </div>
</div>

Разница между Float и Flexbox – GoIT Global

  • 1 мин

Но ведь работает же! – первое, что услышите от любителей устаревших технологий. Спорить с ними или нет – каждый решает для себя сам, но вот разобраться в сути стоит точно. И так ли хороши современные технологии? К концу статьи точно придем к единому мнению.   Сегодня мы поговорим о разнице между Float и Flexbox. Также разберем, когда их уместнее всего использовать и возможно ли смешивать эти свойства для 

позиционирования элементов?   Давайте познакомимся с любимой многими технологией позиционирования float. Несколько лет назад это был действительно удобный способ быстро расставить все элементы на странице по своим местам. На первый взгляд все максимально просто: свойство float: left позволяет прижать элемент к левому краю родителя, а соседние блоки будут «обтекать» его справа. Нетрудно догадаться, что указанное свойство float: right позволяет добиться обратного результата – элемент отправляется к правому верхнему краю родителя. Все бы ничего, но уж много нюансов скрыто от глаз новичка, что порой заставляет его хорошенько понервничать, пытаясь разобраться в магии флоатов.   Первое, о чем нужно знать – свойство 
float
 вынимает элемент из потока документа. Изначально все элементы выстраиваются друг за другом в ряд сверху вниз. Стоит применить float к определенному элементу, как он буквально вырывается из ряда, соседний элемент тут же занимает его место. Если же у нас в блоке float элемент, то этот блок-родитель просто схлопнется – его высота теперь равна нулю. Естественно, при верстке страницы у нас будет не один такой float элемент. Конечно же, за время использования float-ов вариантов решения данных проблем накопилось много. Например, класс clearfix выручит нас и не даст родителю float-элементов схлопнуться. Давайте посмотрим на код.

Просто дописали дополнительный класс и все дела! Конечно, имея хорошую смекалку, можно решить практически любую задачку. Но стоит ли? Float – это долго, неэффективно и уже не так актуально в мире IT. Если захотите сделать адаптивную верстку, возникнет еще множество дополнительных трудностей, после которых точно захочется поближе познакомиться с 

flexbox.   Если вы хотите верстать современные сайты – тогда используйте flexbox. Эта технология позволяет написав 3 строчки кода выровнять элементы по главной и поперечной оси, позволить блокам растягиваться, даже менять порядок их отображения! И это далеко не все.   Если необходимо поставить блоки в ряд – пишем display: flex родительскому элементу. Дописав свойство строку justify-content, можем выровнять блоки по оси удобным для себя способом, в том числе прижать к правому или левому краю. Плюс к этому можем разместить блоки по центру либо расположить их на равномерном удалении друг от друга. Только одно это свойство на порядок превосходит то, что нам предлагает float. Кроме этого, эти же блоки с помощью значения flex-direction можно выстроить не только по горизонтальной оси, но и по вертикальной.
Значение row-reverse позволяет поставить эти блоки в обратном порядке.   Необходимо, чтобы блоки размещались не на одной строке? Тоже не проблема. Воспользуемся свойством flex-wrap. Это отлично подойдет как для отображения карточек товаров в интернет-магазине, так и для портфолио и во многих других случаях. Хорошо разобравшись со всеми возможностями flexbox, можно почувствовать себя буквально всемогущим. В примере, конечно, рассмотрены далеко не все возможности флексов, скорее наоборот – только самое начало.

Резюмируем плюсы flexbox:

  • гибкость блоков, их способность растягиваться и сжиматься;
  • упрощенное выравнивание элементов по вертикали и горизонтали;
  • независимость от порядка расположения HTML-элементов;
  • возможность простого адаптирования под направление текста right-to-left.

  Для того, чтобы ближе познакомиться с 

flexbox и даже поэкспериментировать – предлагаем пройти бесплатный HTML&CSS Pre-COURSE.

Выравнивание

. Как выровнять элемент блока по правому краю его родителя (с помощью CSS)?

спросил

Изменено 7 лет, 2 месяца назад

Просмотрено 9к раз

Я знаю, что вы можете центрировать блочный элемент, установив левое и правое поле на авто .

Однако можно ли выровнять его по правому краю? И как бы это сделать?

Редактировать: без с использованием float: right (потому что это не работает, по крайней мере, не с

    )

    Редактировать снова: Вот фрагмент кода:

     <тд>
      Варианты:

    <ул> ...

Вот стиль для #orderchoices

 #выбор заказа li {
  граница: 1px сплошная #666;
  фон: #333 url(images/dark_gloss. png) repeat-x;
  цвет: #еее;
  поле: 3px;
  отступ: 5px;
  курсор: указатель;
  ширина: 160 пикселей;
  стиль шрифта: курсив;
}
 

Я хочу, чтобы ul выровнялся по правому краю в td

  • css
  • выравнивание

2

 <дел>
    
Я внутренний элемент!
<тип стиля="текст/CSS"> .outer { позиция: относительная; } .inner { позиция: абсолютная; справа: 0 пикселей; }

Если ваш внутренний элемент расположен абсолютно внутри контейнера, который расположен относительно, вы можете использовать сверху

, справа , снизу и слева , чтобы указать расстояние внутреннего элемента от краев родительского контейнера.

Имеет смысл?

3

Чтобы выровнять блочный элемент по правому краю относительно его родителя, попробуйте использовать float. Не забудьте добавить элемент после очистки плавающего элемента, чтобы нижняя часть родителя соответствовала нижней части плавающего элемента.

 <дел>
     <дел>
      
здесь ваши материалы
<дел>

Метод «position: absolute» также может работать, но когда элемент позиционируется таким образом, он удаляется из потока html, поэтому его родитель не знает высоту элемента с абсолютным позиционированием — отсюда причина, по которой он может проскальзывать с конца страницы. Вы можете преодолеть это, установив высоту для родителя, но это, конечно, зависит от того факта, что а) вы заранее знаете высоту, б) она не изменится

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Разрешение странного поведения встроенных блоков CSS

В CSS встроенный блок — странное животное — ни встроенный, ни блочный. Кроме того, он поставляется с собственным набором правил рендеринга, которые иногда могут приводить к неожиданным результатам.

Возьмем следующий пример: http://jsfiddle.net/aSzaE/

У нас есть три почти одинаковых ряда. Каждый состоит из двух встроенных блоков div, расположенных рядом друг с другом. Оба имеют фиксированную ширину и высоту. Один имеет глубину 30 пикселей; другой имеет глубину 150 пикселей.

Единственная разница между строками заключается в содержимом большего div:

  1. В первой строке нет тега;
  2. Во второй строке он заключен в тег ;
  3. В третьей строке он заключен в абсолютно позиционированный тег .

Ого! Посмотрите на этот третий ряд! это странно на двух уровнях:

  1. Абсолютное позиционирование диапазона внутри правого div приводит к нелогичному эффекту смещения соседнего div вниз на добрых 120 пикселей или около того.
  2. Текст внутри этого диапазона остается на месте, даже если к его родительскому элементу div не применяется позиция. По правилам позиционирования такого быть не должно.

Так что здесь происходит?

Вот подсказка: посмотрите, что происходит, когда в большем div содержится гораздо больше содержимого: http://jsfiddle.net/jLQrD/

Ха. Добавление большего количества контента в большой div также смещает меньший div вниз. Но какое это имеет отношение к проблеме абсолютно позиционированного промежутка? Позиционирование чего-либо полностью выводит его из обычного потока HTML, поэтому оно никак не должно влиять на соседний div.

Виновником оказывается то, как вертикальное выравнивание работает со встроенными элементами div. По умолчанию встроенные блочные элементы имеют свойство вертикального выравнивания «базовая линия». Но это применимо не столь очевидным образом: браузер не выстраивает сами встроенные блоки div; это выравнивает их содержание.

Таким образом, когда и большой, и маленький элементы div имели одну строку содержимого, казалось, что они выравниваются по верхней части содержащего их элемента div.