vant中field组件label属性两端对齐问题及解决

 更新时间:2022年05月24日 15:51:55   作者:刘运传  
这篇文章主要介绍了vant中field组件label属性两端对齐问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

field组件label属性两端对齐问题

最近在开发一个移动端的Web应用,使用vant构建移动端的页面,在构建表单时,使用Field组件作为信息输入和展示,但是但是由于对于label属性只提供了left、center、right的对齐方式,个人觉得不是很美观,希望能够显示两端对齐的效果。

先看看原来的四种效果 label左对齐

在这里插入图片描述

label居中对齐

在这里插入图片描述

label右对齐

在这里插入图片描述

label两端对齐

在这里插入图片描述

对比一下四种效果,个人还是比较倾向于第四种(两端对齐)的方式,下面说说实现的思路。

看看官方文档

在这里插入图片描述

文档中对月label-align属性只有三个可选值:left、center、right。

尝试直接设置label-align的属性为justify,发现是不可以的。

但是这里官方也是给出一个很好的解决思路,这里也是给出了label可以设置类名的配置,这里直接设置label-class的值为label-justify,然后在css中新建一个名为label-justify的类,并且设置text-align-last: justify;这样就可以设置label的值我两端对齐了,如果存在左右样式的问题,也可以在这个类中设置padding的值调整样式。这么简单就解决问题了。(其实在写文档前我找的是两个一个解决思路,那个思路可能更通用一点,面对其他的组件也更适用一点)。

另一种解决思路

其实虽然刚这块控件官方提供了一个label的类属性,可以直接设置,但是对于其他大多数控件来说,无论是label、icon和text,其实很多时候都是没有办法直接配置属性进行改变演示的。

例如van-tabbar-item中的icon图标就没有办法快捷改变图标大小了,其实有个很简单的办法:直接在开发者工具上查找出对应空间的样式类,然后才css中对该类进行样式的设置就可以了,这个方法适用于vant大多数空间,录入想改变field中label的样式,直接在css中新建一个.van-field__label类,然后修改其样式就可以,在譬如,需要修改van-tabbar-item中icon的属性,同样在css中新建一个.van-tabbar-item__icon类,然后修改器样式就可以。

小结:虽然自己解决这个问题的方式比较简单粗暴,也不知道是不是最优解,但是对于我来说,目前这个阶段还是能快速解决我的问题的,至于是否是最佳实践也希望各个路过刷到的朋友留个言,指导一下。

vant输入框label两端对齐

vue+vant

1.form表单中的代码,看起来有点累赘,是为了兼容ios系统

<van-field
  v-model="username"
  name="username"
  placeholder="请输入姓名"
  label-width="5.2em"
>
  <!-- 使用label插槽 -->
  <template #label>
    <!-- 自定义样式label-flex -->
    <div class="label-flex">
      <div class="label-justify">姓名</div>
      :
    </div>
  </template>
</van-field>

2.scss样式

//兼容ios系统和Android系统label两端对齐
<style lang="scss">
.label-flex{
  display: flex;
  height: 20px;//高度必须设置
  overflow: hidden;
  .label-justify{
    flex: 1;
    text-align: justify;
    text-align-last: justify;
    &::after{
      content: "";
      width: 100%;
      display: inline-block;
      height: 0;
    }
  }
}
</style>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中el-autocomplete与el-select的异同

    vue中el-autocomplete与el-select的异同

    本文主要介绍了vue中el-autocomplete与el-select的异同,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • vue父列表数据获取子列表数据的实现步骤

    vue父列表数据获取子列表数据的实现步骤

    本文档将介绍如何通过点击父列表(表格)中的数据行来获取到子列表(表格)的数据,代码示例是基于Vue框架实现的一个组件,包含了父列表和子列表,通过点击父列表的数据行来动态获取子列表的数据,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • vue3+ts+vite打包后静态资源404无法加载js和css问题解决办法

    vue3+ts+vite打包后静态资源404无法加载js和css问题解决办法

    这篇文章主要给大家介绍了关于vue3+ts+vite打包后静态资源404无法加载js和css问题的解决办法,文中通过代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-04-04
  • Vue2中compiler和runtime模式报错template compiler is not available

    Vue2中compiler和runtime模式报错template compiler is 

    本文主要介绍了Vue2中compiler和runtime模式报错template compiler is not available,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • uniapp vue与nvue轮播图之轮播图组件的示例代码

    uniapp vue与nvue轮播图之轮播图组件的示例代码

    这篇文章主要介绍了uniapp vue与nvue轮播图轮播图组件的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Vue组件懒加载的操作代码

    Vue组件懒加载的操作代码

    在本文中,我们学习了如何使用 Intersection Observer API 和 defineAsyncComponent 函数在 Vue 组件可见时对其进行懒加载,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友一起看看吧
    2023-09-09
  • vue复合组件实现注册表单功能

    vue复合组件实现注册表单功能

    这篇文章主要为大家详细介绍了vue复合组件实现注册表单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • vue如何直接获取url中的参数

    vue如何直接获取url中的参数

    这篇文章主要介绍了vue如何直接获取url中的参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue路由跳转后刷新指定页面的方法

    vue路由跳转后刷新指定页面的方法

    这篇文章主要介绍了vue路由跳转后刷新指定页面的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • vue3鼠标经过显示按钮功能的实现

    vue3鼠标经过显示按钮功能的实现

    本篇文章介绍了如何使用 Vue3 实现一个鼠标经过显示按钮的效果,我们使用了 Vue3 的 Composition API 来创建响应式的数据,并使用了 @mouseover 和 @mouseleave 事件来监听鼠标的移入和移出事件,感兴趣的朋友一起看看吧
    2024-04-04

最新评论