1. 程式人生 > 其它 >第一章、css高階

第一章、css高階

目錄

一、html

1、文件宣告與字元編碼
* <!DOCTYPE html>:特殊且固定的文件宣告標籤
* <html lang="en">:搜尋引擎優化和瀏覽器有幫助
    - lang:檔案使用的語言。瀏覽器的翻譯此頁功能與此相關
* <meta charset="UTF-8">:
    - charset:瀏覽器解碼檔案的方式。開發者編碼檔案的方式應與其一致
2、常用語義標籤
a、常用語義標籤
* 文字標題
    - <h1></h1> ~ <h6></h6>
* 段落文字
    - <p></p>
* 換行
    - <br/>
* 水平線
    - <hr/>
* 加粗
    - <b></b>
    - <strong></strong>(推薦)
* 傾斜
    - <em></em>(推薦)
    - <i></i>
* 刪除線
    - <s></s>
    - <del></del>(推薦)
* 下劃線
    - <u></u>
* 下標
    - <sub></sub>
* 上標
    - <sup></sup>
b、hr標籤
<!-- 標籤的屬性和值一樣時,可省略賦值 -->
<hr color="red" width="300" align="left" noshade="noshade"/>
3、特殊符號
顯示結果 描述 實體名稱
< 小於號 &lt;
> 大於號 &gt;
  非間斷空格 &nbsp;
em空格 &emsp;
© 版權所有 &copy;
® 註冊商標 &reg;
商標 &trade;
4、常用標籤
a、div和span標籤
<!-- 沒有具體含義,用來劃分頁面的區域,獨佔一行 -->
<div></div>
<!-- 沒有實際意義,主要應用在對於文字獨立修飾的時候,內容有多寬就佔用多寬的空間距離 -->
<span></span>
b、ol-li有序列表
<!--
 - type:預設值1,可取值1、a、A、i、I
 - start:預設值1,列表開始值
 -->
<ol type="a" start="27">
    <li>黃婷婷</li>
    <li>孟美岐</li>
    <li>張婧儀</li>
</ol>
c、ul-li無序列表
<!--
 - type:
     disc:預設值,實心圓
     circle:空心圓
     square:實心方塊
     none:空
 -->
<ul type="none">
    <li>黃婷婷</li>
    <li>孟美岐</li>
    <li>張婧儀</li>
</ul>
d、dl-dt-dd自定義列表
<dl>
    <dt>黃婷婷</dt>
    <dd>孟美岐</dd>
</dl>
e、img標籤
<!--
 1、路徑:
     - 相對路徑:./、../
     - 斜槓路徑:http://localhost:63342/
     - 絕對路徑:file:///C:/
 -->
<img src="./gongping.png"
     title="滑鼠懸停上去之後的提示資訊"
     alt="圖片不顯示之後(載入失敗)的提示資訊"
     width="200px"
     height="200px">
f、a標籤
<!--
 - target:
     _self:預設值
     _blank:新視窗開啟
 -->
<a href="https://www.baidu.com" target="_self"></a>
g、table表格
<!--
 * table:
     - width:寬度(px、百分比)
     - height:高度
     - border:邊框
     - bordercolor:邊框顏色
     - bgcolor:背景顏色
     - align:水平對齊,可取值left、right、center
     - cellspacing:單元格與單元格之間的間距
     - cellpadding:單元格與內容之間的空隙
 * tr:
     - height:高度
     - bgcolor:背景顏色
     - align:水平對齊,可取值left、right、center
     - valign:垂直對齊,可取值top、middle、bottom
 * td:
     - width:寬度
     - height:高度
     - bgcolor:背景顏色
     - align:水平對齊,可取值left、right、center
     - valign:垂直對齊,可取值top、middle、bottom
     - colspan:合併列
     - rowspan:合併行
 -->
<table width="100%"
       height="200px"
       border="10"
       bordercolor="red"
       bgcolor="green"
       align="center"
       cellspacing="10"
       cellpadding="10">
    <tr height="200px"
        bgcolor="blue"
        align="left"
        valign="top">
        <th>姓名</th>
        <th>年齡</th>
        <th>地址</th>
    </tr>
    <tr>
        <td width="200px"
            height="200px"
            bgcolor="yellow"
            align="right"
            valign="bottom">黃婷婷
        </td>
        <td colspan="2" rowspan="2">18</td>
    </tr>
    <tr>
        <td>無錫</td>
    </tr>
</table>
h、form表單
<!--
 - method:可取值GET、POST
 -->
<form action="http://www.baidu.com" method="GET">
    使用者名稱:<input type="text" name="username" placeholder="使用者名稱"/><br/>
    密&emsp;碼:<input type="password" name="password" placeholder="密碼"/><br/>
    <button type="submit">提交</button>
    <input type="reset"/>
    <input type="button" value="註冊"/>
</form>

二、css

1、樣式表
<!--
 1、樣式表分類
     - 外部樣式表:@import、link
     - 內部樣式表:style標籤
     - 行內樣式表:元素標籤
 2、@import和link對比
     - @import:頁面載入完畢,再載入樣式表。
     - link:頁面載入完畢,同時樣式表也載入完畢。相容性好。可以dom操作(推薦)
 -->
<style>@import url("./index.css");</style>
<link rel="stylesheet" href="./index.css">
2、選擇器
<!--
 1、選擇器分類
     - 萬用字元選擇器:*
     - 標籤選擇器:div
     - class屬性選擇器:.box
     - id屬性選擇器:#app
     - 群組選擇器:div,span
     - 後代選擇器:div span
     - 子代選擇器:div>span
     - 偽類選擇器:span:hover
 -->
<div class="box" id="app">
    <span>這是一段中文</span>
</div>
3、選擇器的權重
* 選擇器的權重
    - 標籤選擇器:1
    - class屬性選擇器:10
    - id屬性選擇器:100
    - 包含選擇器:選擇器權重之和
    - 內聯樣式:1000
    - !important:10000
* 優先順序
    - 權重不同:高權重選擇器 > 低權重選擇器
    - 權重相同:後面的樣式 > 前面的樣式
4、文字屬性
屬性 描述 說明
font-size 字型大小 瀏覽器預設16px
font-family 字型 字型中有空格,需加雙引號。
字型以逗號分隔,按從左往右順序解析,直到有字型
color 顏色 red
#ff0000
rgb(255,0,0)
font-weight 加粗 bolder
bold
normal
lighter
100-900
font-style 傾斜 italic:傾斜
oblique:更傾斜
normal
text-align 文字水平對齊 left
right
center
justify:兩端對齊,多行起作用,英文效果明顯
line-height 行高 line-height=height:文字垂直居中
text-indent 首行縮排 只對第一行起作用
letter-spacing 字間距 英文單詞間距使用word-spacing屬性
text-decoration 文字修飾 none
underline
overline
line-through
可多值同時設定
text-transform 文字變換 capitalize:英文首字母大寫
uppercase
lowercase
none
font 文字簡寫 font: font-style? font-weight? font-size/line-height? font-family;
順序固定
5、列表屬性
屬性 描述 說明
list-style-type 定義列表符合樣式 disc
circle
square
none
list-style-image 將圖片設定為列表符合樣式 url("")
list-style-position 設定列表項標記的放置位置 outside:預設值
inside
list-style 簡寫 list-style: list-style-type? list-style-image? list-style-position?;
none:去除列表符號
6、背景屬性
屬性 描述 說明
background-color 背景顏色 red
#ff0000
rgb(255,0,0)
background-image 背景圖片 url("")
background-repeat 背景圖片的平鋪 no-repeat
repeat
repeat-x
repeat-y
background-position 背景圖片的定位 background-position: 水平位置 垂直位置;
background-attachment 背景圖片的固定 scroll:隨元素滾動
fixed:相對瀏覽器視窗固定(視覺差案例)
background 簡寫 background: background-color? background-image? background-repeat? background-position? background-attachment?;
未取值的會取預設值,要注意放後面會覆蓋前面的值
background-size 背景圖片的尺寸 px、百分比
cover:寬高比例不變,元素覆蓋
contain:寬高比例不變,元素留白
7、浮動屬性
  • float
* 可取值:left、right、none
* 作用:
    - 使文字圍繞該元素顯示
    - 豎排列變橫排列
* 橫排列原則(B元素的上一個元素是A元素,B是浮動的):
    - A不是浮動的,則B在A的下面
    - A也是浮動的,則B在A的後面,一行放不下則會擠到下一行,擠到下一行的B頂部與A底部對齊
  • clear
* 可取值:left、right、both、none
* 清楚浮動原則:
    - float元素會脫離文件流,所以在父元素中不會佔據高度
    - 清除浮動只改變元素自身的排列方式(換行,頂部與已排列最高元素的底部對齊)
* 浮動塌陷問題解決方式
    - 浮動元素後面補一個塊元素設定clear: both;
    - overflow: hidden;bfc方式讓浮動元素計算高度
8、盒子模型
  • padding
* padding取值方式
    - 一個值:上下左右
    - 兩個值:上下 左右
    - 三個值:上 左右 下
    - 四個值:上 右 下 左
* 單一方向取值:padding-top、padding-right、padding-bottom、padding-left
* 背景會蔓延到內邊距
  • border
屬性 描述 說明
border-width 邊框寬度 可以一個值、兩個值、三個值、四個值
border-color 邊框顏色 可以一個值、兩個值、三個值、四個值
border-style 邊框風格 可以一個值、兩個值、三個值、四個值
可取值:solid、double、dashed、dotted
border 簡寫 border: border-width? border-color? border-style;
單一方向取值:border-top、border-right、border-bottom、border-left
背景會蔓延到邊框
  • margin
* margin取值方式
    - 一個值:上下左右
    - 兩個值:上下 左右
    - 三個值:上 左右 下
    - 四個值:上 右 下 左
* 單一方向取值:margin-top、margin-right、margin-bottom、margin-left
* 背景不會蔓延到外邊距
* 支援取負值
* 水平居中:margin: 0 auto;
* 特性問題
    + 盒子是兄弟關係
        - 垂直方向:取相鄰外邊距最大值
        - 水平方向:取相鄰外邊距之和
    + 盒子是父子關係
        - 垂直方向:子盒子外邊距會傳遞給父盒子。解決方式:
            ~ 父盒子:border: 1px solid transparent;
            ~ 父盒子或子盒子:float: left;
            ~ 父盒子:overflow: hidden;
        - 水平方向:子盒子外邊距不會傳遞給父盒子
9、溢位屬性
  • overflow
* 可取值:
    - visible:預設值,溢位顯示
    - hidden:溢位隱藏
    - scroll:滾動
    - auto:溢位滾動
    - inherit:繼承父元素
* Y軸溢位滾動,X軸溢位隱藏:overflow-y: auto;overflow-x: hidden;
  • white-space
* 可取值:
    - normal:預設值
    - nowrap:文字不換行,直到遇到<br/>
    - pre:顯示空格,顯示回車,不自動換行(<pre></pre>:預格式化文字標籤)
    - pre-wrap:顯示空格,顯示回車,自動換行
    - pre-line:不顯示空格,顯示回車,自動換行
    - inherit:
  • text-overflow
* 可取值:
    - clip:預設值
    - ellipsis:顯示省略號
* 文字溢位顯示省略號:width: ;overflow: hidden;white-space: nowrap;
  text-overflow: ellipsis;
10、元素顯示型別
分類 特性 舉例 display
塊元素 縱向排列
可以設定寬高
p元素不可以作為塊級元素的容器
div、p、ul-li、ol-li、dl-dt-dd、h1~h6 block、list-item
行內元素 橫向排列
不可以設定寬高
盒子模型:左右支援,上下不支援
a、b、em、i、span、strong inline
行內塊元素 橫向排列
可以設定寬高
img、input inline-block
隱藏元素 不顯示且脫離文件流 所有 none
11、定位
  • position
* 可取值:
    - static:預設值
    - absolute:絕對定位,脫離文件流。相對於定位的父元素位置,沒有定位的父元素則相對於body元素位置
    - relative:相對定位。相對於自身的初始位置
    - fixed:固定定位,脫離文件流。相對於瀏覽器視窗位置
    - sticky:粘性定位。可以做吸頂效果
* 配合屬性:
    - top:px、百分比
    - right:px、百分比
    - bottom:px、百分比
    - left:px、百分比
* 行內元素轉塊元素:
    - display: block;
    - float: left;
    - position: absolute;
  • z-index
* 兄弟元素層級優先順序
    - 定位元素與未定位元素之間,z-index大於等於0,則定位元素層級高於未定位元素,否則反之
    - 定位元素與定位元素之間,z-index數值越大層級越高。z-index可取負值
    - 定位元素與定位元素之間,z-index數值相同,後面元素的層級高於前面元素
* 父子定位元素層級優先順序
    - 子定位元素z-index小於0,則父定位元素層級高於子定位元素
12、屬性補充
屬性 描述 說明
outline 輪廓,複合屬性 none:無輪廓
opacity 透明度 0~1

三、案例

1、錨點