sass嵌套样式选中最后一个li元素,使用伪类、伪元素

html
<ul class="mingxing">
	<li class="huge">胡歌</li>
	<li class="huge">江疏影</li>
</ul>
css
.mingxing{
	.huge {
		margin-bottom: 10px;
		&:last-child {
	       color: red;
	    }
	}
}

另一种写法

.mingxing{
	.huge {
		margin-bottom: 10px;
	    &:nth-child(2) {
	      color: green;
	    }
	}
}

鼠标移入li元素

li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2px 4px;
  border-radius: 4px;
  margin-bottom: 6px;
  cursor: pointer;
  &:hover {
    background: #E8EFFA;
  }
}

.active类名的伪元素

.active {
  background: #E8EFFA;
  &:after {
    content: "√";
    width: 16px;
    height: 16px;
    line-height: 16px;
    color: #fff;
    text-align: center;
    background: #1890FC;
    opacity: 1;
    border-radius: 8px;
  }
}

沉淀自己

`nth-child()`是一个CSS选择器,它用于匹配特定顺序的孩子元素。例如,你可以使用 `:nth-child(odd)` 来选择所有奇数位置的子元素,或者 `:nth-child(2n+1)` 来选择每隔一个元素。 然而,直接在`nth-child()`属性上传递参数并不直接支持。这种功能需要通过JavaScript或者某些CSS预处理器实现,如SASS、LESS等语言。下面是一些基本用法: ### 使用JavaScript修改`nth-child` 假设我们有一个列表,并想在每第三个项目上应用某个样式: ```javascript const elements = document.querySelectorAll('li'); let index = 0; elements.forEach((element) => { if ((index + 1) % 3 === 0) { element.classList.add('special-class'); } index++; }); ``` 这段代码遍历了所有的`<li>`元素,并给第3、6、9...等索引处的元素添加了一个名为`special-class`的类名。 ### 使用CSS预处理器 如果你使用SASS这样的预处理器,可以编写更简洁的规则: ```scss @for $i from 1 through 10 { li:nth-child(#{$i}) { & + #{$i}::before { content: 'Item number: ' attr(data-item-number); } } } ``` 这里的例子展示了如何将每个第三项的前一项标记出来。这需要HTML元素有相应的`data-item-number`数据属性。 ### 相关问题: 1. **如何利用JavaScript控制动态改变元素的`nth-child`样式?** - 可以通过遍历DOM节点并检查其索引来动态地改变样式。 2. **CSS预处理器如何简化使用`nth-child`选择器的代码?** - 预处理器允许您生成复杂的CSS代码块,其中包含循环和其他逻辑操作,使得基于索引的规则变得更容易编写和维护。 3. **为什么在某些情况下,使用`nth-child`选择器可能会导致性能问题?** - 当页面上有大量元素并且频繁更新选择器效果时,可能导致浏览器的渲染性能下降,因为每次更改样式都需要重新计算哪些元素应该应用该样式。在这种情况下,考虑使用条件类或JavaScript来优化性能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值