elementui响应式布局
ElementUI 响应式布局实现方法
ElementUI 基于 Vue.js,提供了一套响应式组件库,结合 CSS 媒体查询和栅格系统可实现灵活布局。
栅格系统布局
ElementUI 的 el-row 和 el-col 组件是响应式布局的核心。栅格系统将页面分为 24 列,通过配置不同断点的占比实现响应式。
<el-row :gutter="20">
<el-col :xs="24" :sm="12" :md="8" :lg="6">
<!-- 内容区域 -->
</el-col>
</el-row>
:gutter控制列间距:xs超小屏幕(<768px):sm小屏幕(≥768px):md中等屏幕(≥992px):lg大屏幕(≥1200px)
组件级响应式
部分 ElementUI 组件内置响应式行为,例如 el-dialog 可通过 width 设置百分比:
<el-dialog :width="mobile ? '90%' : '50%'">
<!-- 弹窗内容 -->
</el-dialog>
CSS 媒体查询辅助
自定义样式时可结合媒体查询增强响应式效果:

@media (max-width: 768px) {
.el-form-item__label {
float: none;
width: 100%;
}
}
实用技巧
-
使用
hidden属性控制元素显隐:<el-button :hidden="$store.state.isMobile"></el-button> -
动态切换组件类型:
<component :is="mobile ? 'el-select' : 'el-radio-group'"></component> -
监听窗口变化:

mounted() { window.addEventListener('resize', this.handleResize); }
注意事项
-
移动端需在
meta中设置 viewport:<meta name="viewport" content="width=device-width, initial-scale=1.0"> -
复杂场景建议结合 CSS Flex/Grid 布局
-
图标类组件可使用
el-icon的尺寸属性实现缩放
通过组合使用这些方法,可以构建适应不同屏幕尺寸的 ElementUI 应用界面。






