How to make

后端 未结 12 1232
日久生厌
日久生厌 2020-12-12 15:37

I am creating a registration form for a website. I want each label and its corresponding input element to appear on the same line.

Here\'s my code:

相关标签:
12条回答
  • 2020-12-12 16:15

    I am using Angular 6 with Bootstrap 4 and find this way works:

    <div class="form-group row">
        <div class="col-md-2">
            <label for="currentPassword">Current Password:</label>
        </div>
        <div class="col-md-6">
            <input type="password" id="currentPassword">
        </div>
    </div>
    
    0 讨论(0)
  • 2020-12-12 16:16

    aaa##HTML I would suggest you wrap them in a div, since you will likely end up floating them in certain contexts.

    <div class="input-w">
        <label for="your-input">Your label</label>
        <input type="text" id="your-input" />
    </div>
    

    CSS

    Then within that div, you can make each piece inline-block so that you can use vertical-align to center them - or set baseline etc. (your labels and input might change sizes in the future...

    .input-w label, .input-w input {
        float: none; /* if you had floats before? otherwise inline-block will behave differently */
        display: inline-block;
        vertical-align: middle;    
    }
    

    jsFiddle

    UPDATE: mid 2016 + with mobile-first media queries and flex-box

    This is how I do things these days.

    HTML

    <label class='input-w' for='this-input-name'>
      <span class='label'>Your label</span>
      <input class='input' type='text' id='this-input-name' placeholder='hello'>
    </label>
    
    <label class='input-w' for='this-other-input-name'>
      <span class='label'>Your label</span>
      <input class='input' type='text' id='this-other-input-name' placeholder='again'>
    </label>
    

    SCSS

    html { // https://www.paulirish.com/2012/box-sizing-border-box-ftw/
      box-sizing: border-box;
      *, *:before, *:after {
        box-sizing: inherit;
      }
    } // if you don't already reset your box-model, read about it
    
    .input-w {
      display: block;
      width: 100%; // should be contained by a form or something
      margin-bottom: 1rem;
      @media (min-width: 500px) {
        display: flex;
        flex-direction: row;
        align-items: center;
      }
      .label, .input {
        display: block;
        width: 100%;
        border: 1px solid rgba(0,0,0,.1);
        @media (min-width: 500px) {
          width: auto;
          display: flex;
        }
      }
      .label {
        font-size: 13px;
        @media (min-width: 500px) {
          /* margin-right: 1rem; */
          min-width: 100px; // maybe to match many?
        }
      }
      .input {
        padding: .5rem;
        font-size: 16px;
        @media (min-width: 500px) {
          flex-grow: 1;
          max-width: 450px; // arbitrary
        }
      }
    }
    

    jsFiddle

    0 讨论(0)
  • 2020-12-12 16:18

    #form {
        background-color: #FFF;
        height: 600px;
        width: 600px;
        margin-right: auto;
        margin-left: auto;
        margin-top: 0px;
        border-top-left-radius: 10px;
        border-top-right-radius: 10px;
        padding: 0px;
        text-align:center;
    }
    label {
        font-family: Georgia, "Times New Roman", Times, serif;
        font-size: 18px;
        color: #333;
        height: 20px;
        width: 200px;
        margin-top: 10px;
        margin-left: 10px;
        text-align: right;
        margin-right:15px;
        float:left;
    }
    input {
        height: 20px;
        width: 300px;
        border: 1px solid #000;
        margin-top: 10px;
    }
    <div id="form">
        <form action="" method="post" name="registration" class="register">
            <fieldset>
                <div class="form-group">
                    <label for="Student">Name:</label>
                    <input name="Student" />
                </div>
                <div class="form-group">
                    <label for="Matric_no">Matric number:</label>
                    <input name="Matric_no" />
                </div>
                <div class="form-group">
                    <label for="Email">Email:</label>
                    <input name="Email" />
                </div>
                <div class="form-group">
                    <label for="Username">Username:</label>
                    <input name="Username" />
                </div>
                <div class="form-group">
                    <label for="Password">Password:</label>
                    <input name="Password" type="password" />
                </div>
                <input name="regbutton" type="button" class="button" value="Register" />
            </fieldset>
        </form>
    </div>

    0 讨论(0)
  • 2020-12-12 16:29

    Another option is to place a table inside the form. (see below) I know tables are frowned upon by some people but I think they work nicely when it comes to responsive form layouts.

    <FORM METHOD="POST" ACTION="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi">
    <TABLE BORDER="1">
      <TR>
        <TD>Your name</TD>
        <TD>
          <INPUT TYPE="TEXT" NAME="name" SIZE="20">
        </TD>
      </TR>
      <TR>
        <TD>Your E-mail address</TD>
        <TD><INPUT TYPE="TEXT" NAME="email" SIZE="25"></TD>
      </TR>
    </TABLE>
    <P><INPUT TYPE="SUBMIT" VALUE="Submit" NAME="B1"></P>
    </FORM>
    
    0 讨论(0)
  • 2020-12-12 16:30

    Wrap the label and the input within a bootstraps div

    <div class ="row">
      <div class="col-md-4">Name:</div>
      <div class="col-md-8"><input type="text"></div>
    </div>
    
    0 讨论(0)
  • 2020-12-12 16:30

    This thing works well.It put radio button or checkbox with label in same line without any css. <label><input type="radio" value="new" name="filter">NEW</label> <label><input type="radio" value="wow" name="filter">WOW</label>

    0 讨论(0)
提交回复
热议问题