伪类、伪元素及五星好评css实现

1. 伪元素

伪元素本质上是创建了一个有内容的虚拟容器
在这里插入图片描述

//:before和:after一定要配合content使用:
<html>
<head>
  <meta charset=UTF-8">
  <style>
    p:before{
      content: 'Hello';
      color: red;
    }
    p:after{
      content: 'Tom';
      color: red;
    }
  </style>
</head>
<body>
<p>我是</p>
</body>
</html>

效果:
在这里插入图片描述

<html>
<head>
  <style>
    p:first-letter {
      color:#ff0000;
      font-size:xx-large;
    }
  </style>
</head>
<body>
<p>you can see this, what a good day!</p>
</body>
</html>

效果:
在这里插入图片描述
还有常见用法见伪元素清除浮动

2. 伪类
在这里插入图片描述

  • CSS 定义中,a:hover 必须被置于 a:linka:visited 之后,才是有效的。
  • CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

3. 伪类实现五星好评

结构层主要由一个div盒子包裹五个星级,五个星星分别放在a标签里,对于普通的div/span/li等元素节点是不能直接获取焦点的,需要用到一个属性tabindex,所以这里用a标签:

<body>
<div class="rating">
  <a href="#5" title="Give 5 stars">★</a>
  <a href="#4" title="Give 4 stars">★</a>
  <a href="#3" title="Give 3 stars">★</a>
  <a href="#2" title="Give 2 stars">★</a>
  <a href="#1" title="Give 1 stars">★</a>
</div>
</body>

然后样式部分,先将五个星星一行排列,初始颜色设为暗灰色,实现划过和点击选中星星颜色变亮,通过a:hovera:focus将当前星星选中,通过a:hover~a
a:focus~a将当前元素之后的同级元素选中,然后通过direction: rtl将星星的顺序调为从右向左:

<head>
  <meta charset="utf-8">
  <title>五星好评</title>
  <style>
    a {
      color: #aaa;
      text-decoration: none;
      padding: 0 7px;
      font-size: 45px;
    }
    .rating {
      width: 300px;
      margin: 0 auto;
      direction: rtl;
    }
    a:hover,
    a:hover ~ a,
    a:focus,
    a:focus ~ a{
      color: orange;
      cursor: pointer;
    }
  </style>

实现效果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值