element UI 中表单输入框的样式修改,深度选择器

本文探讨了在Vue中遇到的组件样式覆盖问题,特别是当使用scoped属性时,如何通过/deep/深度选择器或>>>来穿透样式隔离,修改子组件的样式。详细介绍了/deep/的用法,以及在Sass和Less中不支持>>>的情况,并提供了示例代码展示如何设置输入框输入框的样式。
摘要由CSDN通过智能技术生成

输入框代码:

<el-input placeholder="请输入用户名" prefix-icon="el-icon-user" v-model="login.name"></el-input>

修改前:
在这里插入图片描述

修改后
在这里插入图片描述

查看修改前的CSS样式:
在这里插入图片描述

如果我们直接在CSS中修改输入框的样式,会发现修改后的样式并没有被应用上

为了解决这个问题我也找了很多文章,发现可以用 /deep/ 深度选择器 ,也就是在选择器前面加上 /deep/

/* 使用 scoped 后,父组件的样式将不会渗透到子组件中。*/
/* 使用深度作用选择器 /deep/ 或者'>>>' ,但注意像sass、less预处理器不认三个箭头 */
/deep/ .el-input .el-input__inner {
  -webkit-appearance: none;
  background-color: transparent !important;
  background-image: none;
  border-radius: 10px;
  border: 0px !important;
  border-bottom: 1px solid #cdcdcd !important;
  box-sizing: border-box;
  color: #606266;
  display: inline-block;
  font-size: inherit;
  height: 40px;
  line-height: 40px;
  outline: 0;
  padding: 0 30px;
  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  width: 100%;
}

深度选择器

<style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符或 /deep/ :

但要注意对于less或者sass等预编译,是不支持 >>> 操作符的,可以使用 /deep/ 来替换 >>> 操作符,例如: .parent /deep/ .child { /* … */ }


PS:经过我的测试,在sass和less中似乎并不支持深度选择器


/deep/ .el-input {
  margin-top: 20px;
}

>>> .el-input{
  margin-top: 20px;
}
Element UI是一套基于Vue.js的组件库,提供了丰富的表单组件,包括输入框、下拉框、日期选择器等等。下面是使用Element UI设置输入框的步骤: 1. 安装Element UI:在命令行使用npm或yarn安装Element UI。 ``` npm install element-ui --save ``` 2. 在Vue项目引入Element UI:在main.js引入Element UI并注册组件。 ``` import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 在模板使用el-input组件:在表单使用el-input组件来创建输入框。 ``` <template> <div> <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="用户名"> <el-input v-model="form.username"></el-input> </el-form-item> </el-form> </div> </template> ``` 4. 在data属性声明一个名为form的属性,它将作为整个表单的数据模型。 ``` <script> export default { data() { return { form: { username: '' } } } } </script> ``` 5. 当用户在输入框输入内容时,v-model指令将自动将输入框的值与form对象的username属性进行双向绑定,即输入框的值发生变化时,username属性也会跟着变化。 6. 最后,我们可以在模板使用{{ form.username }}来显示输入框的值。 注意:Element UI提供了丰富的配置项,可以根据需求自定义输入框样式和行为。例如,可以使用placeholder属性设置输入框的占位符,使用size属性设置输入框大小,使用clearable属性设置输入框是否可清空等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值