[TOC]
# 文本元素
## 屬性
~~~
font-size:16px; 文字大小
font-weight: 700 ; 值從100-900,文字粗細,normal不加粗,不推薦使用font-weight:bold;
font-family:微軟雅黑; 文本的字體,最好加引號
font-style: normal | italic; normal 默認值,取消傾斜 italic 斜體
line-height: 行高
~~~
盡量使用偶數字號,ie6在奇數下會存在問題.
現在大部分默認是14px
字體傾斜除了用i和em之外,可以用css,但是css沒有語義
## 文本屬性連寫
~~~
font: font-style font-weight font-size/line-height font-family;
~~~
◆:注意:font:后邊寫屬性的值。一定按照書寫順序。其中不需要的可以省略,
◆:font-size和字體font-family為必寫項。
各個屬性空格隔開
~~~
font:italic 700 16px/40px 微軟雅黑;
~~~
~~~
font: italic 700 16px/40px 微軟雅黑;
~~~
## 文字的表達方式
直接寫中文名稱
~~~
div{
font-family : 微軟雅黑;
}
~~~
寫字體的英文名稱
~~~
div{
font-family : "microsoft yahei";
}
~~~
unicode編碼

第一步:f12
第二步:找到console
第三步:輸入`escape("宋體")` 注意英文括號和雙引號,就可以得到編碼了
## 行間距
`line-height`
行與行之間的距離,字符的垂直間距,一般稱為行高.
一般情況下,行距比字號大7.8像素左右就行
## 字間距
~~~
letter-spacing: 2px;
~~~
## 水平對齊方式
text-align
水平對齊方式
用于設置文本內容的水平對齊,相當于html中的align對齊屬性
可用值如下:
* left: 左對齊(默認值)
* right: 右對齊
* center: 居中對齊
## 首行縮進
`text-indent`
屬性值可以為不同單位的數值,em字符寬度的倍數,或相當于瀏覽器窗口寬度的百分比%,允許使用負值,建議使用em
1em就是一個字的寬度, 是一個字的寬度, 如果是漢字段落, 他就是漢字寬度
## 文本裝飾
`text-decoration`通常用于給鏈接修改裝飾效果
可以把a標簽的下劃線取消
| 值 | 描述 |
| --- | --- |
| none | 默認,定義標準的文本,取消裝飾 |
| underline | 定義文本下的一條線,下劃線也是我們鏈接自帶的 |
| overline | 定義文本上的一條線 |
| line-through | 定義穿過文本下的一條線 |
## 文字移除內容
使用`text-indent:-5000em;`
~~~
a {
display: inline-block;
text-indent: -5000em;
}
~~~
將元素高度設置為0,使用內邊距將盒子撐開,給盒子使用`overflow:hidden;`將文字隱藏
~~~
.box {
width: 300px;
height: 0;
padding-top: 100px;
overflow: hidden;
background: red;
}
~~~
## 圖片與文字垂直對齊
~~~
vertical-align : baseline |top |middle |bottom
~~~
基線, 頂部, 中間, 底部
vertical-align 不影響塊級元素中的內容對齊,它只針對于行內元素或者行內塊元素,特別是行內塊元素, 通常用來控制圖片和表單等。對于塊元素無效
行內塊元素 `vertical-align:middle;`文字與圖片垂直居中對齊
`vertical-align`對`inline-block`最敏感。
默認屬性是:`vertical-align:baseline;`
~~~
img {
vertical-align: middle;
}
~~~

# 文本的裝飾
text-decoration 通常我們用于給鏈接修改裝飾效果
| 值 | 描述 |
| ------------ | ----------------------- |
| none | 默認。定義標準的文本。 |
| underline | 定義文本下的一條線。下劃線 也是我們鏈接自帶的 |
| overline | 定義文本上的一條線。 |
| line-through | 定義穿過文本下的一條線。 |
~~~
text-decoration: none; /* 取消下劃線 文本裝飾 */
~~~
# 行高
line-height
## 瀏覽器默認文字大小
瀏覽器默文字大小為16px
行高=文字大小+上邊距+下邊距

## 行高的定義
行高指的是文本基線與基線的距離

## 行高的作用
當文字行高與父容器的高度一樣的時候,文字垂直居中對齊
~~~
div{
height:100px;
line-height:100px;
}
~~~
## 行高的單位問題


# 凹凸文字
~~~css
<head>
<meta charset="utf-8">
<style>
body {
background-color: #ccc;
}
div {
color: #ccc;
font: 700 80px "微軟雅黑";
}
div:first-child {
/* text-shadow: 水平位置 垂直位置 模糊距離 陰影顏色; */
text-shadow: 1px 1px 1px #000, -1px -1px 1px #fff;
}
div:last-child {
/* text-shadow: 水平位置 垂直位置 模糊距離 陰影顏色; */
text-shadow: -1px -1px 1px #000, 1px 1px 1px #fff;
}
</style>
</head>
<body>
<div>我是凸起的文字</div>
<div>我是凹下的文字</div>
</body>
~~~

# 溢出文字隱藏
## word-break:自動換行
主要處理英文單詞
* normal 使用瀏覽器默認的換行規則。
* break-all 允許在單詞內換行。
* keep-all 只能在半角空格或連字符處換行。
~~~
<style>
div {
width: 120px;
height: 20px;
border: 1px solid #f00;
word-break: keep-all;
}
</style>
</head>
<body>
<div>
my name is andy
</div>
</body>
~~~
## text-overflow 文字溢出
~~~
text-overflow : clip | ellipsis
~~~
設置或檢索是否使用一個省略標記(…)標示對象內文本的溢出
* clip : 不顯示省略標記(…),而是簡單的裁切
* ellipsis : 當對象內文本溢出時顯示省略標記(…)
# 字體圖標
圖片是有諸多優點的,但是缺點很明顯,比如圖片不但增加了總文件的大小,還增加了很多額外的”http請求”,這都會大大降低網頁的性能的。更重要的是圖片不能很好的進行“縮放”,因為圖片放大和縮小會失真。 我們后面會學習移動端響應式,很多情況下希望我們的圖標是可以縮放的。此時,一個非常重要的技術出現了, 這就是字體圖標(iconfont).
**字體圖標優點**
~~~
可以做出跟圖片一樣可以做的事情,改變透明度、旋轉度,等..
但是本質其實是文字,可以很隨意的改變顏色、產生陰影、透明效果等等...
本身體積更小,但攜帶的信息并沒有削減。
幾乎支持所有的瀏覽器
移動端設備必備良藥...
~~~
當UI設計人員給我們svg文件的時候,我們需要轉換成我們頁面能使用的字體文件, 而且需要生成的是兼容性的適合各個瀏覽器的。
? 推薦網站:[http://icomoon.io](http://icomoon.io)
**icomoon字庫**
IcoMoon成立于2011年,推出的第一個自定義圖標字體生成器,它允許用戶選擇他們所需要的圖標,使它們成一字型。 內容種類繁多,非常全面,唯一的遺憾是國外服務器,打開網速較慢。
推薦網站:[http://www.iconfont.cn/](http://www.iconfont.cn/)
**阿里icon font字庫**
[http://www.iconfont.cn/](http://www.iconfont.cn/)
這個是阿里媽媽M2UX的一個icon font字體圖標字庫,包含了淘寶圖標庫和阿里媽媽圖標庫。可以使用AI制作圖標上傳生成。
**使用**
第一步:引入項目下面生成的fontclass代碼:
~~~
<link rel="stylesheet" type="text/CSS" href="./iconfont.CSS">
~~~
第二步:挑選相應圖標并獲取類名,應用于頁面:
~~~
<i class="iconfont icon-xxx"></i>
~~~
## 字體引入html
得到壓縮包之后,最后一步,是最重要的一步了, 就是字體文件已經有了,我們需要引入到我們頁面中。
首先把文件放入到 fonts文件夾里面。 通俗的做法
第一步:在樣式里面聲明字體: 告訴別人我們自己定義的字體
~~~
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?7kkyc2');
src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
url('fonts/icomoon.woff?7kkyc2') format('woff'),
url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
~~~
第二步:給盒子使用字體
~~~
span {
font-family: "icomoon";
}
~~~
第三步:盒子里面添加結構
~~~
span::before {
/* 對應網站上圖標的這個 */
content: "\e900";
}
或者
<!-- 網站上的圖標復制下, 可能會什么也看不到, 沒事 -->
<span>?</span>
~~~
# 文本一行顯示
出現滾動條
~~~
p {
white-space: nowrap;
}
~~~
超出省略號顯示
~~~
p {
white-space: nowrap;
/* 超出元素默認寬度隱藏 */
overflow: hidden;
/* 使用省略號代表有內容未顯示 */
text-overflow: ellipsis;
}
~~~
# 多行文本溢出異常
~~~
-webkit-line-clamp; 用該屬性來限定塊元素內文本顯示的行數
display: -webkit-box; 將對象作為彈性的伸縮盒子顯示
-webkit-box-orient; 設置伸縮盒子對象內子對象的排列方式
text-overflow: ellipse;使用省略號告訴用戶有內容沒顯示
overflow:hidden; 超出部分隱藏
~~~
超出2行, 省略號顯示
~~~
p {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
~~~
通用方法
~~~
p {
height: 30px;
line-height: 2em;
border: 1px solid red;
position: relative;
overflow: hidden;
}
p::after {
content: "...";
position: absolute;
right: 0px;
bottom: 0px;
padding: 0px 0px 0px 10px;
background: #fff;
}
~~~
- HTML
- 標簽
- 超鏈接
- 列表
- 表格和表單
- h5新增標簽
- 快捷方式
- 標簽包含
- CSS
- 選擇器
- 行內,塊元素,鏈接
- css三大特性
- 盒子模型
- 定位
- css可見性
- emment書寫
- 文本元素
- 外觀屬性
- 背景
- 浮動
- ps
- 用戶界面樣式
- 顯示和隱藏
- 過渡
- 2D,3D變形
- 動畫animation
- 伸縮布局(CSS3)
- BFC
- 優雅降級和漸進增強
- 3D旋轉
- 雙飛翼和圣杯
- JS基礎
- 輸出消息的幾種方式
- 數據類型
- Date對象
- Math對象
- Array對象
- 字符串常用方法
- 數據類型轉換
- 等號運算
- 代碼調試
- 數組
- 函數
- WebAPI
- webapi簡介
- 獲取頁面元素
- 事件
- 屬性操作
- 創建元素
- 節點操作
- 事件詳解
- BOM
- 位置相關屬性
- 拖拽彈窗
- 彈出層加遮罩
- ES6
- let和const
- 解構表達式變化
- 函數優化
- map和reduce
- nrm
- npm
- npm基礎
- package.json
- 淘寶鏡像
- webpack
- 介紹
- 多入口文件(Multiple entry files)
- Webpack CSS loader加載器
- webpack Image loader 加載圖片
- uglify-js壓縮打包JS
- webpack構建本地服務器
- vue內部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定義指令
- vue.extend構造器的延伸
- vue.set全局操作
- Vue的生命周期(鉤子函數)
- Template 制作模版
- Component 初識組件
- Component 組件props 屬性設置
- Component 父子組件關系
- Component 標簽
- vue選項
- propsData Option全局擴展數據傳遞
- computed Option 計算選項
- Methods Option 方法選項
- watch選項監控數據
- Mixins 混入選項操作
- Extends Option 擴展選項
- delimiters 選項
- vue實例和內置組件
- 實例屬性
- 實例方法
- 實例事件
- 內置組件 -slot
- vue-cli
- vue-cli介紹
- 項目目錄結構
- vue-cli模板
- vue-router
- 簡介
- 配置子路由
- 參數傳遞
- 單頁面多路由區域操作
- url傳遞參數
- vscode