Центрировать текст относительно доступного пространства в CSS

StackOverflow https://stackoverflow.com/questions/229272

  •  04-07-2019
  •  | 
  •  

Вопрос

<div style="width: 300px">
<div id="one" style="float: left">saved</div><input type="submit" id="two" style="float: right" value="Submit" />
</div>

Я бы хотел, чтобы div#one располагался по центру пространства между левым краем родительского div и левым краем кнопки отправки.

Это было полезно?

Решение

Еще несколько способов сделать это:

<div style="width: 300px">
    <input type="submit" id="two" style="float: right" value="Submit" />
    <div id="one" style="text-align:center;">saved</div>
</div>

Трудно сказать, что текст сохраненный не центрирован между левым краем контейнера div и левым краем кнопки отправки.

Вот точная версия вышеупомянутого:

<div style="width: 300px;">
    <input type="submit" id="two" style="float: right; width:64px;" value="Submit" />
    <div id="one" style="text-align:center;margin-right:64px;">saved</div>
</div>

Другие советы

В списке приведен ряд методов

.

Однако, если вы просто хотите, чтобы " сохраненный " текст для центрирования, я думаю, вам нужно будет присвоить ширину #one, например.

<div style="width: 300px">
<div id="one" style="float: left;text-align:center;width:80%">saved</div>
<input type="submit" id="two" style="float: right;width:20%" value="Submit" />
</div>

Это пример общей проблемы CSS: невозможно вычислить «оставшееся пространство» в различных макетах.

Я сталкивался с ситуациями, когда вам (а) нужен точный макет и (б) вы не знаете размер плавающего элемента.

Пример:

[---- поле ввода, занимающее 100% оставшегося места ----] [кнопка неизвестной ширины]

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top