前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >:before 和 :after的多用途实践 — 基础篇

:before 和 :after的多用途实践 — 基础篇

作者头像
FEWY
发布2019-05-26 10:57:09
4940
发布2019-05-26 10:57:09
举报
文章被收录于专栏:FEWY
说明

CSS 伪元素用于向某些选择器设置特殊效果 在CSS中,伪元素,是一个很有趣的东西,而:before和 :after,这两个伪元素是我在开发中用到的比较多的,也是在许多系统和库中见到的比较多的,这篇博客先来讲讲这两个伪元素的基础知识!

解释
:before

:before 选择器向选定的元素 前 插入内容。 使用 content 属性来指定要插入的内容。 代码

代码语言:javascript
复制
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <style>
     p:before{
       content:"这里是生成的内容";
     }
  </style>
 </head>
 <body>
     <p>(前)</p>
 </body>
</html>

效果图

这里写图片描述
这里写图片描述
:after

:after 选择器向选定的元素之 后 插入内容。 使用content 属性来指定要插入的内容。 代码

代码语言:javascript
复制
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <style>

     p:after{
       content:"这里是生成的内容";
     }

  </style>
 </head>
 <body>
     <p>(后)</p>
 </body>
</html>

效果图

这里写图片描述
这里写图片描述

这种方式就是,内容生成,作用就是使用CSS的方式,向现有的标记中增加新的内容,看上去似乎也没什么难度,content就是生成的内容,before就是在元素之前插入内容,after就是在元素之后插入内容, 然而,我们要知道,content的值,并不是只能是 string,看看下面这张来自菜鸟教程的图,就知道了。

这里写图片描述
这里写图片描述

这里,我们说说几个比较有趣的 content 的值,其他的值大家可以自己试试 先来看取值 counter,也就是计数器,看名字也大概能猜到他是干嘛的了,计数。

我们要想用计数器,先要有一个计数器,有了计数器,还需要告诉他,每一次,需要计几个数,记一个数,就像这样,1,2,3,4,记两个数,就像这样2,4,6,8,然后我们还需要找一个地方用计数器。

所以要用计数器,也就是三个步骤 1、声明计数器 属性:counter-reset 作用:创建或重置 一个或多个计数器 取值:名称 初始值; 例

代码语言:javascript
复制
counter-reset:c1 0;
counter-reset:c1 0 c2 10;

注意:

  • 初始值可以省略,省略的话为0
代码语言:javascript
复制
counter-reset:c1;
counter-reset:c1 c2;  
  • 哪个元素使用计数器,哪个元素就不声明,简单说,谁用,谁就不声明,不然会出现计数器一直显示同一个数的情况。

2、设置计数器的增量(变化范围) 属性:counter-increment 取值:计数器名 增量值; 作用:设置某个选择器每次出现的计数器的增量,增量值不写默认增量为1 例

代码语言:javascript
复制
counter-increment:c1 1;
counter-increment:c1;

注意: 哪个元素使用,在哪个元素中声明增量

3、使用计数器 函数:counter(name[, style]); 配合着 content 属性一起使用 name就是用counter-reset声明的计数器的名称 style是可选的参数,他的值也就是list-style-type支持的那些值

这里写图片描述
这里写图片描述

详情参考 http://www.runoob.com/try/try.php?filename=trycss_list-style-type_all

代码

代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <style>
        .counter{
            counter-reset:c;   //创建计数器 c
        }
        .increment:before{
            content:counter(c)"、"; //使用计数器c,后面还加了 、
            counter-increment:c;   //默认增量为1
        }
  </style>
 </head>
 <body>
      <div class="counter">
            <div class="increment">before</div>
            <div class="increment">内容</div>
            <div class="increment">after</div>
      </div>
 </body>
</html>

效果图

这里写图片描述
这里写图片描述

继续看 content 取值 attr 的情况 代码

代码语言:javascript
复制
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <style>
        div:before{
          content: attr(data-name);//获取元素data-name属性值,当作content内容
        }
  </style>
 </head>
 <body>
      <div data-name="自定义属性"></div>
 </body>
</html>

效果图

这里写图片描述
这里写图片描述

简单说,attr就是用来获取属性值的,content:attr(属性名); 接着再看一个 url 代码

代码语言:javascript
复制
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <style>
       div:before{
           content:url(img/3.jpg);
       }
  </style>
 </head>
 <body>
     <div></div>
 </body>
</html>

效果图

这里写图片描述
这里写图片描述

我们看到这张图,被直接读了出来,这里有一些要注意的

  • 不能修改图片的width和height,图片是多大,就显示多大,width和height失效,如果想改变图片大小,可以用图片处理软件,比如PS
  • 图片不能进行重复或平铺,也就是说,你没法直接对这张图进行什么有用的操作
总结

到此,算是把这两个伪元素的基础知识说完了,这些只是基础,应该算是比较好理解的,下一篇我们开始,看看他们到底有什么好玩的!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年05月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 解释
    • :before
      • :after
      • 总结
      相关产品与服务
      图片处理
      图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档