Получение моего элемента ввода для выравнивания по правому краю

0

Если вы нажмете эту ссылку

http://jaminweb.com/boardBeta.php

а затем нажмите кнопку Создать тему, вы увидите 3 input элементы типа text, справа от пользователя, пароля и названия, соответственно. Я хотел бы, чтобы эти элементы были выровнены по правому краю в их ближайшем родительском div (поле с серым фоном) или какой-то другой способ сделать их согласованными друг с другом. Мне не нравится, когда они укладываются прямо на текст влево. Я пробовал несколько методов выполнения указанной задачи, и никто из них не работал.

Здесь соответствующий код:

div.boardbox
{
    background-color: #ccc;
    margin: 20px;
    width: 50%;
    padding: 5px;
    border: 3px solid #00325f;
}

div.hidden
{
    display: none;
}

input.threadipt
{
    width: 300px;
    margin-left: auto;
    margin-right: 0px;
}

textarea#newthreadtxt
{
  height: 400px; 
  width: 100%;
  margin: 0px;
}

button.threadbutton
{
    width: 100px;
    background-color: #DF0101;
}

а также

    <button onclick="$('#newthreaddiv').removeClass('hidden');">New Thread</button>
    <div class="boardbox hidden" id="newthreaddiv">
        <form id="newthreadform">
            <p>Username: <input class="threadipt" type="text"/></p>
            <p>Password: <input class="threadipt" type="text"/></p>
            <p>Title: <input class="threadipt" type="text"/></p>
            <p>Content:</p>
            <textarea id="newthreadtxt"></textarea>
            <button onlick="phpfunction">Create Thread</button>
        </form>
    </div>

Кроме того, я хотел бы, чтобы элемент textarea был центрирован внутри div и мог только расширяться вертикально. Возможное?

5 ответов

0
Лучший ответ

Вы можете сделать это, установив атрибут "float" в "right".

input.threadipt
{
    width: 300px;
    margin-left: auto;
    margin-right: 0px;
    float:right;
}

Что касается текстового поля, я не уверен, что вы имеете в виду. Если вы говорите о недостатке поля справа от своего текстового поля, вы можете изменить свой CSS следующим образом:

textarea#newthreadtxt
{
    height: 400px; 
    width: 100%;
    margin: 0px;
    box-sizing: border-box;
    margin-right: 5px;
}

В разделе размера коробки указано, что вы хотите, чтобы ширина включала маржу и отступы. (другими словами, не более 100%). Затем вы можете безопасно добавить margin-right от 5px, что составляет ту же сумму, что и маржа. Этот запас вычитается из общей ширины, делая его центрированным в родительском элементе.

0
#newthreadform > p { position: relative; }
input.threadipt { position: absolute; right: 0; }
0

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

CSS

div.boardbox
{
    background-color: #ccc;
    margin: 20px;
    width: 50%;
    padding: 5px;
    border: 3px solid #00325f;
}

div.hidden
{
    display: none;
}

input.threadipt
{
    width: 300px;
    margin-left: auto;
    float:right;
    margin-right: 0px;
}

textarea#newthreadtxt
{
  height: 400px; 
  width: 100%;
  margin: 0px;
}

#newthreadform p span /* ADDED CSS */
 {
   min-width:90px;
   display:block;
   float:left;
 }

button.threadbutton
{
    width: 80px;
    background-color: #DF0101;
}

HTML

<button onclick="$('#newthreaddiv').removeClass('hidden');">New Thread</button>
    <div class="boardbox hidden" id="newthreaddiv">
        <form id="newthreadform">
          <p><span>Username:</span> <input class="threadipt" type="text"/></p>
          <p><span>Password:</span> <input class="threadipt" type="text"/></p>
          <p><span>Title:</span> <input class="threadipt" type="text"/></p>
          <p><span>Content:</span></p>
          <textarea id="newthreadtxt"></textarea>
          <button onlick="phpfunction">Create Thread</button>
        </form>
    </div>

СМОТРИТЕ ДЕМО ЗДЕСЬ: http://jsfiddle.net/hPj7S/

0

Просто простое плавающее право должно работать.

<div>
    <label>UserName:</label>
    <input type="text" style="float:right">
</div>

Также подумайте о правильном выравнивании текста против ввода.

<div>
    <label style="width:100px; display: inline-block; text-align:right">UserName:</label>
    <input type="text">
</div>
0

просто добавьте float:right к ним, и это сделает трюк...

альтернативно, вы можете окружать метки с помощью <span> и добавлять к ней width - таким образом, они будут выровнены также, а не вправо, но выровнены

<p><span>Username:</span> <input class="threadipt" type="text"/></p>

p span {
  width:200px;
  display:inline-block;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню