第一部分:簡(jiǎn)介
前言:
現(xiàn)下大部分網(wǎng)頁都是由 文字 和 圖片 構(gòu)成.
所以 文字 在 網(wǎng)頁視覺方面 是基本的一大構(gòu)成.
下面我們來介紹在CSS中 控制文字的一些 基本操作:
分析:
我們首先分析. 文字 這個(gè)東西到底是個(gè)什么?
說道 分析一個(gè) 事物的第一步就是分析 事物自帶的屬性
在顯示器終端上, 文字 能顯示出來,本質(zhì)是 它 點(diǎn)陣了視窗的某一部分像素.
對(duì)計(jì)算機(jī)而言, 它們只是不同 點(diǎn)陣的像素而已
對(duì)我們?nèi)祟惗? 是約定俗成的 視覺認(rèn)知.
像素集合的本質(zhì)就決定了 它有 大小(font-size) 和 顏色(color) 的最基本的兩個(gè)屬性.
再加上 我們生活中常見的 文字修飾. 就有了 文字方向(writing-mode) 縮進(jìn)(text-indent), 斜體(font-style),標(biāo)識(shí)(text-decoration)等等.
如下列表:
| 格式 | 定義 | 值 | 用法 |
|---|---|---|---|
| color | 文字顏色. | 顏色單詞/ 十六進(jìn)制 / rgba()等.... | color: red / #ffeedd / rgba(100,20,150,.5) ...; |
| font-family | 字體大小. | 常用有: "Arial","Microsoft Yahei","黑體","宋體",sans-serif | font-family: "Arial","Microsoft Yahei","黑體","宋體",sans-serif |
| font-size | 字體系列. | 數(shù)值+px / 百分比,smaller.larger(相對(duì)父元素) | font-size: 30px / 150% / smaller; |
| font-weight | 字體粗細(xì). | 100~900 / normal(400), blod(700) / bloder / lighter/ inherit | font-weight: bold / 700; |
| font-style | 字體的風(fēng)格 | normal / italic / oblique / inherit | font-style: italic / oblique; |
| font | 字體屬性集合簡(jiǎn)寫 | 順序依次是: font-style font-variant font-weight font-size/line-height font-family | font:italic bold 12px/20px arial,sans-serif; |
| text-shadow | 文字陰影 | h-shadow v-shadow blur color | text-shadow: 4px 5px 6px rgba(,250,250,.6); |
| text-decoration | 文本修飾 | none(default) / underline / overline / line-through / inherit | text-decoration: underline; |
| text-transform | 文本大小寫 | none(default) / capitalize / uppercase / lowercase / inherit | text-transform: uppercase; |
| text-indent | 文本縮進(jìn) | 數(shù)值+em | text-indent: 2em; |
| text-align | 水平對(duì)齊方式 | left(default) / right / center / justify / inherit | text-align: center; |
| letter-spacing | 字符間距 | 數(shù)值+px (允許使用負(fù)值) | letter-spacing: 2px / -3px; |
| line-height | 行高 | 數(shù)字 / 百分比 / 數(shù)值+px | line-height: 1.5 / 150% / 20px; |
| word-wrap | 換行 | normal / break-word | word-wrap: normal / break-word; |
| writing-mode | 方向 | horizontal-tb / vertical-rl / vertical-lr / sideways-rl / sideways-lr | writing-mode: horizontal-tb; |
另外還有常用的 文字省略:
- 單行文字省略
white-space: no-wrap;
text-overflow: ellipsis;
overflow: hidden;
- 多行文字省略
注意: 不要給文本父容器設(shè)置高度.
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3; /*多余的文字在第三行后省略掉 */
overflow: hidden;
第二部分: 實(shí)例展示與擴(kuò)展
-
color
.box .span1 {
color: red;
}
.box .span2 {
color: #5566ee;
}
.box .span3 {
color: rgba(100,200,150,.6);
}
效果

color拓展:
既然能給文字填充顏色. 那 可不可以 填充漸變顏色呢? 答案是: 可以的.
如下:
.box p {
padding: 20px;
width: 400px;
border: 1px solid red;
font-size: 50px;
background-image: -webkit-linear-gradient(bottom left,red,yellow,green,cyan); /* 為文本元素提供漸變背景 */
/* background: linear-gradient(to bottom left,red,yellow,green,cyan); */
-webkit-background-clip:text; /* 用文本剪輯背景,用漸變背景作為顏色填充文本。 */
-webkit-text-fill-color:transparent; /* 使用透明顏色填充文本。 */
color:transparent; /* 使用透明顏色填充文本。 */
}
效果

再來,
既然能文字能填充顏色. 那能不能填充其他的東西呢? 比如 圖片...
答案還是 可定的 .
如下
.box {
border: 1px solid red;
text-align: center;
width: 400px;
font-size: 150px;
font-weight: 900;
/* 核心代碼 */
background: url(http://thumbs.dreamstime.com/b/%E7%A7%8B%E5%A4%A9%EF%BC%8C%E4%B8%8E%E6%A0%91%E7%9A%84%E7%A7%8B%E5%A4%A9%E9%A3%8E%E6%99%AF-%E5%A4%AA%E9%98%B3%E5%8F%91%E5%85%89-46805832.jpg) center center no-repeat; /* 圖片填充 */
-webkit-background-clip: text; /* 以文字為剪切蒙版 */
-webkit-text-fill-color:transparent; /* 設(shè)置文字透明 */
color: transparent; /* 設(shè)置文字透明 */
}
效果

-
font-size
字體的大小 因?yàn)橛欣^承性,所以可以從兩個(gè)方面來設(shè)置它.
一 設(shè)置固定大小: number+px;
二 相對(duì)父容器的字體大小: 百分比 或 smaller, larger
如下
.father {
font-size: 20px;
}
.son1 {
font-size: 30px; /* 最常用 */
}
.son2 {
font-size: 200%; /* 在不知道父元素字體大時(shí),可以用 */
}
.son3 {
font-size: smaller;
}
效果

font-size拓展
- 拓展(一)
計(jì)算機(jī)邏輯是非常嚴(yán)謹(jǐn)?shù)? 就算我們看不到的空格它也會(huì)把她計(jì)算進(jìn)來.
這種情況就會(huì)出現(xiàn)一種情況: 想要兩個(gè)元素緊挨在一起,結(jié)果卻又一道縫隙在中間.
這時(shí)候.font-size就是解決這個(gè)問題的方法之一.
如下圖:

實(shí)例:
.father {
font-size: 0; /* 父容器字體大小設(shè)置為零 */
}
.father span {
border: 1px solid red;
font-size: 20px; /* 在子元素里恢復(fù)大小 */
}
效果

- 拓展(二)
在瀏覽器中.特別是在chrome瀏覽器中.有默認(rèn)最小字體大小的設(shè)置.一般為8px.
意思就是font-size: 6px,也是顯示8px的大小.
問題來了: 怎么才能把文字小于8px顯示在屏幕上呢?
那就要 用到transform: scale(0.0<參數(shù)<1.0>);
實(shí)例:
.fatherBox .normal {
font-size: 6px; /* 這里設(shè)置了6px, 實(shí)際效果大小是8px */
}
.fatherBox .scale {
font-size: 6px; /* 這里設(shè)置了6px, 實(shí)際效果大小是8px */
transform: scale(0.8);
-webkit-transform: scale(0.8); /* 0.8是縮放比例 */
}
效果:

-
font
font是 字體所有字體設(shè)置的一個(gè)簡(jiǎn)寫.
可以按順序設(shè)置如下屬性:
font-style (可選)
font-variant (可選)
font-weight (可選)
font-size/line-height /* 規(guī)定字體尺寸和行高 */
font-family
實(shí)例:
.fatherBox p {
font: italic small-caps bold 30px/1.5 "宋體";
}
效果

這里需要注意的是: font-variant 這個(gè)屬性 variant : 變種; 變體; 變形;
它的值只有: small-caps 顯示小型大寫字母的字體 (normal, inherit不算的話)
它可以理解成: 小型化的大寫字母
例如:
<!-- HTML -->
<div class="fatherBox">
<p class="p1">CSS: font-varint</p>
<p class="p2">CSS: normal</p>
</div>
/* CSS */
.fatherBox .p1 {
font-variant: small-caps;
}
效果:

-
text-shadow
基本用法:
text-shadow: h-shadow v-shadow blur color;
h-shadow:必需。水平陰影的位置。允許負(fù)值。
v-shadow:必需。垂直陰影的位置。允許負(fù)值。
blur:可選。模糊的距離。
color:可選。陰影的顏色。
text-shadow拓展
文字和圖片一樣, 可以產(chǎn)生陰影.
在平面設(shè)計(jì)中, 陰影有很多的妙用..
如果用好陰影, 不僅可以提高文字美感,還可以產(chǎn)生一些酷炫的效果. 如 閃爍,浮雕.3D立體字....
實(shí)例
.father .p1 { /* 一般陰影 */
text-shadow: 4px 5px 5px green;
}
.father .p2 { /* 閃爍效果 */
text-shadow: 0 0 .1em,
0 0 .3em;
}
.father .p3 { /* 浮雕效果 */
text-shadow: 2px 2px green,
-2px -2px green,
2px -2px green,
-2px 2px green;
}
.father .p4 { /* 3D立體效果 */
text-shadow: 0 1px hsl(0,0%,85%),
0 2px hsl(0,0%,80%),
0 3px hsl(0,0%,75%),
0 4px hsl(0,0%,70%),
0 5px hsl(0,0%,65%),
0 5px 10px black;
}
[注] hsl() 是顏色的 一種 色彩表達(dá)模式.
HSL即[色相]、[飽和度]、[亮度](英語:Hue, Saturation, Lightness)
具體詳情點(diǎn)擊:
https://baijiahao.baidu.com/s?id=1639770452743689307&wfr=spider&for=pc
效果

-
text-decoration
在很多情況下,為了 突然, 標(biāo)記, 注釋 一些文本內(nèi)容.
我們經(jīng)常要給 這些文字 來修飾一下,以別其他文字.
那我們就要用到 text-decoration.
案例
.father .p1 {
text-decoration: underline ; /* 下劃線在文字下方 */
}
.father .p2 {
text-decoration: overline; /* 下劃線在文字上方 */
}
.father .p3 {
text-decoration: line-through; /* 下劃線穿過文字 */
}
效果:

text-decoration拓展
從上面例子可以做到. text-decoration確實(shí)起到了標(biāo)識(shí)一些想要注意的文字.
但是問題又隨之而來: 我要的下劃線是要有 顏色的..
就想我們小時(shí)候讀書用紅筆把重點(diǎn)內(nèi)容標(biāo)出來一樣,既美觀又醒目.
同樣, css設(shè)計(jì)者同樣考慮到這個(gè)小細(xì)節(jié)...
實(shí)例:
.father .p1 {
text-decoration: underline red; /* 顏色屬性可選,默認(rèn)跟字體設(shè)置的color顏色一樣 */
}
效果

還有一個(gè) 算半個(gè) 文字 修飾的 偽類: text::selection {}
網(wǎng)頁通常默認(rèn)選中的文字 底色為 藍(lán)色,字體顏色為 白色
通過應(yīng)用text::selection {}偽類 我們可以 修改 被選中 文字的 底色和字體顏色
實(shí)例:
.text::selection {
background: green;
color: red;
}
效果:

-
letter-spacing
這個(gè)命名控制 元素內(nèi)所有字符之間的空隙距離
在英文里, 因?yàn)橛袉卧~的存在,
所以還有一個(gè) word-spacing 的命名.它只負(fù)責(zé)控制 單詞與單詞之間空隙.
word-spacing 對(duì)中文 不起作用的
所以,在中文調(diào)整字間距的時(shí)候,只有使用 letter-spacing.
(當(dāng)然, 在元素里面使用 也是可以的,但是太土味了.)
實(shí)例:
.fatherBox .p1 { /* 我對(duì)所有字符之間間隔起作用 */
letter-spacing: 5px;
}
.fatherBox .p2 { /* 我是對(duì)單詞之間空隙間隔起作用 */
word-spacing: 5px;
}
.fatherBox .p3 {/* letter-spacing對(duì)中文起作用 */
letter-spacing: 5px;
}
.fatherBox .p4 { /* word-spacing對(duì)中文不起作用 */
word-spacing: 5px;
}
效果

writing-mode
現(xiàn)代書本上的文字都是從左到右的順序排列,但是古時(shí)候不同,文字都是從右至左排列的,現(xiàn)在在很多古籍、牌坊、石碑等上面依舊可以看到從右至左的文字。
css也可以調(diào)整文本排版方向,是通過什么屬性控制的呢?
writing-mode 屬性定義了文本在水平或垂直方向上如何排布。
| writing-mode 值 | 描述 | 示意 |
|---|---|---|
| horizontal-tb | (正常書寫) 水平方向自上而下的書寫方式。即 left-right-top-bottom | ![]() 111.png
|
| vertical-rl | 垂直方向自右而左的書寫方式。即 top-bottom-right-left | ![]() 222.png
|
| vertical-lr | 垂直方向內(nèi)內(nèi)容從上到下,水平方向從左到右 | ![]() 333.png
|


