2016-08-24 2 views
0

Что-то не так с дизайном моей формы, как показано ниже.Форма таблицы шириной между меткой и текстовым полем ввода

enter image description here

<div class="myRegInfoForm"> 
      <form method="POST" action="action_reg.php"> 
       <table> 
        <tr> 
         <td> 
          <label>Name: </label> 
         </td> 
         <td> 
          <input type="text" name="regname" value="" id="regname" required pattern="[A-Za-z_ ]{1,}" title="Only letters allowed."/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <label>Course applied for: </label> 
          <label><?php echo $CourseName ?></label> 

       </table> 
      </form> 
    </div> 

Широкое пространство между текстовым полем этикетки и ввода после добавления второго <td> элемент, и я не знаю, почему. Может кто-нибудь мне помочь?

.myRegInfoForm { 
    display:flex; 
    justify-content:center; 
    align-items:center; 
} 

Мой требуемый выход:

enter image description here

+0

Ваш желаемый результат не включает строку «Курс, применяемый для:». – nnnnnn

ответ

1

Набор text-align для td в right

.myRegInfoForm { 
 
    display:flex; 
 
    justify-content:center; 
 
    align-items:center; 
 
} 
 

 
.myRegInfoForm td{ 
 
    text-align: right; 
 
}
<div class="myRegInfoForm"> 
 
      <form method="POST" action="action_reg.php"> 
 
       <table> 
 
        <tr> 
 
         <td> 
 
          <label>Name: </label> 
 
         </td> 
 
         <td> 
 
          <input type="text" name="regname" value="" id="regname" required pattern="[A-Za-z_ ]{1,}" title="Only letters allowed."/> 
 
         </td> 
 
        </tr> 
 
        <tr> 
 
         <td> 
 
          <label>Course applied for: </label> 
 
          <label><?php echo $CourseName ?></label> 
 

 
       </table> 
 
      </form> 
 
    </div>

1

Добавить colspan="2" в TD во втором ряду, как показано ниже. Ширина первого td в первой строке автоматически расширяется, чтобы соответствовать ширине первого td во второй строке, но, установив colspan, вы можете иметь этот диапазон ячеек по ширине обеих ячеек в первой строке.

<div class="myRegInfoForm"> 
 
    <form method="POST" action="action_reg.php"> 
 
    <table> 
 
     <tr> 
 
     <td> 
 
      <label>Name:</label> 
 
     </td> 
 
     <td> 
 
      <input type="text" name="regname" value="" id="regname" required pattern="[A-Za-z_ ]{1,}" title="Only letters allowed." /> 
 
     </td> 
 
     </tr> 
 
     <tr> 
 
     <td colspan="2"> 
 
      <label>Course applied for:</label> 
 
      <label> 
 
      <?php echo $CourseName ?> 
 
      </label> 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </form> 
 
</div>

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

+0

Привет, большое спасибо за быстрый ответ. Что мне следует использовать, если я хочу создать простую «контактную форму»? – iamhx

+0

Нет никого подходящего пути. Если у вас есть несколько входов, и вы хотите, чтобы все они были выровнены по левому краю, то, вероятно, это самый простой способ (с использованием свойства 'text-align: right' на ярлыках, как в ответе [z0mBi3] (http: // stackoverflow. com/a/39113767/615754). Некоторые люди просто используют элементы меток с CSS, чтобы установить их как элементы блоков с требуемой шириной. Некоторые люди используют ul-элементы с литом на поле, стилизованные, чтобы они не выглядели как точки точек. используйте пункты. И т.д. – nnnnnn

0

, так как у вас есть другой td, поэтому td будет авторизоваться.
так что вам нужно использовать float: прямо на этикетке;

<td><label style="float:right;">Name: </label></td> 

я надеюсь, что эта помощь

0

Я не вижу закрывающий тег для своего второго тр. Ни за последний тд.

<div class="myRegInfoForm"> 
      <form method="POST" action="action_reg.php"> 
       <table> 
        <tr> 
         <td> 
          <label>Name: </label> 
         </td> 
         <td> 
          <input type="text" name="regname" value="" id="regname" required pattern="[A-Za-z_ ]{1,}" title="Only letters allowed."/> 
         </td> 
        </tr> 
        **<tr> 
         <td>** 
          <label>Course applied for: </label> 
          <label><?php echo $CourseName ?></label> 

       </table> 
      </form> 
    </div> 
+0

Закрытие этих тегов не решит проблему. – nnnnnn

0

Вы можете положить ввод с тегами: td. Например:

<td> 
    <label style="display:inline-block;">Name: </label> 
    <input type="text" name="regname" value="" id="regname" required pattern="[A-Za-z_ ]{1,}" title="Only letters allowed."/> 
</td> 
Смежные вопросы