【CSS】nth:children以及浏览器内核webkit使用(滚动条样式修改)

在这里插入图片描述
😉博主:初映CY的前说(前端领域) ,📒本文核心:nth:children以及浏览器中的webkit使用

前言:在页面的编写中使用了多个标签通常有需求去处理下特殊的样式,我们常见做法是给我们的标签加上一个类或者通过标签选择器去写我们的css样式,但是不想写类了还可以用啥选择到我们页面中的dom元素?嘿,这下就可以用上我们的nth-child()选择器喽~

⭐一、nth-child()选择器

nth-child 是 CSS 选择器中的一个伪类,它可以选择某个父元素的第 N 个子元素,或者符合特定公式的子元素。

使用 :nth-child 选择器的语法为: :nth-child(an + b)。

其中,a 和 b 都是整数,n 表示元素在其父元素中的位置,默认n是0。

nth-child()使用

先绘制下我们的一个静态demo
长下面这个样子:
在这里插入图片描述
初始代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="box">
    <span>元素1</span>
    <span>元素2<span>元素3</span></span>
    <span>元素4</span>
    <span>元素5</span>
  </div>
</body>
<style>
  .box{
    margin: 0 auto;
    margin-top: 100px;
    width: 500px;
    height: 500px;
    background-color: teal;
    text-align: center;
    line-height: 500px;
  }
  .box span{
    padding: 20px;
    font-size: 20px;
  }

</style>
</html>

我们写选中span试试

  .box span:nth-child(1){
    color: white;
  }

写完了选择器页面展示效果如下所示:
在这里插入图片描述
这里有意思的来了,为什么元素3也被选中了?请仔细的阅读它可以选择某个父元素的第 N 个子元素,或者符合特定公式的子元素。因此浏览器会解析,找到box下面的span中的第一个,因此元素1就被理所当然的改变了颜色。那么元素3的颜色是怎么改变的?仔细分析博主代码结构是是span套装span,以第一个span标签为出发点来看,元素3也确确实实是span标签中的第一个元素。所以元素3也就被博主加上了样式,这是一个潜在的小细节,大家注意喽。

nth-chlid也支持选中偶数单数

下面更正div中span结构让大家看得更清楚

  <div class="box">
    <span>元素1</span>
    <span>元素2</span>
    <span>元素4</span>
    <span>元素5</span>
  </div>

选择奇数、偶数:

//n的取值为0、1、2、3依次往后面取
  .box span:nth-child(2n){
    color: white;
  }
  .box span:nth-child(2n+1){
    color: orange;
  }

在这里插入图片描述
也可以用另外一种选择方法,vscode代码提示里面都有,大家可以去尝试下其他的,再次再介绍一个

nth-last-child(n) 从最后看选择第几个元素

  /* 从尾部往前面算 */
  .box span:nth-last-child(2){
    color: skyblue;
  }

在这里插入图片描述
倒数第二个颜色就被我改成了skyblue颜色了!当然css也存在样式覆盖的问题(从上往下执行),我们原本的橙色也就挤掉了

⭐二、webkit

WebKit 是一种浏览器引擎,广泛应用于多个浏览器中,其中包括 Safari、Google Chrome(在 Chrome 27 版本前)、Opera(在 Opera 15 版本前)等。

Webkit 的特点包括:

  1. 高速渲染:WebKit 引擎在渲染网页时使用了一些优化技术,以提高渲染速度和性能。
  2. 跨平台:WebKit 引擎可以在不同的操作系统上运行,包括 macOS、Windows、Linux 等。
  3. 支持最新的标准:WebKit 遵循并支持最新的 Web 标准,如 HTML、CSS 和 JavaScript 规范等。

说白了我们可以用这个来控制浏览器的滚动条!
原始的滚动条如下所示:
在这里插入图片描述

webkit使用

常见的灰白条,但是我们不喜欢怎么办?自己修改浏览器内核webkit即可
直接参考下面代码:

  /* 控制滚动条宽度 */
  ::-webkit-scrollbar {
  /* width: 10px; */
  width: 5px;

}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 100, 0.8);

}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
  border-radius: 12px;
  -webkit-box-shadow: inset 0 0 6px rgba(55, 169, 192, 0.2);
  background-color: yellow;
}

页面效果:
在这里插入图片描述
源代码见下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="box">
    <span>元素1</span>
    <span>元素2</span>
    <span>元素4</span>
    <span>元素5</span>
    <div class="children">11111111111111111111111111111111111111111</div>
  </div>
</body>
<style>
  /* 控制滚动条宽度 */
  ::-webkit-scrollbar {
  /* width: 10px; */
  width: 5px;

}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 100, 0.8);

}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
  border-radius: 12px;
  -webkit-box-shadow: inset 0 0 6px rgba(55, 169, 192, 0.2);
  background-color: yellow;
}
  .box{
    width: 500px;
    height: 500px;
    background-color: teal;
    margin: 0 auto;
    margin-top: 100px;
    text-align: center;
    line-height: 500px;
    overflow: hidden;
    overflow-y: scroll;
  }
  .box span{
    padding: 20px;
    font-size: 20px;
  }
  .box span:nth-child(2n){
    color: white;
  }

  .box span:nth-child(2n+1){
    color: orange;
  }
  /* 从尾部往前面算 */
  .box span:nth-last-child(2){
    color: skyblue;
  }
  .children{
    height: 600px;

  }
</style>
</html>

至此本文结束,愿你有所收获!
期待大家的关注与支持! 你的肯定是我更新的最大动力!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初映CY的前说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值