it-swarm.com.ru

Как правильно выровнять поля ввода формы?

У меня, казалось бы, легко решаемая проблема, но я изо всех сил. Как получить эти два входа для выравнивания справа от формы, без использования элемента BR?

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
    form {
        text-align: right;
    }
    input {
        width: 100px;
    }
    </style>
</head>

<body>
    <form>
         <input name="declared_first" value="above" />

         <br/> <!-- I want to get rid of this -->

         <input name="declared_second" value="below" />
    </form>
</body>
</html>

Я просто хочу, чтобы первый вход появился над вторым, оба справа.

34
ban-geoengineering

Вы можете использовать плавающие справа и очистить их.

form {
  overflow: hidden;
}
input {
  float: right;
  clear: both;
}
<form>
  <input name="declared_first" value="above" />
  <input name="declared_second" value="below" />
</form>

Вы также можете установить справа налево direction для родителя и восстановить значения по умолчанию слева направо на входах. С display: block вы можете заставить их находиться в разных строках.

form {
  direction: rtl;
}
input {
  display: block;
  direction: ltr;
}
<form>
  <input name="declared_first" value="above" />
  <input name="declared_second" value="below" />
</form>

Или современный способ, макет flexbox

form {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
<form>
  <input name="declared_first" value="above" />
  <input name="declared_second" value="below" />
</form>

56
Oriol

Попробуйте использовать это:

<html>
<body>
   <input type="text" style="direction: rtl;" value="1">
   <input type="text" style="direction: rtl;" value="10">
   <input type="text" style="direction: rtl;" value="100">
</body>
</html>
8
Marco
input { float: right; clear: both; }
3
alexvance

Попробуй это:

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
    p {
        text-align: right;
    }
    input {
        width: 100px;
    }
    </style>
</head>

<body>
    <form>
        <p>
            <input name="declared_first" value="above" />
        </p>
        <p>
            <input name="declared_second" value="below" />
        </p>
    </form>
</body>
</html>
3
Ascension

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

<form>
   <div>
     <input>
     <br />
     <input>
    </div>
</form>

    .mydiv
     {
        width: 500px;
        height: 250px;
        display: table;
        text-align: right;
     }
1
huncyrus

Чтобы влиять ТОЛЬКО на поля ввода типа текста, используйте селектор атрибута

входной [тип = «текст»] 

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

https://www.w3schools.com/css/css_attribute_selectors.asp

например, используйте div и дайте ему идею сослаться на:

#divEntry input[type="text"] {
text-align: right;}
0
Kim Wilson

Попробуйте использовать это:

input {
  clear: both;
  float: right;
  margin-bottom: 10px;
  width: 100px;
}
0
stalinrajindian

Я ответил на этот вопрос в сообщении в блоге: https://wscherphof.wordpress.com/2015/06/17/right-align-form-elements-with-css/ Это относится к этой скрипке: https://jsfiddle.net/wscherphof/9sfcw4ht/9/

Спойлер: float: right; - верное направление, но для получения аккуратных результатов требуется чуть больше внимания.

0
user2389922