Skip to page content

全局节点(Global Nodes)

某些 Quasar 组件和插件会渲染在你应用的挂载点之外:它们会创建一个节点,将其追加到 <body>(在对话框内部打开的菜单则会进入该对话框),然后把内容渲染进去。这些就是全局节点。

  • QDialog、QMenu、QTooltip、QPopupProxy 以及基于它们构建的任何组件(QSelect、QBtnDropdown 等)在显示时都会各自获得一个 #q-portal--dialog--N、#q-portal--menu--N 或 #q-portal--tooltip--N 节点
  • Dialog 插件每打开一个对话框就会获得一个 #q-portal--dialog--N 节点
  • Notify 插件渲染进 #q-notify
  • Loading 插件渲染进 #q-loading
  • LoadingBar 插件渲染进 #q-loading-bar

Portal 节点在组件首次显示时创建,在组件卸载时移除;插件节点则在应用的整个生命周期内一直存在。

自定义 CSS 类

由于全局节点位于你应用的根元素之外,作用域限定在该元素上的 CSS 无法触及它们。你可以让 Quasar 为它创建的每个全局节点应用一个你自己的类:


// quasar.config 文件

framework: {
  config: {
    globalNodes: {
      class: 'my-app' // 一个或多个类,以空格分隔
    }
  }
}

然后在你的 CSS 中定位这些节点:

.my-app .q-dialog__inner {
  padding: 24px;
}