Drupal 6、7 和 8 之间的主题差异
这是 Drupal 8 中一些最显著的变化列表,这些变化会影响到主题开发。
更多信息
1. Drupal 8 默认输出语义化的 HTML5 标记(参见 Drupal 8 HTML5 倡议),而 Drupal 6 和 7 默认是 XHTML。
2. 除了 jQuery v2.x 之外,Drupal 8 还包含更多前端库,例如 Modernizr、Underscore.js 和 Backbone.js。
3. Drupal 8 的核心模块 RDF 输出 schema.org 标记。
4. Drupal 8 改善了无障碍性,广泛使用了 WAI-ARIA 属性。
5. Drupal 8 引入了 Twig,取代了 PHPTemplate 作为默认的主题引擎。这意味着 theme_* 函数和基于 PHP 的 *.tpl.php 文件被替换为 *.html.twig 模板。
6. Drupal 8 默认启用性能优化功能,例如 CSS 和 JavaScript 聚合。
7. Drupal 8 带有新的 UI 元素,你可以在自己的管理界面中使用,包括模态对话框和拖放按钮。
8. Drupal 8 提供了响应式特性,例如 响应式主题、工具栏、图片和表格。
9. 在 Drupal 6 和 7 中,如果你想为特定页面添加 CSS 或 JS,需要使用 drupal_add_css() 和 drupal_add_js()。在 Drupal 8 中,这被替换为通过库在渲染数组的 #attached 属性中添加 JS / CSS 资源。
10. Drupal 8 不再支持 IE 6、7 和 8,这使得能够使用 jQuery 2.0 及其他假定支持现代 HTML5/CSS3 浏览器的代码。
11. Drupal 8 不支持 不支持 SVG 的浏览器(包括 IE8 和 Android 浏览器 2.3)。
12. Drupal 8 的 CSS 中使用的 ID 比 Drupal 7 更少。
13. Drupal 8 的 CSS 文件结构 基于 SMACSS 和 BEM。
14. Drupal 8 的 CSS 使用 CSS3 伪选择器。
15. Drupal 8 带有 Classy 基础主题,它在标记中注入类并包含相应的 CSS。这将取代许多之前在核心模块中的预处理函数和 CSS 文件。
16. Drupal 8 将 CSS 类从预处理函数移动到 Twig 模板中。
17. Drupal 8 使用 断点媒体查询 来控制网站在不同设备上的外观。
Drupal 7 与 Drupal 8 之间的 CSS 类变化
菜单
D7:
.menu li.expanded .menu li.collapsed .menu li.leaf .menu li.active-trail .menu li.first .menu li.last
D8:
.menu-item--expanded .menu-item--collapsed .menu-item--active-trail .menu-item:first-child .menu-item:last-child
.menu-item--leaf 很少使用,因此被移除。如果需要,可以加回来。参见示例 https://www.drupal.org/node/2425691#comment-9629101
@todo 在本文档中替换为引用链接。