我在网上搜过一些回答,比如有建议是将在el-form-item里面包一个el-row,但我个人实现起来效果不好,这里贴一个我实现起来效果比较好的写法
第一种写法:
这里是没有添加任何css效果的
<el-row style="width: 100%;">
<el-col :span="17">
<el-form-item label="邮 箱:" prop="email" style="width:100%;">
<el-input v-model="userDetail.email" placeholder="请输入邮箱" class="input-with-select"></el-input>
</el-form-item>
</el-col>
<el-col :offset="2" :span="4" style="margin-top: 13px;" >
<button @click="sendCode()" style="width: 100%;height: 50%;">发送验证码</button>
</el-col>
</el-row>
实际上就是反过来写,用el-row把el-form-item包起来
实现起来的效果图,也贴一个:
这个图实现的实际上是邮箱+验证码按钮的居中,不过这个写法是可以用来写el-form-item的居中的
第二种写法:
<!-- 注册 -->
<el-form :model="userDetail" :rules="rules" ref="ruleFormRef" label-width="95px" size="mini">
<el-form-item label="手机号:" prop="phone">
<el-input v-model="userDetail.phone" placeholder="请输入手机号"></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="account">
<el-input v-model="userDetail.account" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="password">
<el-input v-model="userDetail.password" type="password" placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item label="密码确认:" prop="repassword">
<el-input v-model="userDetail.repassword" type="password" placeholder="请再次输入密码"></el-input>
</el-form-item>
<el-form-item label="邮箱:" prop="email">
<el-input v-model="userDetail.email" placeholder="请输入邮箱"></el-input>
</el-form-item>
<el-form-item label="用户类型:" prop="userType">
<el-select v-model="userDetail.userType" placeholder="请选择用户类型">
<el-option label="学生" value=1 />
<el-option label="老师" value=2 />
</el-select>
</el-form-item>
这个代码的重点就是 lable-width,这个写法的原理就是通过控制标签的宽度,让整个input什么之类的东西右移,从而达到居中的效果。
效果图也粘一个: