el-form每行显示两列底部按钮居中效果的实现

下面我将详细讲解“el-form每行显示两列底部按钮居中效果的实现”的完整攻略。

1. 使用 element-ui 中的 el-form 搭建表单

在使用 element-ui 的 el-form 前,需要先引入 element-ui 库和样式文件,并在 Vue 中进行配置。在添加表单元素时,可以利用 el-col、el-row 以及 span 属性来设置每行的列数和每列元素所占的宽度比例。例如:

<template>
  <el-form ref="form" :model="formData" label-width="100px">
    <el-row>
      <el-col :span="12">
        <el-form-item label="用户名" prop="username">
          <el-input v-model="formData.username"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="密码" prop="password">
          <el-input type="password" v-model="formData.password"></el-input>
        </el-form-item>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="12">
        <el-form-item label="邮箱" prop="email">
          <el-input v-model="formData.email"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="性别" prop="gender">
          <el-radio-group v-model="formData.gender">
            <el-radio :label="1">男</el-radio>
            <el-radio :label="2">女</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-col>
    </el-row>
  </el-form>
</template>

2. 在表单底部添加两个按钮

可以利用 el-form 的 slot 属性来自定义表单中的内容。在此我们可以使用 slot="footer" 在表单底部添加两个居中显示的按钮。例如:

<template>
  <el-form ref="form" :model="formData" label-width="100px">
    <el-row>
      <el-col :span="12">
        <el-form-item label="用户名" prop="username">
          <el-input v-model="formData.username"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="密码" prop="password">
          <el-input type="password" v-model="formData.password"></el-input>
        </el-form-item>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="12">
        <el-form-item label="邮箱" prop="email">
          <el-input v-model="formData.email"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="性别" prop="gender">
          <el-radio-group v-model="formData.gender">
            <el-radio :label="1">男</el-radio>
            <el-radio :label="2">女</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-col>
    </el-row>
    <div slot="footer" class="dialog-footer">
      <el-button @click="dialogVisible = false">取消</el-button>
      <el-button type="primary" @click="submitForm">提交</el-button>
    </div>
  </el-form>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const dialogVisible = ref(false);
    const formData = ref({
      username: '',
      password: '',
      email: '',
      gender: '',
    });

    const submitForm = () => {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('submit!');
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    };

    return {
      dialogVisible,
      formData,
      submitForm,
    };
  },
};
</script>

3. CSS 样式调整

为了实现按钮的居中效果,我们需要对底部的 div 标签添加一些样式设置。例如:

.dialog-footer {
  text-align: center;
  margin-top: 20px;
  padding: 10px 0;
  border-top: 1px solid #ddd;
}

这样就可以实现 el-form 每行显示两列底部按钮居中效果的实现。

另外还有一种方法是利用 flex 布局来实现。具体方法可以参考下面的示例代码:

<template>
  <el-form ref="form" :model="formData" label-width="100px">
    <el-row class="form-row">
      <el-col :span="12">
        <el-form-item label="用户名" prop="username">
          <el-input v-model="formData.username"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="密码" prop="password">
          <el-input type="password" v-model="formData.password"></el-input>
        </el-form-item>
      </el-col>
    </el-row>
    <el-row class="form-row">
      <el-col :span="12">
        <el-form-item label="邮箱" prop="email">
          <el-input v-model="formData.email"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="性别" prop="gender">
          <el-radio-group v-model="formData.gender">
            <el-radio :label="1">男</el-radio>
            <el-radio :label="2">女</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-col>
    </el-row>
    <div class="form-footer">
      <el-button @click="dialogVisible = false">取消</el-button>
      <el-button type="primary" @click="submitForm">提交</el-button>
    </div>
  </el-form>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const dialogVisible = ref(false);
    const formData = ref({
      username: '',
      password: '',
      email: '',
      gender: '',
    });

    const submitForm = () => {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('submit!');
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    };

    return {
      dialogVisible,
      formData,
      submitForm,
    };
  },
};
</script>

<style>
.form-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.form-row el-col {
  width: 48%;
}
.form-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}
.form-footer el-button {
  margin: 0 10px;
}
</style>

以上两种方法都可以实现表单每行显示两列以及底部按钮居中的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:el-form每行显示两列底部按钮居中效果的实现 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 整理关于Bootstrap排版的慕课笔记

    整理关于Bootstrap排版的慕课笔记的完整攻略包括以下步骤: 1. 学习Bootstrap基本排版知识 在整理关于Bootstrap排版的慕课笔记前,我们首先需要熟悉Bootstrap基本排版常识,包括如何使用Bootstrap的网格系统、内外边距、字体、颜色等基本排版元素。可以通过Bootstrap官网的相关文档进行学习和练习。 2. 找到优质的慕课笔…

    css 2023年6月10日
    00
  • CSS画出一个可爱神奇的多啦A梦

    关于如何用CSS画出一个可爱神奇的多啦A梦,我将逐步讲解攻略: 步骤一:准备工作 在开始之前,需要准备好多啦A梦的素材图,以便于参考。同时,需要先搭建好HTML结构,可以使用一个div容器来包含绘制多啦A梦的其他元素。 步骤二:绘制身体 使用CSS中的border-radius属性设置圆角,再使用背景色来填充身体。 .doraemon { width: 80…

    css 2023年6月10日
    00
  • CSS字体属性全解析

    CSS字体属性全解析 在CSS中,字体属性是一组用于控制文本字体的属性。本攻略将详细讲解CSS字体属性,包括基本原理、使用方法和示例说明。 1. 基本原理 CSS字体属性是一组用于控制文本字体的属性,包括字体类型、字体大小、字体样式、字体粗细等。具体来说,CSS字体属性包括以下几个: font-family:字体类型。 font-size:字体大小。 fon…

    css 2023年5月18日
    00
  • 运用CSS methodologies去实现模块化的方法示例

    在运用CSS methodologies去实现模块化的方法中,我们需要遵循一定的规范和流程,这样可以让我们的代码更加清晰和易于维护。下面是一个简单的示例来展示如何使用CSS methodologies去实现模块化。 方法一: BEM(Block Element Modifier) BEM是一种CSS框架,通过定义块、元素和修饰符,使得HTML元素易于维护和理…

    css 2023年6月10日
    00
  • 使用CSS的position属性控制页面布局的入门教程

    关于使用CSS的position属性控制页面布局,下面是一个完整攻略: 一、什么是position属性 position是CSS的一个布局属性,它可以用来控制元素的定位方式。常见的定位方式有三种:相对定位(relative)、绝对定位(absolute)和固定定位(fixed)。 相对定位是指相对于元素原来的位置进行定位,元素所占的空间始终保留在文档流中,通…

    css 2023年6月9日
    00
  • AngularJS中的路由使用及实现代码

    AngularJS中的路由是实现单页应用(SPA)的关键。通过使用路由,可以让用户在不刷新页面的情况下,在不同的视图之间进行切换和导航。本文将详细讲解如何使用AngularJS进行路由,并提供两个示例。 第一步:导入依赖 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/…

    css 2023年6月9日
    00
  • CSS图片响应式 垂直水平居中

    CSS图片响应式垂直水平居中是前端开发中常见的需求之一,下面将详细讲解实现的完整攻略。 1. 使用CSS的transform属性实现 使用CSS的Transform属性,可以轻松实现图片的水平垂直居中。具体步骤如下: 设置父容器为相对定位,子容器为绝对定位; 子容器的top和left属性设置为50%; 使用Transform属性的translate(-50%…

    css 2023年6月11日
    00
  • 真正了解CSS3背景下的@font face规则

    以下是关于“真正了解CSS3背景下的@font face规则”的完整攻略: 1. 了解@font-face规则 @font-face规则是CSS3中用来定义自定义字体的方法。它允许我们将自定义字体加载到网页上,而不必决定与用户计算机上预安装的字体的权衡。@font-face允许我们使用网络上的字体,并将它们应用于我们的网站中。 下面是@font-face规则…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部