资讯专栏INFORMATION COLUMN

CSS3的content属性详解

RyanHoo / 769人阅读

摘要:中主要的伪元素有四个,在伪元素选择器中,有一个属性,能够实现页面中的内容插入。这是链接运行结果插入项目编号利用的属性针对多个项目追加连续编号大标题文字大标题文字大标题文字大标题文字运行结果项目编号修饰默认插入的项目编号是数字型的,。。。

CSS中主要的伪元素有四个:before/after/first-letter/first-line,在before/after伪元素选择器中,有一个content属性,能够实现页面中的内容插入。

插入纯文字

content:"插入的文章",或者content:none不插入内容
html:

这是h1

这是h2

css

h1::after{
    content:"h1后插入内容"
}
h2::after{
    content:none
}

运行结果:https://jsfiddle.net/dwqs/Lmm1r08x/

嵌入文字符号

可以使用content属性的open-quote属性值和close-quote属性值在字符串两边添加诸如括号、单引号、双引号之类的嵌套文字符号。open-quote用于添加开始的文字符号,close-quote用于添加结束的文字符号。修改上述的css:

h1{
    quotes:"(" ")";  /*利用元素的quotes属性指定文字符号*/
}
h1::before{
    content:open-quote;
}
h1::after{
    content:close-quote;
}
h2{
    quotes:""" """;  /*添加双引号要转义*/
}
h2::before{
    content:open-quote;
}
h2::after{
    content:close-quote;
}

运行结果:https://jsfiddle.net/dwqs/p8e3qvv4/

插入图片

content属性也可以直接在元素前/后插入图片
html:

这是h3

css:

h3::after{
    content:url(http://ido321.qiniudn.com/wp-content/themes/yusi1.0/img/new.gif)
}

运行结果:https://jsfiddle.net/dwqs/c6qk6pkv/

插入元素的属性值

content属性可以直接利用attr获取元素的属性,将其插入到对应位置。
html:

这是链接  

css:

a:after{
    content:attr(href);
}

运行结果:https://jsfiddle.net/dwqs/m220nzan/

插入项目编号

利用content的counter属性针对多个项目追加连续编号.
html:

大标题

文字

大标题

文字

大标题

文字

大标题

文字

css:

h1:before{
    content:counter(my)".";
}
h1{
    counter-increment:my;
}

运行结果:https://jsfiddle.net/dwqs/2ueLg3uj/

项目编号修饰

默认插入的项目编号是数字型的,1,2,3.。。。自动递增,也能给项目编号追加文字和样式,依旧利用上面的html,css修改如下:

h1:before{
    content:"第"counter(my)"章";
    color:red;
    font-size:42px;
}
h1{
    counter-increment:my;
}

运行结果:https://jsfiddle.net/dwqs/17hqznca/

指定编号种类

利用content(计数器名,编号种类)格式的语法指定编号种类,编号种类的参考可以依据ul的list-style-type属性值。利用上述的html,css修改如下:

h1:before{
    content:counter(my,upper-alpha);
    color:red;
    font-size:42px;
}
h1{
    counter-increment:my;
}

运行结果:https://jsfiddle.net/dwqs/4nsrtxup/

编号嵌套

大编号中嵌套中编号,中编号中嵌套小编号。
html:

大标题

文字1

文字2

文字3

大标题

文字1

文字2

文字3

大标题

文字1

文字2

文字3

css:

h1::before{
    content:counter(h)".";
}
h1{
    counter-increment:h;
}
p::before{
    content:counter(p)".";
    margin-left:40px;
}
p{
    counter-increment:p;
}

运行结果:https://jsfiddle.net/dwqs/2k5qbz51/
在示例的输出中可以发现,p的编号是连续的。如果对于每一个h1后的三个p重新编号的话,可以使用counter-reset属性重置,修改上述h1的css:

h1{
    counter-increment:h;
    counter-reset:p;
}

这样,编号就重置了,看看结果:https://jsfiddle.net/dwqs/hfutu4Lq/
还可以实现更复杂的嵌套,例如三层嵌套。
html:

大标题

中标题

小标题

小标题

中标题

小标题

小标题

大标题

中标题

小标题

小标题

中标题

小标题

小标题

css:

h1::before{
    content:counter(h1)".";
}
h1{
    counter-increment:h1;
    counter-reset:h2;
}
h2::before{
    content:counter(h1) "-" counter(h2);
}
h2{
    counter-increment:h2;
    counter-reset:h3;
    margin-left:40px;
}
h3::before{
    content:counter(h1) "-" counter(h2) "-" counter(h3);
}
h3{
    counter-increment:h3;
    margin-left:80px;
}

运行结果:https://jsfiddle.net/dwqs/wuuckquy/

张大大有一篇利用counter实现计数的文章:小tip:CSS计数器+伪类实现数值动态计算与呈现

原文:http://www.ido321.com/1555.html

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/111049.html

相关文章

  • border-sizing属性详解和应用

    摘要:用于更改用于计算元素宽度和高度的默认的盒子模型。它有和三种取值。和属性包括内容,内边距和边框,但不包括外边距。所以,的解释很符合常理。使用建议使用建议根据项目中的使用经验和的建议,推荐将属性设置为。个人网站原文链接属性详解和应用 box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。它有content-box、border-box和inherit三种取值。inheri...

    Batkid 评论0 收藏0
  • 【连载】前端个人文章整理-从基础到入门

    摘要:个人前端文章整理从最开始萌生写文章的想法,到着手开始写,再到现在已经一年的时间了,由于工作比较忙,更新缓慢,后面还是会继更新,现将已经写好的文章整理一个目录,方便更多的小伙伴去学习。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 个人前端文章整理 从最开始萌生写文章的想法,到着手...

    madthumb 评论0 收藏0
  • 详解CSSFlex布局

    摘要:本文由云社区发表是的缩写,意为弹性布局,是的一种布局模式。通过布局,可以很优雅地解决很多布局的问题。与交叉轴两端对齐,轴线之间的间隔平均分布。表示当空间不足时,不缩小。此文已由作者授权腾讯云社区发布 本文由云+社区发表 Flex是Flexible Box 的缩写,意为弹性布局,是CSS3的一种布局模式。通过Flex布局,可以很优雅地解决很多CSS布局的问题。下面会分别介绍容器的6个属性和项...

    番茄西红柿 评论0 收藏0
  • 详解CSSFlex布局

    摘要:本文由云社区发表是的缩写,意为弹性布局,是的一种布局模式。通过布局,可以很优雅地解决很多布局的问题。与交叉轴两端对齐,轴线之间的间隔平均分布。表示当空间不足时,不缩小。此文已由作者授权腾讯云社区发布 本文由云+社区发表 Flex是Flexible Box 的缩写,意为弹性布局,是CSS3的一种布局模式。通过Flex布局,可以很优雅地解决很多CSS布局的问题。下面会分别介绍容器的6个属性...

    lbool 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<