Семантически неверно помещать <div> или <span> внутри <button>?

Я хотел бы сделать следующее, но это семантически правильно?

<button>
  <div></div>
  <div></div>
</button>
 goodeye03 авг. 2017 г., 18:54
Чтобы прояснить это, заголовок вопроса запрашивает div или span, в примере просто div. Таким образом, ответы ниже говорят, что div неправильный, но span правильный.

Ответы на вопрос(5)

(скриншот изhttps://validator.w3.org/)

http://validator.w3.org/#validate_by_input+with_options

Вставьте это в прямой ввод и затем подтвердите.

<!DOCTYPE html>

<button>
  <div></div>
  <div></div>
</button>

Установите кодировку UTF8 и выберите HTML5 при тестировании на W3C.

 Leasye26 апр. 2018 г., 14:20
Div считается ошибкой, span принимаетсяvalidator.w3.org
 Oded Niv19 окт. 2016 г., 15:16
Элемент div не допускается как дочерний элемент button в этом контексте. (Подавление дальнейших ошибок из этого поддерева.)

что это еретично, но если вы хотите проверить, вы всегда можете использовать<span> элементы внутри вашей кнопки и стиль их как<div>:

button span {

  display: block;

}
<button>
  <span>I'm a div</span>
  <span>I'm a div</span>
  <span>I'm a div</span>
</button>

Это подтверждено сегодня. Будет ли это подтверждено через десять лет - это другая история ...

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

Тем не менее, неправильно размещать div внутри кнопки по причинам, не связанным с семантикой.Спецификация говорит о модели содержимого для кнопок:

Фразирование контента, но не должно быть никакого потомка интерактивного контента.

... span это выражение контента, а div - нет.

http://www.w3.org/TR/2012/WD-html5-20120329/the-button-element.html#the-button-element говорит, что<button> должен содержать только содержание фраз. Содержание фразы определяется как включающее<span> но нет<div>.

 Robert Brisita26 янв. 2017 г., 19:09
Подставьте «data-» для «data-ng-click», чтобы он проверил и продолжал работать с AngularJS.
 FrenkyB15 авг. 2016 г., 12:26
Ссылка в порядке, но она сообщает ng-click (угловое событие) как ошибку.

Ваш ответ на вопрос