Попытка добавить радиовходы (+ метки) в примерную форму

<style type = "text/css">
body {
    font-family:Helvetica, sans-serif; 
    font-size:12px;
}
p,
h1,
form,
button {
  border: 0;
  margin: 0;
  padding: 0;
}
.spacer {
  clear: both;
  height: 1px;
}
/* ----------- My Form ----------- */
.myform {
    margin: 0 auto;
    width: 400px;
    padding: 14px;
}
    /* ----------- basic ----------- */
    #basic {
        border: solid 2px #DEDEDE;
    }
    #basic h1 {
        font-size: 14px;
        font-weight: bold;
        margin-bottom: 8px;
    }
    #basic p {
        font-size: 11px;
        color: #666666;
        margin-bottom: 20px;
        border-bottom: solid 1px #dedede;
        padding-bottom: 10px;
    }
    #basic label {
        display: block;
        font-weight: bold;
        text-align: right;
        width: 140px;
        float: left;
    }
    #basic .small{
        color:#666666;
        display:block;
        font-size:11px;
        font-weight:normal;
        text-align:right;
        width:140px;
    }
    #basic input{
        float:left;
        width:200px;
        margin:2px 0 30px 10px;
    }
    #basic button{ 
        clear:both;
        margin-left:150px;
        background:#888888;
        color:#FFFFFF;
        border:solid 1px #666666;
        font-size:11px;
        font-weight:bold;
        padding:4px 6px;
    }
</style>

<div id = "basic" class = "myform">
  <form id = "form1" name = "form1" method = "post" action = "">
    <h1>Sign-up form</h1>
    <p>This is the basic look of my form without table</p>
    <label>Name
        <span class = "small">Add your name</span>
    </label>
    <input type = "text" name = "textfield" id = "textfield" />

    <label>Email
    <span class = "small">Add a valid address</span>
    </label>
    <input type = "text" name = "textfield" id = "textfield" />

    <label>Email
    <span class = "small">Add a valid address</span>
    </label>
    <!-- Problem --->
    <input type = "radio" name = "something" id = "r1" class = "radio" value = "1" /><label for = "r1">One</label>
    <input type = "radio" name = "something" id = "r2" class = "radio" value = "2" /><label for = "r2">Two</label>
    <!-- Problem --->
    <button  type = "submit">Sign-up</button>
    <div class = "spacer"></div>


  </form>
</div>

Мне дали этот пример формы, однако я не могу добавить переключатели, чтобы они не испортились.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
755
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Вы назвали их так же, как текстовый ввод - замените name = "textfield" на name = "my_radio"

У вас также нет ввода для адреса электронной почты, поэтому ваши ярлыки не синхронизированы с вводом.

Проблема, о которой я говорю, - это расположение элементов.

Steve 24.10.2008 13:02

Ваш стиль #basic input дает всем вашим полям ввода в форме ширину 200 пикселей, включая ваши переключатели, создает новый стиль, например #basic input.radio, и дает переключателям индивидуальную ширину, например 20 пикселей (убедитесь, что вы поместили это после стиля ввода #basic) вам также нужно будет указать меньшую ширину для меток, которые связаны с переключателями, добавить к ним класс и уменьшить их ширину примерно до 40 пикселей.

Затем переключатели и связанные с ними метки должны выровняться друг с другом.

Спасибо за предложение, не могли бы вы предоставить пример исходного кода?

Steve 24.10.2008 13:18

В соответствии со спецификацией разрешено помещать элементы ввода формы внутри меток, которые на них ссылаются, например,

<label for = "input">Label: <input type = "radio" id = "input" name = "input" /></label>

Посмотрим, облегчит ли это укладку. (Должно.)

У вас есть входы формы, имеющие одинаковую ширину (200 пикселей) и плавающие влево, это также относится к переключателям.

Что-то вроде этого должно направить вас в правильном направлении

<style type = "text/css">
body{
    font-family:Helvetica, sans-serif; 
    font-size:12px;
}
p, h1, form, button{border:0; margin:0; padding:0;}
.spacer{clear:both; height:1px;}
/* ----------- My Form ----------- */
.myform{
    margin:0 auto;
    width:400px;
    padding:14px;
}
    /* ----------- basic ----------- */
    #basic{
        border:solid 2px #DEDEDE;
    }
    #basic h1 {
        font-size:14px;
        font-weight:bold;
        margin-bottom:8px;
    }
    #basic p{
        font-size:11px;
        color:#666666;
        margin-bottom:20px;
        border-bottom:solid 1px #dedede;
        padding-bottom:10px;
    }
    #basic label{
        font-weight:bold;
        text-align:right;
        width:140px;
        float:left;
    }
    #basic .small{
        color:#666666;
        display:block;
        font-size:11px;
        font-weight:normal;
        text-align:right;
        width:140px;
    }
    #basic input{
        float:left;
        width:200px;
        margin:2px 0 30px 10px;
    }
    #basic button{ 
        clear:both;
        margin-left:150px;
        background:#888888;
        color:#FFFFFF;
        border:solid 1px #666666;
        font-size:11px;
        font-weight:bold;
        padding:4px 6px;
    }
    #basic input.radio{
        width:50px;
        margin:2px 0 30px 10px;
    }
    #basic label.radio {
    width:40px;
    text-align:left;
    }
</style>

<div id = "basic" class = "myform">
  <form id = "form1" name = "form1" method = "post" action = "">
    <h1>Sign-up form</h1>
    <p>This is the basic look of my form without table</p>
    <label>Name
        <span class = "small">Add your name</span>
    </label>
    <input type = "text" name = "textfield" id = "textfield" />

    <label>Email
    <span class = "small">Add a valid address</span>
    </label>
    <input type = "text" name = "textfield" id = "textfield" />

    <label>Email
    <span class = "small">Add a valid address</span>
    </label>
    <!-- Problem --->
    <input type = "radio" name = "r1" id = "r1" class = "radio" value = "1" /><label class = "radio" for = "r1">One</label>
    <input type = "radio" name = "r2" id = "r2" class = "radio" value = "2" /><label class = "radio" for = "r2">Two</label>
    <!-- Problem --->
    <button  type = "submit">Sign-up</button>
    <div class = "spacer"></div>


  </form>
</div>
Ответ принят как подходящий

(в тегах стиля) добавьте эти новые правила стиля:

#basic input.radio
{
    width:20px;

}
#basic label.radiolabel
{
    width:40px;
    text-align:left;
    line-height:24px;
}

в вашем html:

добавьте новый класс к каждой метке, например:

<!-- Problem --->    
<input type = "radio" name = "textfield" id = "r1" class = "radio" value = "1" />
<label for = "r1" class = "radiolabel">One</label>    
<input type = "radio" name = "textfield" id = "r2" class = "radio" value = "2" />
<label for = "r2" class = "radiolabel">Two</label>    
<!-- Problem --->

edit: добавлена ​​высота строки к стилю метки :)

Чтобы исправить проблему с макетом, добавьте следующий CSS:

#basic input.radio { width:20px; }

Это исправит огромную ширину радиокнопок - они получали свою ширину из

#basic input { width:200px;}

делал ВСЕ входы шириной 200 пикселей.

В целом, ваше приложение идентификаторов и классов на самом деле не способствует повторному использованию, но это уже другая проблема.

Другие вопросы по теме