Ответ 1
РАЗДЕЛ это просто тег HTML5. Поскольку HTML5 является относительно новым, многие разработчики используют его ненадлежащим образом, или вы увидите только части проекта, обновленные для использования новых тегов, в то время как остальные продолжают использовать теги DIV. Код, который вы предоставили и который использует SECTION, похоже, использует его в правильном месте и контексте, просто чтобы дать вам представление.
Прочтите эту короткую статью о теге SECTION и о том, когда его использовать, не думайте, что SECTION - это просто причудливое название для DIV: http://www.impressivewebs.com/html5-section/
Кроме того, никогда не повредит проверить спецификации: http://w3c.github.io/html/sections.html#the-section-element
Краткий ответ на ваш вопрос, однако, заключается в том, что практической разницы нет - тег SECTION будет вести себя точно так же, как тег DIV, с точки зрения того, как CSS влияет на него и как вы работаете с ним из javascript. Реальное различие заключается в том, как теги интерпретируются при создании структуры документа, например, с помощью программы чтения каналов.
data-*
- это новое дополнение HTML5 (статья), которое позволяет связывать произвольные данные с элементом HTML. Данные в атрибутах могут быть использованы javascript для реализации таких функций, как всплывающие подсказки или данные геолокации. Раньше такие данные включали скрытые дочерние элементы или данные JSON, или новый AJAX-запрос для получения таких данных с сервера. Теперь javascript может просто читать эти атрибуты данных, чтобы получить связанные данные о данном элементе. Я не уверен, как именно ваш конкретный скрипт использует data-role
, но не имеет значения, находится ли этот атрибут в DIV, SECTION, IMG или SPAN, поскольку спецификация идет.