Имеет использование <br/> тег между <маркировка> и <вход> хорошая практика?

Поля в моей форме имеют маркировку, некоторый текст справки, некоторый текст в качестве примера и некоторый контекстный текст.

<!--With Help and Example-->
<li>
    <label for="ingredients">Ingredients</label>
    <br/><!--Is this good practice?-->
    <span class="help">Enter one ingredient per line.</span>
    <br/>
    <textarea id="ingredients" name="ingredients"></textarea>
    <br/>
    <span class="example"><b>Example:</b><br/>1 Cup of Flour<br/>Pinch of Salt<br/>1 Tbsp of Paprika</span>

<!--With context-->
<li>
   <label for="yield">Yield</label>
   <br /> <!--Wish labels were block and you had to style them to be inline-->
   <input type="number" id="yield" name="yield" />
   <span class="context"> servings.</span>
</li>

Когда я смотрю на него нестилизованный, это сводит меня с ума как все эти вещи, выполненные вместе на той же строке.

Я, возможно, предложил решение своего вопроса при вводе. Я думаю, что мог бы использовать <p> для моей справки и текста в качестве примера. Мне все еще не нравится, который маркирует, всегда находятся на той же строке как вход.

7
задан Josh Darnell 13 January 2012 в 13:28
поделиться

5 ответов

Если быть очень педантичным, то почти все случаи использования
являются "плохим HTML".
означает семантический перенос строки. Другими словами, когда удаление
изменит смысл содержания. Такие разрывы встречаются только в поэзии/лирике и почтовых адресах.

Того же результата можно добиться, сделав так, чтобы другие элементы внутри

  • имели стилизацию display:block.

  • 12
    ответ дан 6 December 2019 в 07:24
    поделиться

    "Плохой" в смысле недействительный? Нет. "Плохо" в смысле несемантично? Да.

    Лучшим способом сделать это было бы обернуть элементы label в элементы p. В конце концов, это параграфы. (Кроме того, метки - это не то, что должно быть блочными элементами, это элемент инлайн, потому что он придает цель инлайн-тексту, так же, как это делает em или элемент HTML5 time - блочный элемент делает больше. Стилизуйте его как блочный элемент с помощью CSS)

    Редактировать: См. также ответ Alohci, объясняющий, почему
    здесь используется неправильно.

    3
    ответ дан 6 December 2019 в 07:24
    поделиться

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

    2
    ответ дан 6 December 2019 в 07:24
    поделиться

    Если вы имеете в виду "плохой" в смысле недействительный, согласно валидатору W3, то нет.
    разрешены между элементами и .

    3
    ответ дан 6 December 2019 в 07:24
    поделиться

    Само по себе это неплохо, но вы должны использовать CSS для стилизации (например, макета). Это упрощает чтение кода. Например.

    CSS

    <style type="text/css">
      #myrecipies label,
      #myrecipies li:first-child span:first-child,
      #myrecipies textarea {
        display: block;
      }
    </style>
    

    HTML

    <ul id="myrecipies">
      <li>
        <label for="ingredients">Ingredients</label>
        <span class="help">Enter one ingredient per line.</span>
        <textarea id="ingredients" name="ingredients"></textarea>
        <span class="example"><b>Example:</b><br/>1 Cup of Flour<br/>Pinch of Salt<br/>1 Tbsp of Paprika</span>
      </li>
      <li>
       <label for="yield">Yield</label>
       <input type="number" id="yield" name="yield" />
       <span class="context"> servings.</span>
      </li>
    </ul>
    

    Этот код в действии .

    4
    ответ дан 6 December 2019 в 07:24
    поделиться