低代码Form Render如何动态切换表单布局样式?

极客艳清 阅读 29

用低代码表单引擎渲染的表单,想根据窗口宽度动态切换垂直/内联布局,但直接改class没效果

试过给表单包裹层动态绑定class:class={isMobile ? 'vertical' : 'inline'},样式表里写了不同的margin和display属性

但运行后发现布局没变化,控制台也没有报错,动态切换时元素class确实变了但样式没跟着变


<div :class="['form-container', isMobile ? 'layout-vertical' : 'layout-inline']">
  <render-form :schema="schema" />
</div>

.layout-vertical .form-item { margin-bottom: 20px; }
.layout-inline .form-item { display: inline-block; margin: 0 20px 20px 0; }
我来解答 赞 8 收藏
二维码
手机扫码查看
1 条解答
端木馨月
问题出在样式优先级不够,动态class的样式被组件内部样式覆盖了。加个更具体的选择器提升优先级:

.form-container.layout-vertical .form-item { margin-bottom: 20px; }
.form-container.layout-inline .form-item { display: inline-block; margin: 0 20px 20px 0; }

或者直接用important提权也行,不过不推荐。搞定。
点赞 3
2026-02-14 12:09