用quasar实现一个常见的表单 表单输入框两侧分布且表单输入框对齐 输入框左边的文本对其
时间: 2024-02-23 20:01:11 浏览: 138
好的,下面是一个使用 Quasar 实现的常见表单示例,其中表单输入框两侧分布且表单输入框对齐,输入框左边的文本对齐:
```html
<template>
<q-form class="my-form">
<q-input
label="用户名"
v-model="username"
dense
clearable
:rules="[val => !!val || '用户名不能为空']"
prepend-icon="account_circle"
class="my-input"
/>
<q-input
label="密码"
v-model="password"
dense
type="password"
clearable
:rules="[val => !!val || '密码不能为空']"
prepend-icon="lock"
class="my-input"
/>
<q-input
label="确认密码"
v-model="confirmPassword"
dense
type="password"
clearable
:rules="[val => !!val || '确认密码不能为空', val => val === password || '两次输入的密码不一致']"
prepend-icon="lock"
class="my-input"
/>
<q-input
label="邮箱"
v-model="email"
dense
clearable
:rules="[val => !!val || '邮箱不能为空', val => emailRegex.test(val) || '请输入有效的邮箱地址']"
prepend-icon="email"
class="my-input"
/>
<q-btn
type="submit"
label="提交"
color="primary"
:disable="!formValid"
/>
</q-form>
</template>
<script>
export default {
data() {
return {
username: '',
password: '',
confirmPassword: '',
email: '',
};
},
computed: {
formValid() {
return this.$refs.form.validate();
},
emailRegex() {
// 简单的邮箱正则表达式
return /.+@.+\..+/i;
},
},
};
</script>
<style scoped>
.my-form {
display: flex;
flex-direction: column;
align-items: stretch;
}
.my-input {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
}
.my-input .q-field__label {
text-align: left;
}
.my-input .q-field__control-container {
flex-grow: 1;
}
</style>
```
在这个示例中,我们使用了自定义样式来实现表单输入框两侧分布且表单输入框对齐,以及输入框左边的文本对齐。具体来说,我们使用了 `display: flex` 和 `justify-content: space-between` 属性来让输入框两侧分布,使用 `align-items: center` 属性来使输入框垂直居中对齐,使用 `flex-grow: 1` 属性来让输入框占据剩余的空间,从而实现输入框对齐。同时,我们还使用了 `text-align: left` 属性来使输入框左边的文本对齐。
阅读全文