css样式中&的用法

一、认识“&”

        在css中,“&”符号通常用于选择器中,表示选择某个元素的子元素或特定状态下的元素

二、“&”的用法

1、&- :连接父元素和子元素的类名

        用法:

.btn {
  &-primary {
    background-color: #007bff;
    color: #fff;
  }
}

        编译出来的结果是在btn后面拼接了类名:

.btn-primary {  
   background-color: #007bff;
   color: #fff;
}

2、&. :连接父元素和子元素的类名

        用法:

.btn {
  &.primary {
    background-color: #007bff;
    color: #fff;
  }
}

        编译出来的结果是同一个元素,有两个类名,两个类名之间没有空格

.btn.primary {
   background-color: #007bff;
   color: #fff;
}

3、&::before和&::after  :表示在当前元素的前面或后面插入伪元素

        用法:

btn {
  &::before {
    content: "⚡️";
  }
  
  &::after {
    content: "🎉";
  }
}

        编译出来的结果是在button 元素前面插入一个内容为 "⚡️" 的伪元素,以及在 button 元素后面插入一个内容为 "🎉" 的伪元素

button::before {
  content: "⚡️";
}

button::after {
  content: "🎉";
}

4、&:hover和&:focus  :表示鼠标悬停或聚焦时应用的样式

        用法:

btn {
  &:hover {
    background-color: #eee;
  }
  
  &:focus {
    outline: none;
    box-shadow: 0 0 0 2px #007bff;
  }

        编译后的结果是当用户悬停在 button 元素上时,应用 background-color: #eee; 样式;当用户聚焦在 button 元素上时,应用 outline: none; box-shadow: 0 0 0 2px #007bff; 样式

5、&[attribute=value]  :表示选择具有特定属性和属性值的元素

        用法:

btn {
  &[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
  }
  
  &[type="submit"] {
    background-color: #007bff;
    color: #fff;
  }
}

        编译出来的结果是选择具有 disabled 属性的 button 元素,并应用 opacity: 0.5; cursor: not-allowed; 样式;同时选择具有 type="submit" 属性的 button 元素,并应用 background-color: #007bff; color: #fff; 样式

button[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

button[type="submit"] {
  background-color: #007bff;
  color: #fff;
}

6、&:nth-child(n)和&:nth-of-type(n):表示选择特定位置的子元素或同类型元素

        用法:

ul {
  li {
    &:nth-child(odd) {
      background-color: #f7f7f7;
    }
    
    &:nth-of-type(even) {
      color: #007bff;
    }
  }
}

三、&由什么语法提供

&-、&.:由Sass和Less等CSS预处理器提供
&::before和&::after、
&:hover和&:focus、
&[attribute=value]、
&:nth-child(n)和&:nth-of-type(n) :由CSS原生语法提供

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值