Создание моей строки класса span, кнопки сброса и отправки по горизонтали вместо одной поверх другой

#html #css

#HTML #css

Вопрос:

Всем привет, я новичок в HTML и CSS и в настоящее время работаю над небольшой школьной лабораторией. Я пытаюсь сделать так, чтобы мои две кнопки сброса и отправки были горизонтальными друг с другом, вместо этого они находятся одна над другой. Я не должен изменять какой-либо HTML, просто вносите изменения в код CSS. Кнопки находятся в элементе span внизу. Я добавил свой код формы, чтобы добавить больше контекста

 <form>
    <span class="row">
        <label for="name">Name</label>
        <input type="text" id="name" name="name" placeholder="Jaylen Carroll">
    </span>
    <span class="row">
        <label for="dob">Date of Birth</label>
        <input type="date" id="dob" name="dob">
    </span>
    <span class="row">
        <label for="email">Email</label>
        <input type="email" id="email" name="email" placeholder="jaylen@gmail.com">
    </span>
    <span class="row">
        <label for="city">City</label>
        <input type="city" id="city" name="city" placeholder="Ottawa">
    </span>
    <span class="row">
        <label for="province">Province</label>
        <select id="province" name="province">
            <option>Please Select..</option>
            <option value="AB">Alberta</option>
            <option value="BC">British Columbia</option>
            <option value="MB">Manitoba</option>
            <option value="NB">New Brunswick</option>
            <option value="NL">Newfoundland and Labrador</option>
            <option value="NS">Nova Scotia</option>
            <option value="ON">Ontario</option>
            <option value="PE">Prince Edward Island</option>
            <option value="QC">Quebec</option>
            <option value="SK">Saskatchewan</option>
            <option value="NT">Northwest Territories</option>
            <option value="NU">Nunavut</option>
            <option value="YT">Yukon</option>
        </select>
    </span>
    <span class="row">
        <input type="reset" id="reset" name="reset">
        <input type="submit" id="submit" name="submit">
    </span>
</form>
  

Когда вы вставляете код в редактор HTML, он выглядит так:
Как получается HTML

Как мне это нужно: введите описание изображения здесь

Мой код Css выглядит следующим образом:

 h1{
text-align:center;
}
label{
margin-top: 16px;
font-weight: bold;
display: block;
text-align: center;
font-size: medium;
}
input{
text-align:center;
display: block;
margin: 15px;
width:150px;
}
form{
margin:0 auto;
width:215px;
}
  

Ответ №1:

Элементы HTML по умолчанию начинаются с отдельных строк. Одним из решений было бы поместить ваши кнопки в группу с элементом div, а затем использовать свойство float CSS для выравнивания их по горизонтали.

HTML

 <div class="button-group">
  <input type="reset" id="reset" name="reset">
   <input type="submit" id="submit" name="submit">
</div>
  

CSS

 .button-group input {
    float: left;
    }
  

Вы можете обратиться к этой ссылке w3 schools для получения дополнительной информации о группах кнопок:
https://www.w3schools.com/howto/howto_css_button_group.asp

Ответ №2:

вы можете использовать display flex Это определяет гибкий контейнер; встроенный или блок в зависимости от заданного значения. Это позволяет использовать гибкий контекст для всех его прямых дочерних элементов.

Установите flex:direction в качестве столбца.

Это устанавливает главную ось, тем самым определяя направление, в котором элементы flex помещаются в контейнер flex. Flexbox — это (помимо дополнительной упаковки) концепция компоновки в одном направлении. Представьте, что гибкие элементы в основном располагаются либо горизонтальными рядами, либо вертикальными столбцами.

 .row{
display:flex;
flex-direction:column;
}  
 <form>
    <span class="row">
        <label for="name">Name</label>
        <input type="text" id="name" name="name" placeholder="Jaylen Carroll">
    </span>
    <span class="row">
        <label for="dob">Date of Birth</label>
        <input type="date" id="dob" name="dob">
    </span>
    <span class="row">
        <label for="email">Email</label>
        <input type="email" id="email" name="email" placeholder="jaylen@gmail.com">
    </span>
    <span class="row">
        <label for="city">City</label>
        <input type="city" id="city" name="city" placeholder="Ottawa">
    </span>
    <span class="row">
        <label for="province">Province</label>
        <select id="province" name="province">
            <option>Please Select..</option>
            <option value="AB">Alberta</option>
            <option value="BC">British Columbia</option>
            <option value="MB">Manitoba</option>
            <option value="NB">New Brunswick</option>
            <option value="NL">Newfoundland and Labrador</option>
            <option value="NS">Nova Scotia</option>
            <option value="ON">Ontario</option>
            <option value="PE">Prince Edward Island</option>
            <option value="QC">Quebec</option>
            <option value="SK">Saskatchewan</option>
            <option value="NT">Northwest Territories</option>
            <option value="NU">Nunavut</option>
            <option value="YT">Yukon</option>
        </select>
    </span>
    <span class="row">
        <input type="reset" id="reset" name="reset">
        <input type="submit" id="submit" name="submit">
    </span>
</form>  

Комментарии:

1. Это работает для меня, но я хочу, чтобы это влияло только на две кнопки, чтобы они были горизонтальными, когда я обращаюсь к «.row» в таблице стилей, это влияет на все строки в HTML, когда мне нужно только изменить кнопку отправки и сброса.

Ответ №3:

для последней строки класса, которая содержит 2 кнопки, вы можете заменить ее имя класса и применить к нему этот CSS

 .class-name {
  display:"flex",
  // if you want to keep space between the two buttons
  justify-content:"space-between"
  // if not don't put `justify-content` and instead put a margin to one of the buttons to
  // keep a little distance between them
}
  

таким образом, отображение «flex» — ваш друг, когда вы хотите группировать элементы в виде строки