Я действительно не фанат чрезмерного использования position: absolute
для решения проблем. Использование этого может вызвать проблемы с производительностью, поскольку браузер должен создать новый элемент стека и вывести наизнанку . Тем более, что он уже в абсолютном выражении, так что теперь у вас будет 3 элемента стека, когда на самом деле это сделать, ни один не нужен .
Менее грязный (без позиции, худший вариант) Исправление:
.abcd {
float: right;
}
label {
padding-right: 1.50rem;
}
https://jsfiddle.net/f4036zmg/
Почему это работает: метка позиционируется абсолютно, поэтому она не учитывает заполнение элемента контейнера (.75rem
). Чтобы правильно выровнять левую сторону, он имеет left: .75rem
, что означает, что правая сторона теперь 1.5rem
направо, потому что это width: 100%
. Простое заполнение метки заставит поплавок перемещаться в пределах области с метками.
Дайте мне знать, если вы хотите, чтобы все это работало без должностей, это довольно легко. (Однако похоже, что materialize.min.css делает эту работу за вас, очень уродливо).
Полуочистка (без позиции, опция ok) Исправление:
.abcd {
float: right;
}
input[type=text].validate+label {
width: auto;
right: .75rem;
}
Здесь мы переопределяем materialize.min.css (возможно, это не очень хороший вариант, я не знаю). Мы сбрасываем width: auto
, чтобы right
работал, и, как и прежде, для этого нужно заполнить .75rem
https://jsfiddle.net/gL7fhx2q/
Чистое исправление:
Требуемые изменения HTML:
<label for="first_name">
<span class="">First Name</span>
<span class="tar">Top Right</span>
</label>
CSS:
.input-field.col label {
left: 0;
padding: 0 .75rem;
display: flex;
}
.input-field.col label > span {
flex: 1 0 auto;
}
.tar {
text-align: right;
}
https://jsfiddle.net/7bw2zghr/
Снова переопределение materialize.min.css, однако это не должно вызывать проблем для других проектов. Сбросьте левую спину в правильное положение left:0
и добавьте заполнение, как ввод padding: 0 .75rem
. Теперь метка правильно соответствует его родным братьям. Измените отображение метки на гибкий контейнер и оберните оба текста так, чтобы они были гибкими элементами. Установите пропорционально растущие элементы, а затем правильно установите текст элемента сгиба вправо.