视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
关于CSS3的content属性详细介绍
2020-11-27 18:52:19 责编:小采
文档

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

插入纯文字

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

#html
<h1>这是h1</h1>
<h2>这是h2</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>这是h3</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
<a href="http:///www.ido321.com">这是链接</a>
#css
a:after{
 content:attr(href);
}

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

插入项目编号

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

#html
<h1>大标题</h1>
<p>文字</p>
<h1>大标题</h1>
<p>文字</p>
<h1>大标题</h1>
<p>文字</p>
<h1>大标题</h1>
<p>文字</p>
#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
<h1>大标题</h1>
<p>文字1</p>
<p>文字2</p>
<p>文字3</p>
<h1>大标题</h1>
<p>文字1</p>
<p>文字2</p>
<p>文字3</p>
<h1>大标题</h1>
<p>文字1</p>
<p>文字2</p>
<p>文字3</p>
#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
<h1>大标题</h1>
<h2>中标题</h2>
<h3>小标题</h3>
<h3>小标题</h3>
<h2>中标题</h2>
<h3>小标题</h3>
<h3>小标题</h3>
<h1>大标题</h1>
<h2>中标题</h2>
<h3>小标题</h3>
<h3>小标题</h3>
<h2>中标题</h2>
<h3>小标题</h3>
<h3>小标题</h3>
#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;

下载本文
显示全文
专题