2025-09-16 11:54:19 +00:00

53 lines
34 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>布局原理 | tmagic-editor</title>
<meta name="description" content="页面可视化平台">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/tmagic-editor/docs/assets/style.DbJLouJH.css" as="style">
<link rel="preload stylesheet" href="/tmagic-editor/docs/vp-icons.css" as="style">
<script type="module" src="/tmagic-editor/docs/assets/app.B23bkaPJ.js"></script>
<link rel="preload" href="/tmagic-editor/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/tmagic-editor/docs/assets/chunks/theme.BDElwKBS.js">
<link rel="modulepreload" href="/tmagic-editor/docs/assets/chunks/framework.BUS44qir.js">
<link rel="modulepreload" href="/tmagic-editor/docs/assets/guide_advanced_layout.md.DVdFJzAM.lean.js">
<meta name="theme-color" content="#646cff">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-5112b351><!--[--><!--]--><!--[--><span tabindex="-1" data-v-3cc6b2a3></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-3cc6b2a3>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5112b351 data-v-62886965><div class="VPNavBar" data-v-62886965 data-v-c0499fbb><div class="wrapper" data-v-c0499fbb><div class="container" data-v-c0499fbb><div class="title" data-v-c0499fbb><div class="VPNavBarTitle has-sidebar" data-v-c0499fbb data-v-0d118986><a class="title" href="/tmagic-editor/docs/" data-v-0d118986><!--[--><!--]--><!--[--><img class="VPImage logo" src="./favicon.png" alt data-v-500166df><!--]--><span data-v-0d118986>tmagic-editor</span><!--[--><!--]--></a></div></div><div class="content" data-v-c0499fbb><div class="content-body" data-v-c0499fbb><!--[--><!--]--><div class="VPNavBarSearch search" data-v-c0499fbb><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-c0499fbb data-v-a4cb6a8d><span id="main-nav-aria-label" class="visually-hidden" data-v-a4cb6a8d> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/tmagic-editor/docs/guide/" tabindex="0" data-v-a4cb6a8d data-v-958a0689><!--[--><span data-v-958a0689>文档</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/tmagic-editor/docs/api/editor/props.html" tabindex="0" data-v-a4cb6a8d data-v-958a0689><!--[--><span data-v-958a0689>API</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/tmagic-editor/docs/form-config/fields/text.html" tabindex="0" data-v-a4cb6a8d data-v-958a0689><!--[--><span data-v-958a0689>表单配置</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/Tencent/tmagic-editor/releases" target="_blank" rel="noreferrer" tabindex="0" data-v-a4cb6a8d data-v-958a0689><!--[--><span data-v-958a0689>更新日志</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://tencent.github.io/tmagic-editor/playground/index.html" target="_blank" rel="noreferrer" tabindex="0" data-v-a4cb6a8d data-v-958a0689><!--[--><span data-v-958a0689>Playground</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-c0499fbb data-v-43c0048b><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-43c0048b data-v-3bd15d6c data-v-2aa49ef3><span class="check" data-v-2aa49ef3><span class="icon" data-v-2aa49ef3><!--[--><span class="vpi-sun sun" data-v-3bd15d6c></span><span class="vpi-moon moon" data-v-3bd15d6c></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-c0499fbb data-v-d311d942 data-v-104c9a5e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Tencent/tmagic-editor" aria-label="github" target="_blank" rel="noopener" data-v-104c9a5e data-v-e3028f64><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-c0499fbb data-v-5021a8fa data-v-e50bfc1c><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-e50bfc1c><span class="vpi-more-horizontal icon" data-v-e50bfc1c></span></button><div class="menu" data-v-e50bfc1c><div class="VPMenu" data-v-e50bfc1c data-v-0c41071f><!----><!--[--><!--[--><!----><div class="group" data-v-5021a8fa><div class="item appearance" data-v-5021a8fa><p class="label" data-v-5021a8fa>Appearance</p><div class="appearance-action" data-v-5021a8fa><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-5021a8fa data-v-3bd15d6c data-v-2aa49ef3><span class="check" data-v-2aa49ef3><span class="icon" data-v-2aa49ef3><!--[--><span class="vpi-sun sun" data-v-3bd15d6c></span><span class="vpi-moon moon" data-v-3bd15d6c></span><!--]--></span></span></button></div></div></div><div class="group" data-v-5021a8fa><div class="item social-links" data-v-5021a8fa><div class="VPSocialLinks social-links-list" data-v-5021a8fa data-v-104c9a5e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Tencent/tmagic-editor" aria-label="github" target="_blank" rel="noopener" data-v-104c9a5e data-v-e3028f64><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-c0499fbb data-v-44667623><span class="container" data-v-44667623><span class="top" data-v-44667623></span><span class="middle" data-v-44667623></span><span class="bottom" data-v-44667623></span></span></button></div></div></div></div><div class="divider" data-v-c0499fbb><div class="divider-line" data-v-c0499fbb></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5112b351 data-v-2b53824b><div class="container" data-v-2b53824b><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2b53824b><span class="vpi-align-left menu-icon" data-v-2b53824b></span><span class="menu-text" data-v-2b53824b>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2b53824b data-v-7fc0da3d><button data-v-7fc0da3d>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5112b351 data-v-9d091a31><div class="curtain" data-v-9d091a31></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-9d091a31><span class="visually-hidden" id="sidebar-aria-label" data-v-9d091a31> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-56448429><section class="VPSidebarItem level-0" data-v-56448429 data-v-0abd57c7><div class="item" role="button" tabindex="0" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><h2 class="text" data-v-0abd57c7>文档</h2><!----></div><div class="items" data-v-0abd57c7><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/introduction.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>介绍</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>快速开始</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/conception.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>基础概念</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/publish.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>页面发布</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/runtime.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>RUNTIME</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/component.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>组件开发</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/editor-expand.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>编辑器扩展</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/migration.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>升级到1.5.x</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-56448429><section class="VPSidebarItem level-0 has-active" data-v-56448429 data-v-0abd57c7><div class="item" role="button" tabindex="0" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><h2 class="text" data-v-0abd57c7>进阶指南</h2><!----></div><div class="items" data-v-0abd57c7><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/js-schema.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>JS Schema</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/layout.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>布局原理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/page.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>页面渲染</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/coupling.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>联动原理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/code-block.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>代码块</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/data-source.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>数据源</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/tmagic-ui.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>@tmagic/ui</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/advanced/tmagic-form.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>@tmagic/form</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-56448429><section class="VPSidebarItem level-0" data-v-56448429 data-v-0abd57c7><div class="item" role="button" tabindex="0" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><h2 class="text" data-v-0abd57c7>教程</h2><!----></div><div class="items" data-v-0abd57c7><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/tutorial/" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>写在前面</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/tutorial/hello-world.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>1.Hello World</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/tutorial/runtime.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>2.Runtime</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0abd57c7 data-v-0abd57c7><div class="item" data-v-0abd57c7><div class="indicator" data-v-0abd57c7></div><a class="VPLink link link" href="/tmagic-editor/docs/guide/tutorial/render.html" data-v-0abd57c7><!--[--><p class="text" data-v-0abd57c7>3.DSL解析渲染</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5112b351 data-v-3820a0fe><div class="VPDoc has-sidebar has-aside" data-v-3820a0fe data-v-1e194a6d><!--[--><!--]--><div class="container" data-v-1e194a6d><div class="aside" data-v-1e194a6d><div class="aside-curtain" data-v-1e194a6d></div><div class="aside-container" data-v-1e194a6d><div class="aside-content" data-v-1e194a6d><div class="VPDocAside" data-v-1e194a6d data-v-a6ddffa9><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-a6ddffa9 data-v-1ef17039><div class="content" data-v-1ef17039><div class="outline-marker" data-v-1ef17039></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-1ef17039>On this page</div><ul class="VPDocOutlineItem root" data-v-1ef17039 data-v-6b460e5b><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-a6ddffa9></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-1e194a6d><div class="content-container" data-v-1e194a6d><!--[--><!--]--><main class="main" data-v-1e194a6d><div style="position:relative;" class="vp-doc _tmagic-editor_docs_guide_advanced_layout" data-v-1e194a6d><div><h1 id="布局原理" tabindex="-1">布局原理 <a class="header-anchor" href="#布局原理" aria-label="Permalink to &quot;布局原理&quot;"></a></h1><p>tmagic-editor的布局实现方式<strong>关键在于将布局配置指定在容器上,对容器内的所有子组件生效</strong>这是tmagic-editor页面可以支持各种布局方式混合使用的核心方法。</p><h2 id="容器" tabindex="-1">容器 <a class="header-anchor" href="#容器" aria-label="Permalink to &quot;容器&quot;"></a></h2><p>前面概念介绍中有提到tmagic-editor的容器是组件的基础。组件必属于某个容器容器下可以放组件也可以放容器。页面本身就是一个容器是所有容器和组件的根整个页面的容器和组件组成一个树状结构。在 DSL 配置中,表现为:</p><div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">123456</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;page&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> items: [{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">222222</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;comp-A&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }, {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">333333</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;comp-B&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}]</span></span></code></pre></div><h2 id="顺序-绝对定位" tabindex="-1">顺序/绝对定位 <a class="header-anchor" href="#顺序-绝对定位" aria-label="Permalink to &quot;顺序/绝对定位&quot;"></a></h2><p>组件是绝对或者顺序定位,体现在组件的<strong>直属父级容器</strong>上,比如我们将 page 设置为绝对定位,则它的子组件,全都为绝对定位。在 DSL 配置中,表现为:</p><div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">123456</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;page&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> layout: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;absolute&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> items: [{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">222222</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;comp-A&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> style: {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> position: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;absolute&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }, {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">333333</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;comp-B&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> style: {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> position: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;absolute&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }]</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}]</span></span></code></pre></div><p>所以,我们对绝对/顺序排布的配置描述 layout是存在于容器上的。</p><h2 id="混合布局" tabindex="-1">混合布局 <a class="header-anchor" href="#混合布局" aria-label="Permalink to &quot;混合布局&quot;"></a></h2><p>因为tmagic-editor的布局配置是指定在容器上的所以tmagic-editor的设计方式就可以支持在页面中实现各种混合布局的嵌套。</p><img src="https://image.video.qpic.cn/oa_88b7d-37_1417201939_1636341538475155?imageView2/q/70"></div></div></main><footer class="VPDocFooter" data-v-1e194a6d data-v-dd935c2d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-dd935c2d><span class="visually-hidden" id="doc-footer-aria-label" data-v-dd935c2d>Pager</span><div class="pager" data-v-dd935c2d><a class="VPLink link pager-link prev" href="/tmagic-editor/docs/guide/advanced/js-schema.html" data-v-dd935c2d><!--[--><span class="desc" data-v-dd935c2d>Previous page</span><span class="title" data-v-dd935c2d>JS Schema</span><!--]--></a></div><div class="pager" data-v-dd935c2d><a class="VPLink link pager-link next" href="/tmagic-editor/docs/guide/advanced/page.html" data-v-dd935c2d><!--[--><span class="desc" data-v-dd935c2d>Next page</span><span class="title" data-v-dd935c2d>页面渲染</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5112b351 data-v-3a1978ed><div class="container" data-v-3a1978ed><p class="message" data-v-3a1978ed>Powered by 腾讯视频会员平台技术中心</p><p class="copyright" data-v-3a1978ed>Copyright (C) 2025 Tencent.</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"api_editor_codeblockservicemethods.md\":\"DzqMdyoI\",\"api_editor_componentlistservicemethods.md\":\"DGW1vEcP\",\"api_editor_datasourceservicemethods.md\":\"PU3ihNkQ\",\"api_editor_editorserviceevents.md\":\"Bi_L7sNm\",\"api_editor_editorservicemethods.md\":\"CwcIvSEE\",\"api_editor_events.md\":\"DNVQEesm\",\"api_editor_eventsservicemethods.md\":\"Omw-3rU-\",\"api_editor_historyserviceevents.md\":\"BkMkuslw\",\"api_editor_historyservicemethods.md\":\"DLgB-H6D\",\"api_editor_props.md\":\"BrXcrjpa\",\"api_editor_propsserviceevents.md\":\"CTDRnmSP\",\"api_editor_propsservicemethods.md\":\"C9Ko54l6\",\"api_editor_slots.md\":\"ZN6SlSmI\",\"api_editor_storageservicemethods.md\":\"BhZsHgaV\",\"api_editor_uiservicemethods.md\":\"C50loAuI\",\"api_form_form-dialog-events.md\":\"BukM0n-V\",\"api_form_form-dialog-methods.md\":\"5K1k3ajE\",\"api_form_form-dialog-props.md\":\"BP834QEt\",\"api_form_form-events.md\":\"C3xZ-OOc\",\"api_form_form-methods.md\":\"GDJeQmsP\",\"api_form_form-props.md\":\"ChF66zbE\",\"api_stage_coreevents.md\":\"CJS8oUiv\",\"api_stage_coremethods.md\":\"Crcc-1vc\",\"api_table_events.md\":\"5d7mIgYf\",\"api_table_methods.md\":\"704AMyYJ\",\"api_table_props.md\":\"Z7S4FphK\",\"form-config_compare.md\":\"ChkrRXAG\",\"form-config_fields_cascader.md\":\"Dbb-e42W\",\"form-config_fields_checkbox.md\":\"DjMTKluz\",\"form-config_fields_color-picker.md\":\"yqQ-DMfM\",\"form-config_fields_date-picker.md\":\"CJ09pORX\",\"form-config_fields_datetime-picker.md\":\"Cc7cmwWi\",\"form-config_fields_display.md\":\"F0WP_S8s\",\"form-config_fields_hidden.md\":\"AYN3ialw\",\"form-config_fields_link.md\":\"BVUtVPSc\",\"form-config_fields_number.md\":\"CQUJh00D\",\"form-config_fields_radio.md\":\"01LIrZOa\",\"form-config_fields_select.md\":\"3EXaSg15\",\"form-config_fields_switch.md\":\"BsiBw5N7\",\"form-config_fields_text.md\":\"DugLaj60\",\"form-config_fields_textarea.md\":\"BsfIpx3Q\",\"form-config_fields_time-picker.md\":\"DucKkWKz\",\"form-config_layout.md\":\"OZTjvEPX\",\"form-config_relate.md\":\"MzeOlWBa\",\"guide_advanced_code-block.md\":\"ea5dq7oK\",\"guide_advanced_coupling.md\":\"DBWQ5FPk\",\"guide_advanced_data-source.md\":\"D-_0MQuc\",\"guide_advanced_js-schema.md\":\"Bne_-B3G\",\"guide_advanced_layout.md\":\"DVdFJzAM\",\"guide_advanced_page.md\":\"DJnk13yd\",\"guide_advanced_tmagic-form.md\":\"DTXAnxwn\",\"guide_advanced_tmagic-ui.md\":\"BQ5SEbRb\",\"guide_component.md\":\"CaeAnGdt\",\"guide_conception.md\":\"BsT_G64M\",\"guide_editor-expand.md\":\"Bsd0qfdU\",\"guide_index.md\":\"CR8uihwJ\",\"guide_introduction.md\":\"XlEb_7NU\",\"guide_migration.md\":\"Cqs1j436\",\"guide_publish.md\":\"Kr0ZU_xm\",\"guide_runtime.md\":\"Bi6536qn\",\"guide_tutorial_hello-world.md\":\"CencYy82\",\"guide_tutorial_index.md\":\"KGCWmTCF\",\"guide_tutorial_render.md\":\"DoDvP2H_\",\"guide_tutorial_runtime.md\":\"BtAV0Fnv\",\"index.md\":\"C2BvvUSA\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"tmagic-editor\",\"description\":\"页面可视化平台\",\"base\":\"/tmagic-editor/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"./favicon.png\",\"search\":{\"provider\":\"local\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Tencent/tmagic-editor\"}],\"footer\":{\"message\":\"Powered by 腾讯视频会员平台技术中心\",\"copyright\":\"Copyright (C) 2025 Tencent.\"},\"nav\":[{\"text\":\"文档\",\"link\":\"/guide/\",\"activeMatch\":\"/guide/\"},{\"text\":\"API\",\"link\":\"/api/editor/props\",\"activeMatch\":\"/api/\"},{\"text\":\"表单配置\",\"link\":\"/form-config/fields/text\",\"activeMatch\":\"/form-config/\"},{\"text\":\"更新日志\",\"link\":\"https://github.com/Tencent/tmagic-editor/releases\"},{\"text\":\"Playground\",\"link\":\"https://tencent.github.io/tmagic-editor/playground/index.html\"}],\"sidebar\":{\"/guide/\":[{\"text\":\"文档\",\"items\":[{\"text\":\"介绍\",\"link\":\"/guide/introduction.md\"},{\"text\":\"快速开始\",\"link\":\"/guide/\"},{\"text\":\"基础概念\",\"link\":\"/guide/conception.md\"},{\"text\":\"页面发布\",\"link\":\"/guide/publish.md\"},{\"text\":\"RUNTIME\",\"link\":\"/guide/runtime.md\"},{\"text\":\"组件开发\",\"link\":\"/guide/component.md\"},{\"text\":\"编辑器扩展\",\"link\":\"/guide/editor-expand.md\"},{\"text\":\"升级到1.5.x\",\"link\":\"/guide/migration.md\"}]},{\"text\":\"进阶指南\",\"items\":[{\"text\":\"JS Schema\",\"link\":\"/guide/advanced/js-schema.md\"},{\"text\":\"布局原理\",\"link\":\"/guide/advanced/layout.md\"},{\"text\":\"页面渲染\",\"link\":\"/guide/advanced/page.md\"},{\"text\":\"联动原理\",\"link\":\"/guide/advanced/coupling.md\"},{\"text\":\"代码块\",\"link\":\"/guide/advanced/code-block.md\"},{\"text\":\"数据源\",\"link\":\"/guide/advanced/data-source.md\"},{\"text\":\"@tmagic/ui\",\"link\":\"/guide/advanced/tmagic-ui.md\"},{\"text\":\"@tmagic/form\",\"link\":\"/guide/advanced/tmagic-form.md\"}]},{\"text\":\"教程\",\"items\":[{\"text\":\"写在前面\",\"link\":\"/guide/tutorial/\"},{\"text\":\"1.Hello World\",\"link\":\"/guide/tutorial/hello-world.md\"},{\"text\":\"2.Runtime\",\"link\":\"/guide/tutorial/runtime.md\"},{\"text\":\"3.DSL解析渲染\",\"link\":\"/guide/tutorial/render.md\"}]}],\"/api/\":[{\"text\":\"编辑器\",\"items\":[{\"text\":\"Editor组件\",\"items\":[{\"text\":\"props\",\"link\":\"/api/editor/props.md\"},{\"text\":\"slots\",\"link\":\"/api/editor/slots.md\"},{\"text\":\"events\",\"link\":\"/api/editor/events.md\"}]},{\"text\":\"editorService\",\"items\":[{\"text\":\"方法\",\"link\":\"/api/editor/editorServiceMethods.md\"},{\"text\":\"事件\",\"link\":\"/api/editor/editorServiceEvents.md\"}]},{\"text\":\"propsService\",\"items\":[{\"text\":\"方法\",\"link\":\"/api/editor/propsServiceMethods.md\"},{\"text\":\"事件\",\"link\":\"/api/editor/propsServiceEvents.md\"}]},{\"text\":\"historyService\",\"items\":[{\"text\":\"方法\",\"link\":\"/api/editor/historyServiceMethods.md\"},{\"text\":\"事件\",\"link\":\"/api/editor/historyServiceEvents.md\"}]},{\"text\":\"eventsService\",\"link\":\"/api/editor/eventsServiceMethods.md\"},{\"text\":\"uiService\",\"link\":\"/api/editor/uiServiceMethods.md\"},{\"text\":\"codeBlockService\",\"link\":\"/api/editor/codeBlockServiceMethods.md\"},{\"text\":\"componentListService\",\"link\":\"/api/editor/componentListServiceMethods.md\"},{\"text\":\"storageService\",\"link\":\"/api/editor/storageServiceMethods.md\"}]},{\"text\":\"表单\",\"items\":[{\"text\":\"Form组件\",\"items\":[{\"text\":\"props\",\"link\":\"/api/form/form-props\"},{\"text\":\"methods\",\"link\":\"/api/form/form-methods\"},{\"text\":\"events\",\"link\":\"/api/form/form-events\"}]},{\"text\":\"FormDialog组件\",\"items\":[{\"text\":\"props\",\"link\":\"/api/form/form-dialog-props\"},{\"text\":\"methods\",\"link\":\"/api/form/form-dialog-methods\"},{\"text\":\"events\",\"link\":\"/api/form/form-dialog-events\"}]}]},{\"text\":\"表格\",\"items\":[{\"text\":\"Table组件\",\"items\":[{\"text\":\"props\",\"link\":\"/api/table/props\"},{\"text\":\"methods\",\"link\":\"/api/table/methods\"},{\"text\":\"events\",\"link\":\"/api/table/events\"}]}]},{\"text\":\"stage\",\"items\":[{\"text\":\"StageCore\",\"items\":[{\"text\":\"方法\",\"link\":\"/api/stage/coreMethods\"},{\"text\":\"事件\",\"link\":\"/api/stage/coreEvents\"}]}]}],\"/form-config/\":[{\"text\":\"基础配置\",\"items\":[{\"text\":\"Input输入框\",\"link\":\"/form-config/fields/text.md\"},{\"text\":\"Textarea文本域\",\"link\":\"/form-config/fields/textarea.md\"},{\"text\":\"InputNumber计数器\",\"link\":\"/form-config/fields/number.md\"},{\"text\":\"Display只读文本\",\"link\":\"/form-config/fields/display.md\"},{\"text\":\"Hidden隐藏域\",\"link\":\"/form-config/fields/hidden.md\"},{\"text\":\"Link链接\",\"link\":\"/form-config/fields/link.md\"},{\"text\":\"Checkbox多选框\",\"link\":\"/form-config/fields/checkbox.md\"},{\"text\":\"Radio单选框\",\"link\":\"/form-config/fields/radio.md\"},{\"text\":\"Switch开关\",\"link\":\"/form-config/fields/switch.md\"},{\"text\":\"Select选择器\",\"link\":\"/form-config/fields/select.md\"},{\"text\":\"Cascader级联选择器\",\"link\":\"/form-config/fields/cascader.md\"},{\"text\":\"ColorPicker颜色选择器\",\"link\":\"/form-config/fields/color-picker.md\"},{\"text\":\"DatePick日期选择器\",\"link\":\"/form-config/fields/date-picker.md\"},{\"text\":\"DatetimePick日期时间选择器\",\"link\":\"/form-config/fields/datetime-picker.md\"},{\"text\":\"TimePick时间选择器\",\"link\":\"/form-config/fields/time-picker.md\"}]},{\"text\":\"布局配置\",\"items\":[{\"text\":\"布局\",\"link\":\"/form-config/layout.md\"}]},{\"text\":\"联动配置\",\"items\":[{\"text\":\"联动\",\"link\":\"/form-config/relate.md\"}]},{\"text\":\"表单对比\",\"items\":[{\"text\":\"表单对比\",\"link\":\"/form-config/compare.md\"}]}]}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>