篇文章主要讲述了CSS样式更改中的背景Background,这篇文章我们来谈谈文本Content内容的基础用法
1)).首行缩进文本
<div style='text-indent:2em'></div> 可以设置负数 也可使用百分数 像素
2)).文本对齐方式
<div style='text-align:center'></div>
left 左边
right 右边
center 中间
justify 两端对齐
3)).字间距
<div style='word-spacing:2em'></div> 可以设置负数 也可使用百分数 像素
4)).文本间距
<div style='letter-spacing:2em'></div> 可以设置负数 也可使用百分数 像素
5)).文本转换
<div style='text-transform:none'></div>
none 不转换
uppercase 大写
lowercase 小写
capitalize 首字母大写
6)).文本修饰
<div style='text-decoration:none'></div>
none 不修饰
underline 下划线
overline 上划线
line-through 中划线
blink 文本闪烁
7)).文本空白符的处理
<div style='white-space:normal'></div>
pre-line 合并空白符序列,但是保留换行符
normal 忽略空白符
nowrap 文本不会换行,直到<br>出现才换行
pre 空白会被浏览器保留
pre-wrap 保留空白符序列,但是正常地进行换行
8)).文本方向
<div style='direction:ltr'></div>
ltr 从左到右
rtl 从右到左
9)).文本行高
<div style='line-height:2'></div> 可使用百分数 像素
10)).文本阴影
<div style='text-shadow:1px 1px 1px red'></div>
11)).字符换行
<div style='word-wrap:normal'></div>
normal 只在允许的断字点换行
break-word 在长单词、URL地址内部进行换行
12)).处理溢出文本
<div style='text-overflow:ellipsis'></div>
clip 修剪文本
ellipsis 省略符号来代表被修剪的文本
string 使用给定的字符串来代表被修剪的文本
13)).文本轮廓
<div style='text-outline:1px 1px red'></div>
14)).文本换行
<div style='text-wrap:none'></div>
normal 只在允许的换行点进行换行。
none 不换行。元素无法容纳的文本会溢出
unrestricted 在任意两个字符间换行。
suppress 压缩元素中的换行。浏览器只在行中没有其它有效换行点时进行换行。
这篇文章主要介绍了CSS样式更改篇中的文本Content基本设置,希望让大家对CSS选择器有个简单的认识和了解。
****看完本文有收获?请转发分享给更多的人****
IT共享之家
入群请在微信后台回复【入群】
想要学习更多,请前往Python爬虫与数据挖掘专用网站:http://pdcfighting.com/
例
以下示例将在每个链接后的括号内加上网址:
a:after
{
content: " (" attr(href) ")";
}
属性定义及使用说明
ontent 属性与 :before 及 :after 伪元素配合使用,来插入生成内容。
默认值: | normal |
---|---|
继承: | no |
版本: | CSS2 |
JavaScript 语法: | object.style.content="url(beep.wav)" |
浏览器支持
所有主流浏览器都支持Content属性。
注意: IE8只有指定!DOCTYPE才支持Content属性。
Content属性值
值 | 说明 |
---|---|
none | 设置Content,如果指定成Nothing |
normal | 设置content,如果指定的话,正常,默认是"none"(该是nothing) |
counter | 设定计数器内容 |
attr(attribute) | 设置Content作为选择器的属性之一。 |
string | 设置Content到你指定的文本 |
open-quote | 设置Content是开口引号 |
close-quote | 设置Content是闭合引号 |
no-open-quote | 如果指定,移除内容的开始引号 |
no-close-quote | 如果指定,移除内容的闭合引号 |
url(url) | 设置某种媒体(图像,声音,视频等内容) |
inherit | 指定的content属性的值,应该从父元素继承 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
CSS 伪元素基础知识:before 与after (一),笔者已经介绍过 CSS 里的::before 和::after 这两个伪元素,以及content 相关的用法,这篇将针对content 搭配counter (计数器) 进行一些有趣的应用,相信熟练之后搞不好能做出很好玩的内容。
在CSS里头,counter是个很有意思的功能,最常见得就是如果我们使用list清单,样式选择decimal十进制,当清单内容变多的时候数字也会随着递增,底层貌似就是使用counter的原理,也因为counter 所产生的数值并不实际存在于网页的元素内,所以如果我们要在清单元素之外使用,就必须透过::before 或::after的content来实现。
counter最的基本用法一定要有一个父元素和子元素(类似list的原理,比如使用ul包着li ),所以页面布局会类似下面这段html:
<div> <span>钢铁侠</span> <span>美国队长</span> <span>雷神索尔</span> </div>
在CSS里头,先针对div父元素使用counter-reset:num;进行计数器初始化的设置,里面num是计数器累以数值计算的设置,接着可以在span::before里面看到counter-increment:num;这一段,这段的作用是把num累加上去,预设数值为加1,接着就通过content这个属性显示出来。
计数器预设的显示语法为:counter(计数器名称, list-style-type)
div{ counter-reset:num; } span{ display:block; } span::before{ counter-increment:num; content:counter(num) '. '; }
通过指定一开始counter-reset 的起始计数值,还有counter-increment累加的递增数值(步长),还可以指定从某个数值开始计数。
div{ counter-reset:num 3; } span{ display:block; } span::before{ counter-increment:num 2; content:counter(num) '. '; }
如果要更换数字的样式,也可以透过计数器的第二个设定值list-style-type来更改,下面的例子就是将样式更改为georgian。
div{ counter-reset:num; } span{ display:block; } span::before{ counter-increment:num; content:counter(num, georgian) '. '; }
除了指定单一个变数外,counter 也可以同时指定多个变数,例如下面这段HTML,有三个类别在里面,我分别用span、i 和b 来分类。
<div> <span>钢铁侠</span> <span>美国队长</span> <span>雷神索尔</span> <i>神盾局</i> <i>神鬼局</i> <i>神经局</i> <b>九头蛇</b> <b>九头牛</b> <b>九头猪</b> </div>
CSS一开始counter-reset可以指定多个计数器,通过一个空白字符进行分隔,如果空白字符后面跟着数字则是起始值,没有数字预设为1,当这样设定之后,就可以看到不同类别的数字代号就不同。
div{ counter-reset:num numi 2 numb 5; } span, i, b{ display:block; } span::before{ counter-increment:num; content:counter(num) '. '; } i::before{ counter-increment:numi 2; content:counter(numi) '. '; } b::before{ counter-increment:numb 5; content:counter(numb) '. '; }
如果遇到了层级结构(目录结构),需要一层层的展开( 例如:1 > 1.1 > 1.1.1 ),采用上述的作法可能就会复杂许多,好在counter 还提供了另外一个counters 的功能,目的就是来解决层级结构的麻烦事,在开始前可以先看看通过ul和li组合的清单布局结构:
<ul> <li>第一层 <ul> <li>第二层 <ul> <li>第三层</li> <li>第三层</li> <li>第三层</li> </ul> </li> <li>第二层</li> <li>第二层</li> </ul> </li> <li>第一层</li> <ul> <li>第二层</li> <li>第二层</li> </ul> </ul>
传统的清单如果将list-style设为decimal,同样可以具备数字连续的功能,但相对来说要做一些特殊变化就办不到了。
li{ list-style:decimal; }
通过content 和counters 的搭配,我们就可以告别预设值的困扰,甚至可以在不使用清单ul 和li 的状况下,实现和清单一模一样的效果,举例来说,我们纯粹通过div 模拟一个清单的布局( 仍然必须是有父元素和子元素的概念),里面的样式b 就等于是ul,样式a 就等于是li:
<div class="a">第一层 <div class="b"> <div class="a">第二层 <div class="b"> <div class="a">第三层</div> <div class="a">第三层</div> <div class="a">第三层</div> </div> </div> <div class="a">第二层</div> <div class="a">第二层</div> </div> </div> <div class="a">第一层 <div class="b"> <div class="a">第二层</div> <div class="a">第二层</div> </div> </div>
由于b的外层没有东西,所以一开始要把body 和b 都进行counter reset 的动作,接着通过counters 的使用,让计数器的数值可以一个接着一个放进去,如此一来就可以做到原本清单不容易实现的效果了。
counters 使用语法:counters(计数器名称, 分隔符, list-style-type)
body, .b{ counter-reset:c; } .a::before{ content:counters(c, ".") ":"; counter-increment:c; } div{ margin-left:10px; }
了解原理之后,通过::before 和::after 的交互应用,就可以做出颇具特色的清单效果。
body, .b{ counter-reset:c; } .a{ box-sizing:border-box; position:relative; line-height:40px; } .a .a{ padding-left:30px; } .a::after{ content:''; box-sizing:border-box; display:inline-block; position:absolute; z-index:-1; top:0; left:0; width:100%; height:40px; margin-left:30px; box-shadow:inset 0 2px #666; background:#eee; } .a::before{ content:counter(c, upper-roman); counter-increment:c; display:inline-block; width:30px; height:40px; background:#666; color:#fff; text-align:center; margin-right:5px; }
文章来源:https://www.oxxostudio.tw/articles/201706/pseudo-element-2.html
原文作者:oxxostudio
由于网页为繁体内容,术语描述和话术与我们有差异的问题,笔者在保证不改变原意的基础上做了调整,并在此基础上进行了错误校正,如发现问题,欢迎你的指正
原本网页里面使用的清单列表展示,如果要进行样式的修改、或是一些编号的设置,往往都要通过JavaScript来实现,如果熟练了counter的用法,搞不好纯粹使用CSS 就能取代掉大部分JavaScript也说不定呢,更多的惊喜有待你的发现。
*请认真填写需求信息,我们会在24小时内与您取得联系。