Я хотел бы разместить некоторые элементы на разных расстояниях от левой границы родителя div
. Каждый элемент имеет собственное расстояние (в процентах от ширины родителя div
).Как плавать элементы самостоятельно?
Поскольку position
не кажется, правильный подход, я пытался сделать это с помощью плавающего элемента справа
div {
display: flex;
flex-direction: row;
}
#root {
width: 50%;
border: solid;
}
#one {
float: right;
margin-left: 20%;
}
#two {
float: right;
margin-left: 80%;
}
<div id="root">
<div id="one">1</div>
<div id="two">2</div>
</div>
Мое ожидание было, что первый элемент будет в 10% от ширины div
(так что 5% ширины страницы, так как родительский div
составляет 50% по отношению к странице), а второй - 80%. Это не тот случай, docs упомянуть, что
Элементы после плавающего элемента будут обтекать его.
Они также отмечают, что clear
можно использовать, чтобы избежать этого, но мне не удалось сделать это произойдет (то есть сделать так, чтобы каждый поплавок пересчитывается от левой границы родительского div
).
Возможно ли это?
В качестве обходного решения я подумал о вычислении поплавка второго элемента, относящегося к первому, но это ужасно (*) усложнит мой код, поэтому, возможно, есть более чистое решение.
(*) Для случая выше, что было бы 80% - 20%
(те, которые уже плавали) = 60%
. Но даже здесь позиционирование неверно (2
слишком много справа, должно быть 20% незаполненным, 1
, 40% пустое, 2
, 20% пустое - но сами ширины самих номеров следует учитывать как а)
div {
display: flex;
flex-direction: row;
}
#root {
width: 50%;
border: solid;
}
#one {
float: right;
margin-left: 20%;
}
#two {
float: right;
margin-left: 60%;
}
<div id="root">
<div id="one">1</div>
<div id="two">2</div>
</div>
поплавок does't работы с дисплеем прогибается –
Помните, что поплавки игнорируются в гибком контейнере. http://stackoverflow.com/q/39194630/3597276 –
@Michael_B (и GermanoPlebani) - а? Я не знал об этом. Итак, почему цифры переведены вправо в моем первом фрагменте кода? – WoJ