字型
1. 字型相關的樣式
我們前面講過字型的兩個屬性
-
color
用來設定字型顏色 -
font-size
字型的大小em
相當於當前元素的一個font-size
rem
相對於根元素的一個font-size
當然,字型的屬性並不止這些
2. font-family
font-family
字型族(字型的格式)
-
serif
襯線字型 -
sans-serif
非襯線字型 -
monospace
等寬字型 -
cursive
手寫體 -
fantasy
夢幻字型
上述字型均不表示具體的某種字型,而是字型的分類
我們經常使用的一些字型,如微軟雅黑
、黑體
、楷體
、宋體
、Consolas
等,才是具體的某種字型
也就是說,font-family
指定字型的類別,瀏覽器會自動使用該類別下的字型
font-family
可以同時指定多個字型,多個字型間使用,
隔開
字型生效時優先使用第一個,第一個無法使用則使用第二個,以此類推
font-family: 'Courier New', Courier, monospace
3. 幾種字型
我是亂分類的,隨便看看就好
手寫體
Indie Flower
Ink Free
Nanum Pen
MV Boli
Segoe Print
Shadows Into
藝術體
Barrio
Julius Sans One
Lobster
Monoton
Poiret One
亂碼字型
MT Extra
Symbol
Webdings
Wingdings
中文字型
方正粗黑宋簡體
微軟雅黑
黑體
楷體
宋體
仿宋
4. @font-face
我們除了可以使用系統自帶的字型樣式外,還可以在伺服器端自定義字型位置
@font-face
可以將伺服器中的字型直接提供給使用者去使用
@font-face {
/* 指定字型名字 */
font-family: 'myFont1';
/* 伺服器中字型路徑 */
src: url('/font/ZCOOLKuaiLe-Regular.woff'),
url('/font/ZCOOLKuaiLe-Regular.otf'),
url('/font/ZCOOLKuaiLe-Regular.ttf') format('truetype');/* 指定字型格式,一般不寫 */
}
p {
font-size: 30px;
color: salmon;
font-family: myFont1;
}
問題
- 載入速度:受網路速度影響,可能會出現字型閃爍一下變成最終的字型
- 版權:有些字型是商用收費的,需要注意
- 字型格式:字型格式也有很多種(woff、otf、ttf),未必相容,可能需要指定多個
5. 圖示字型(iconfont)
圖示字型簡介
在網頁中經常需要使用一些圖示,可以通過圖片來引入圖示但是圖片大小本身比較大,並且非常的不靈活
所以在使用圖示時,我們還可以將圖示直接設定為字型,然後通過@font-face
的形式來對字型進行引入
這樣我們就可以通過使用字型的形式來使用圖示
fontawesome
下載解壓完畢之後,直接將css和webfonts移動到專案中即可使用
示例
<link rel="stylesheet" href="/font/fontawesome/css/all.css">
<style>
i {
color: green;
}
.fa-venus-mars,
.fa-mars-double {
color: red;
}
.fa-html5 {
color: #E34D22;
}
.fa-css3 {
color: blue;
}
.fa-js {
color: #D1B514;
}
</style>
<!-- 大小 -->
<i class="fab fa-weixin fa-lg"></i>
<i class="fab fa-weixin fa-2x"></i>
<i class="fab fa-weixin fa-3x"></i>
<br>
<!-- 邊框 -->
<i class="fab fa-weixin fa-2x fa-border"></i>
<br>
<!-- 旋轉 -->
<i class="fab fa-weixin fa-2x fa-rotate-90 "></i>
<!-- 水平對稱 -->
<i class="fab fa-weixin fa-2x fa-flip-horizontal "></i>
<!-- 垂直對稱 -->
<i class="fab fa-weixin fa-2x fa-flip-vertical "></i>
<br>
<!-- 動畫 -->
<i class="fa fa-venus-mars fa-3x fa-spin"></i>
<i class="fa fa-mars-double fa-3x fa-pulse"></i>
<br>
<!-- 列表 -->
<ul class="fa-ul">
<li><i class="fa-li fa fa-check-square"></i>can be used</li>
<li><i class="fa-li fa fa-spinner fa-spin"></i>as bullets</li>
<li><i class="fa-li fa fa-square"></i>in lists</li>
</ul>
<br><br><br>
<!-- 組合 -->
<span class="fa-stack fa-lg">
<i class="fab fa-html5 fa-stack-1x fa-10x"></i>
<i class="fab fa-css3 fa-stack-1x fa-4x"></i>
<i class="fab fa-js fa-stack-1x fa-2x"></i>
</span>
效果
其中fas
/fab
是免費的,其他是收費的
圖示字型其他使用方式
通過偽元素設定
- 找到要設定圖示的元素通過
::before
或::after
選中 - 在
content
中設定字型的編碼 - 設定字型的樣式
fab
:font-family: 'Font Awesome 5 Brands';
fas
:font-family: 'Font Awesome 5 Free'; font-weight:900;
示例
<style>
.poem {
width: 200px;
height: 300px;
margin: auto;
}
li {
list-style: none;
margin-left: -40px;
}
li::before {
content: '\f130';
/* font-family: 'Font Awesome 5 Brands'; */
font-family: 'Font Awesome 5 Free';
font-weight: 900;
margin-right: 10px;
color: gray;
}
</style>
<div class="poem">
<h1>武陵春·春晚</h1>
<p> [宋] 李清照</p>
<ul>
<li>風住塵香花已盡,</li>
<li>日晚倦梳頭。</li>
<li>物是人非事事休,</li>
<li>欲語淚先流。</li>
<li>聞說雙溪春尚好,</li>
<li>也擬泛輕舟。</li>
<li>只恐雙溪舴艋舟,</li>
<li>載不動、許多愁。</li>
</ul>
</div>
效果
通過實體設定
通過實體來使用圖示字型:&#x圖示編碼;
示例
<i class="fas"></i>
效果
iconfont
iconfont是阿里的一個圖示字型庫,海量圖示庫,圖示字型非常豐富
但是版權有點模橫兩可,如果需要商用,最好聯絡作者
不過一般情況下,公司企業都會有自己的UI設計團隊,會自己去進行設計
這裡使用方式大同小異,不過
- iconfont需要新增購物車後再新增至專案然後下載,下載包中有demo.html,詳細介紹了使用方式
- iconfont也提供了一種線上方式,直接在
我的專案
中選擇線上連結
可以複製出一份@font-face
的css程式碼
後續步驟與前面介紹的一致
示例
<!-- <link rel="stylesheet" href="/font/iconfont/iconfont.css"> -->
<style>
i.iconfont {
font-size: 100px;
}
p::before {
content: '\e811';
font-family: 'iconfont';
font-size: 50px;
}
/* 3、通過線上連線:這裡link和@font-face擇其一即可 */
@font-face {
font-family: 'iconfont';
/* Project id 2580407 */
src: url('//at.alicdn.com/t/font_2580407_c0kpuhebb7r.woff2?t=1622373966454') format('woff2'),
url('//at.alicdn.com/t/font_2580407_c0kpuhebb7r.woff?t=1622373966454') format('woff'),
url('//at.alicdn.com/t/font_2580407_c0kpuhebb7r.ttf?t=1622373966454') format('truetype');
}
</style>
<!-- 1、通過字元實體設定 -->
<i class="iconfont"></i>
<i class="iconfont"></i>
<i class="iconfont"></i>
<i class="iconfont"></i>
<!-- 2、通過偽元素設定 -->
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Totam deserunt tempore fugit quos eaque, ipsa rerum
suscipit iure cumque aspernatur esse cupiditate nihil quas nulla odit? Sequi accusantium labore maiores.</p>
效果