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

yizhihongxing

下面我将详细讲解“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日

相关文章

  • JavaScript让网页出现渐隐渐显背景颜色的方法

    首先,在HTML文件中创建一个简单的页面结构,包含一个作为背景的div元素。例如: <!DOCTYPE html> <html> <head> <title>渐隐渐显背景颜色</title> <style> body { margin: 0; padding: 0; overflow: …

    css 2023年6月9日
    00
  • CSS3中的@keyframes关键帧动画的选择器绑定

    @keyframes是CSS3中非常强大的动画制作功能,可以实现很多炫酷的动画效果。其中,选择器绑定是@keyframes动画中一个非常重要的部分,可以让我们选择运用动画效果的具体元素。 选择器绑定的语法格式如下: @keyframes animation-name { selector { property: value; } } 其中,animation…

    css 2023年6月9日
    00
  • JavaScript中的各种宽高属性的实现

    讲解”JavaScript中的各种宽高属性的实现”。 在JavaScript中,我们可以利用不同的属性来获取元素或元素内容的宽高,下面是一些常用的实现方式: 元素的宽高属性 offsetWidth 和 offsetHeight offsetWidth 和 offsetHeight 属性是一个元素在包括边框和滚动条在内的整体高度和宽度,返回的单位是像素值。 &…

    css 2023年6月10日
    00
  • JavaScript实现图片放大镜效果

    下面我将为您详细讲解如何用JavaScript实现图片放大镜效果。 1. 需求分析 首先,我们需要分析一下需要实现的效果和要实现的功能。放大镜效果通常是这样的:当鼠标悬浮在图片上时,图片中心出现一个放大的镜头,显示鼠标所在位置周围的图像细节。因此,我们需要实现以下功能: 鼠标在图片上移动时,更新放大镜镜头的位置和内容; 根据鼠标位置,在放大镜镜头周围显示放大…

    css 2023年6月10日
    00
  • vue如何使用媒体查询实现响应式

    Vue可以使用媒体查询实现响应式网页。下面就为大家分享如何使用媒体查询实现响应式的完整攻略。 Step 1. 为响应式设置viewport 在\<head>标签中设置视口为移动设备宽度,这样浏览器会以手机的分辨率来呈现网站。 <meta name="viewport" content="width=device…

    css 2023年6月9日
    00
  • Vue浅析axios二次封装与节流及防抖的实现

    Vue浅析axios二次封装与节流及防抖的实现 1. axios二次封装 在我们的Vue项目中,使用axios进行网络请求已经成为了非常常见的做法。为了更好的维护代码、方便复用,我们需要对axios进行二次封装,使其使用更方便、简洁。 在这个过程中,我们可以实现一些公共的功能,比如统一处理错误请求、设置请求头、拦截请求等等。例如: import axios …

    css 2023年6月10日
    00
  • jquery sortable的拖动方法示例详解

    jQuery Sortable 拖动方法示例详解 jQuery Sortable 是一款基于 jQuery 的可拖拽列表插件,它可以轻松实现列表元素的拖动排序。下面我将详细讲解该插件的使用方法,帮助您轻松实现排序效果。 步骤1:引入jQuery Sortable 插件 在网页中引入 jQuery 和 jQuery Sortable 插件的 js 文件,示例如…

    css 2023年6月10日
    00
  • css 权重值(层叠性)实例详解

    当一个 HTML 元素有多条 CSS 规则可用时,就需要计算 CSS 属性的优先级。CSS 属性的优先级(也称为权重值或层叠性)由选择器的特定性和源排序决定。 我们可以通过以下公式计算 CSS 属性的优先级: 内联样式(通过 style 属性定义的样式)——权重值为 1000。 ID 选择器——权重值为 100。 类选择器、属性选择器和伪类选择器——权重值为…

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