Как поставить два divs на одну линию с CSS в простой форме в rails?

поставить двух дивов на одну линию-это старый вопрос. Но я не могу найти решение при работе с simple_form в рельсы. Что я хочу сделать, так это отобразить содержимое и его метку в одной строке. Ширина этикетки 125px (.left) и содержимое находится справа (.right). Текст в метке выравнивается вправо, а текст в содержимом выравнивается влево.

вот HTML:

<form id="new_production" class="simple_form new_production" novalidate="novalidate" method="post" action="/projects/1/productions" accept-charset="UTF-8">
    <div style="margin:0;padding:0;display:inline">
        <input type="hidden" value="✓" name="utf8">
        <input type="hidden" value="2UQCUU+tKiKKtEiDtLLNeDrfBDoHTUmz5Sl9+JRVjALat3hFM=" name="authenticity_token">
    </div>
    <div class="left">Proj Name:</div>
    <div class="right">must have a name</div>
    <div class="input string required">

здесь CSS:

.simple_form div.left {
  float: left;
  width: 125px;
  text-align: right;
  margin: 2px 10px;
  display: inline;
}

.simple_form div.right {
  float: left;
  text-align: left;
  margin: 2px 10px;
  display: inline;
}

тем не менее, в результате, есть linebreak, например:

Proj Name:
must have a name

код erb простой формы:

<div class="left">Proj Name:</div><div class="right"><%= @project.name %></div> 

Я не хочу использовать таблицу, но CSS только для решения проблемы.

2 ответов


ваш css в порядке, но я думаю, что он не применяется к divs. Просто напишите простое имя класса, а затем попробовать. Вы можете проверить это на Jsfiddle.

.left {
  float: left;
  width: 125px;
  text-align: right;
  margin: 2px 10px;
  display: inline;
}

.right {
  float: left;
  text-align: left;
  margin: 2px 10px;
  display: inline;
}

вы не можете плавать или задать ширину встроенный элемент. Удалить display: inline; из обоих классов и ваша разметка должна представить штрафа.

EDIT: вы можете установить ширину, но это приведет к отображению элемента в виде блока.