家居企業(yè)網(wǎng)站建設(shè)如何豬八戒網(wǎng)接單平臺
文章目錄
- 前端基礎(chǔ)知識
- HTML
- 1. html基本結(jié)構(gòu)
- 2.常見的html標(biāo)簽
- 注釋標(biāo)簽
- 標(biāo)題標(biāo)簽(h1~h6)
- 段落標(biāo)簽p
- 換行標(biāo)簽 br
- 格式化標(biāo)簽
- 圖片標(biāo)簽:img
- 超鏈接標(biāo)簽
- 表格標(biāo)簽
- 列表標(biāo)簽
- 表單標(biāo)簽
- input標(biāo)簽
- label標(biāo)簽
- select標(biāo)簽
- textarea 標(biāo)簽
- 盒子標(biāo)簽div&span
- 3. html特殊字符
- CSS
- 1. 基本語法
- 2. 引入方式
- 行內(nèi)樣式
- 內(nèi)部樣式
- 外部樣式
- 3.選擇器
- 基礎(chǔ)選擇器
- 標(biāo)簽選擇器
- 類選擇器
- id選擇器
- 通配符選擇器
- 復(fù)合選擇器
- 后代選擇器
- 子選擇器
- 并集選擇器
- 偽類選擇器
- 4.常用元素屬性
- 字體屬性
- 設(shè)置字體
- 大小
- 粗細(xì)
- 文字樣式
- 文本屬性
- 設(shè)置文本顏色
- 文本對齊
- 文本裝飾
- 文本縮進(jìn)
- 行高
- 背景屬性
- 背景顏色
- 背景圖片
- 背景平鋪
- 背景位置
- 背景尺寸
- 圓角矩形
- 5. 元素顯示模式
- 塊級元素
- 行內(nèi)元素
- 行內(nèi)元素和塊級元素的區(qū)別
- 改變顯示模式
- 6.盒子模型
- 邊框
- 內(nèi)外邊距
- 塊級元素水平居中
- 去除瀏覽器默認(rèn)樣式
- 7. 彈性布局
- flex布局基本概念
- 常用屬性
前端基礎(chǔ)知識
HTML
1. html基本結(jié)構(gòu)
html代碼是由一個(gè)個(gè)標(biāo)簽構(gòu)成的
- 標(biāo)簽一般成對出現(xiàn)
<h1></h1>
- 少數(shù)標(biāo)簽只有開始標(biāo)簽,稱為單標(biāo)簽
- 開始標(biāo)簽和結(jié)束標(biāo)簽之間寫的是標(biāo)簽的內(nèi)容
- 開始標(biāo)簽中可能會寫有屬性
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><input class="content" type="text">
</body>
</html>
- html標(biāo)簽是整個(gè)html文件的根標(biāo)簽
- head標(biāo)簽中寫的是頁面屬性
- body標(biāo)簽中寫的是頁面上顯示的內(nèi)容
- title標(biāo)簽中寫的是頁面的標(biāo)題
2.常見的html標(biāo)簽
注釋標(biāo)簽
<!-- 這是注釋 -->
標(biāo)題標(biāo)簽(h1~h6)
從1級標(biāo)題到6級標(biāo)題,數(shù)字越大字體越小
<h1>1</h1>
<h2>2</h2>
<h3>3</h3>
<h4>4</h4>
<h5>5</h5>
<h6>6</h6>
段落標(biāo)簽p
把一段長文本放到html中并不會分成段落,此時(shí)就要用到<p></p>
標(biāo)簽
<p>前端開發(fā)是創(chuàng)建WEB頁面或APP等前端界面呈現(xiàn)給用戶的過程,通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實(shí)現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互
</p>
注意:
- p標(biāo)簽和p標(biāo)簽之間存在著一個(gè)空隙
- 當(dāng)前的p標(biāo)簽,文章的開頭前面試沒有縮進(jìn)的,需要通過CSS實(shí)現(xiàn)
- p標(biāo)簽會自動(dòng)根據(jù)瀏覽器寬度來決定排版
- html中內(nèi)容首尾處的換行和空格都無效
- 在p標(biāo)簽文字中輸入多個(gè)空格只是相當(dāng)于一個(gè)空格
- html中輸入換行不會真的換行,而是相當(dāng)于一個(gè)空格
換行標(biāo)簽 br
- br是一個(gè)單標(biāo)簽
- 建議寫成
<br/>
<p>前端開發(fā)是創(chuàng)建WEB頁面或APP等前端界面呈現(xiàn)給用 戶的過程,<br/>通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實(shí)現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互</p>
格式化標(biāo)簽
- 加粗: strong 標(biāo)簽 和 b 標(biāo)簽
- 傾斜: em 標(biāo)簽 和 i 標(biāo)簽
- 刪除線: del 標(biāo)簽 和 s 標(biāo)簽
- 下劃線: ins 標(biāo)簽 和 u 標(biāo)簽
<strong>strong 加粗</strong>
<b>b 加粗</b>
<em>傾斜</em>
<i>傾斜</i>
<del>刪除線</del>
<s>刪除線</s>
<ins>下劃線</ins>
<u>下劃線</u>
圖片標(biāo)簽:img
img標(biāo)簽必須帶有src屬性,表示圖片的路徑
<img src="img/test.jpg">
img 標(biāo)簽的其他屬性
- alt: 替換文本. 當(dāng)文本不能正確顯示的時(shí)候, 會顯示一個(gè)替換的文字.
- title: 提示文本. 鼠標(biāo)放到圖片上, 就會有提示.
- width/height: 控制寬度高度. 高度和寬度一般改一個(gè)就行, 另外一個(gè)會等比例縮放. 否則就會圖片
失衡. - border: 邊框, 參數(shù)是寬度的像素. 但是一般使用 CSS 來設(shè)定
注意:
- 屬性可以有多個(gè), 不能寫到標(biāo)簽之前
- 屬性之間用空格分割, 可以是多個(gè)空格, 也可以是換行
- 屬性之間不分先后順序
- 路徑可以是相對路徑、絕對路徑、網(wǎng)絡(luò)路徑
超鏈接標(biāo)簽
- href: 必須具備, 表示點(diǎn)擊后會跳轉(zhuǎn)到哪個(gè)頁面.
- target: 打開方式. 默認(rèn)是 _self. 如果是 _blank 則用新的標(biāo)簽頁打開
<a href="https://www.baidu.com" target="_blank">點(diǎn)擊跳轉(zhuǎn)百度</a>
鏈接的幾種形式
跳轉(zhuǎn)內(nèi)部頁面
<a href="index.html">點(diǎn)我跳轉(zhuǎn)到 login.html</a>
<a href="login.html">點(diǎn)我跳轉(zhuǎn)到 index.html</a>
空鏈接: 使用 # 在 href 中占位
<a href="#">空鏈接</a>
下載鏈接: href 對應(yīng)的路徑是一個(gè)文件. (可以使用 zip 文件)
<a href="java.zip">下載文件</a>
網(wǎng)頁元素鏈接: 可以給圖片等任何元素添加鏈接(把元素放到 a 標(biāo)簽中 )
<a href="https://www.baidu.com" target="_blank"><img src="img/sexm.png" alt="">
</a>
表格標(biāo)簽
- table 標(biāo)簽: 表示整個(gè)表格
- tr: 表示表格的一行
- td: 表示一個(gè)單元格
- th: 表示表頭單元格. 會居中加粗
- thead: 表格的頭部區(qū)域(注意和 th 區(qū)分, 范圍是比 th 要大的)
- tbody: 表格得到主體區(qū)域
table 包含 tr , tr 包含 td 或者 th
表格標(biāo)簽有一些屬性, 可以用于設(shè)置大小邊框等. 但是一般使用 CSS 方式來設(shè)置.
這些屬性都要放到 table 標(biāo)簽中.
align 是表格相對于周圍元素的對齊方式. align=“center” (不是內(nèi)部元素的對齊方式)
border 表示邊框. 1 表示有邊框(數(shù)字越大, 邊框越粗), “” 表示沒邊框.
cellpadding: 內(nèi)容距離邊框的距離, 默認(rèn) 1 像素
cellspacing: 單元格之間的距離. 默認(rèn)為 2 像素
width / height: 設(shè)置尺寸.
注意, 這幾個(gè)屬性, vscode 都提示不出來.
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500"
height="500"><tr><td>姓名</td><td>性別</td><td>年齡</td></tr><tr><td>張三</td><td>男</td><td>10</td></tr><tr><td>李四</td><td>女</td><td>11</td></tr>
</table>
合并單元格
- 跨行合并: rowspan=“n”
- 跨列合并: colspan=“n”
步驟
- 先確定跨行還是跨列
- 找好目標(biāo)單元格(跨列合并, 左側(cè)是目標(biāo)單元格; 跨行合并, 上方是目標(biāo)單元格)
- 刪除的多余的單元格
列表標(biāo)簽
主要使用來布局的. 整齊好看.
- 無序列表
<ul><li>
- 有序列表[用的不多]
<ol><li>
- 自定義列表[重要] dl (總標(biāo)簽) dt (小標(biāo)題) dd (圍繞標(biāo)題來說明) 上面有個(gè)小標(biāo)題, 下面有幾個(gè)圍繞
著標(biāo)題來展開的
<h3>無序列表</h3>
<ul><li>1</li><li>2</li><li>3</li>
</ul>
<h3>有序列表</h3>
<ol><li>one</li><li>tow</li><li>three</li>
</ol>
<h3>自定義列表</h3>
<dl><dt>第一級</dt><dd>test</dd><dd>test</dd><dd>test</dd>
</dl>
表單標(biāo)簽
表單是提交用戶輸入信息的關(guān)鍵
表單分成兩個(gè)部分
- 表單域:包含表單元素的區(qū)域
<form>
標(biāo)簽 - 表單控件:輸入框,提交按鈕
<input>
標(biāo)簽
form標(biāo)簽
<form action="test.html"><input type="text" name="username"><input type="submit" value="提交">
</form>
點(diǎn)擊提交按鈕后就會嘗試給服務(wù)器發(fā)送
input標(biāo)簽
各種輸入控件, 單行文本框, 按鈕, 單選框, 復(fù)選框.
- type(必須有), 取值種類很多多, button, checkbox, text, file, image, password, radio 等.
- name: 給 input 起了個(gè)名字. 尤其是對于 單選按鈕, 具有相同的 name 才能多選一.
- value: input 中的默認(rèn)值.
1.文本框
<input type="text">
2.密碼框
<input type="password">
3.單選框
**單選框之間必須具備相同的 name 屬性, 才能實(shí)現(xiàn) 多選一 效果 **
<input type="radio" name="sex">男
<input type="radio" name="sex">女
4.復(fù)選框
<input type="checkbox"> 吃飯 <input type="checkbox"> 睡覺 <input type="checkbox">
打游戲
5.普通按鈕
<input type="button" value="按鈕">
6.提交按鈕
<form action="test.html">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
7.清空按鈕
<form action="test.html"><input type="text" name="username"><input type="submit" value="提交"><input type="reset" value="清空">
</form>
label標(biāo)簽
搭配 input 使用. 點(diǎn)擊 label 也能選中對應(yīng)的單選/復(fù)選框, 能夠提升用戶體驗(yàn)
<input type="radio" name="sex" id="sexm"><label for="sexm"><img src="img/sexm.png" width="15" height="15">男</label><input type="radio" name="sex" id="sexw"><label for="sexw"><img src="img/sexw.png" width="15" height="15">女</label>
select標(biāo)簽
下拉菜單
- option 中定義 selected=“selected” 表示默認(rèn)選中
<select name="" id=""><option value="">--請選擇出生年份--</option><option value="">1995</option><option value="">1996</option><option value="">1997</option><option value="">1998</option><option value="">1999</option><option value="">2000</option><option value="">2001</option><option value="">2002</option><option value="">2003</opt1ion></select>
textarea 標(biāo)簽
<textarea rows="3" cols="50">
</textarea>
- 文本域中的內(nèi)容, 就是默認(rèn)內(nèi)容, 注意, 空格也會有影響
- rows 和 cols 也都不會直接使用, 都是用 css 來改的.
盒子標(biāo)簽div&span
div 標(biāo)簽, division 的縮寫, 含義是 分割
span 標(biāo)簽, 含義是跨度
就是兩個(gè)盒子. 用于網(wǎng)頁布局
- div 是獨(dú)占一行的, 是一個(gè)大盒子.
- span 不獨(dú)占一行, 是一個(gè)小盒子
<div><span>hello</span><span>hello</span><span>hello</span>
</div>
<div><span>hello</span><span>hello</span><span>hello</span>
</div>
3. html特殊字符
- 空格:
- 小于號:
<;
- 大于號:
>;
- 按位與:
&;
CSS
1. 基本語法
選擇器+{多條樣式聲明}
- 選擇器決定針對誰修改 (找誰)
- 聲明決定修改啥. (干啥)
- 聲明的屬性是鍵值對. 使用 ; 區(qū)分鍵值對, 使用 : 區(qū)分鍵和值
- CSS中不區(qū)分字母大小寫
/*清楚默認(rèn)樣式*/
* {margin: 0;padding: 0;box-sizing: border-box;
}
2. 引入方式
行內(nèi)樣式
通過 style 屬性, 來指定某個(gè)標(biāo)簽的樣式.
只適合于寫簡單樣式. 只針對某個(gè)標(biāo)簽生效
缺點(diǎn): 不能寫太復(fù)雜的樣式.
這種寫法優(yōu)先級較高, 會覆蓋其他的樣式
<div style="color: red"><span>hello</span><span>hello</span><span>hello</span>
</div>
內(nèi)部樣式
寫在 style 標(biāo)簽中. 嵌入到 html 內(nèi)部.
理論上來說 style 放到 html 的哪里都行. 但是一般都是放到 head 標(biāo)簽中
優(yōu)點(diǎn): 這樣做能夠讓樣式和頁面結(jié)構(gòu)分離.
缺點(diǎn): 分離的還不夠徹底. 尤其是 css 內(nèi)容多的時(shí)候
<style>* {margin: 0;padding: 0;box-sizing: border-box;}#nav {background-color: red;color: white; text-align: center;height: 50px;line-height: 50px;font-size: 25px;}</style>
外部樣式
最常用的一種方式
1.先創(chuàng)建一個(gè)CSS文件
2.通過link標(biāo)簽引入CSS
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>外部樣式</title><link rel="stylesheet" href="test.css">
</head>
優(yōu)點(diǎn): 樣式和結(jié)構(gòu)徹底分離了.
缺點(diǎn): 受到瀏覽器緩存影響, 修改之后 不一定 立刻生效
關(guān)于緩存:
這是計(jì)算機(jī)中一種常見的提升性能的技術(shù)手段.
網(wǎng)頁依賴的資源(圖片/CSS/JS等)通常是從服務(wù)器上獲取的. 如果頻繁訪問該網(wǎng)站, 那么這些外部資
源就沒必要反復(fù)從服務(wù)器獲取. 就可以使用緩存先存起來(就是存在本地磁盤上了). 從而提高訪問效
率.
可以通過 ctrl + F5 強(qiáng)制刷新頁面, 強(qiáng)制瀏覽器重新獲取 css 文件
3.選擇器
- 基礎(chǔ)選擇器: 單個(gè)選擇器構(gòu)成的
標(biāo)簽選擇器
類選擇器
id 選擇器
通配符選擇器 - 復(fù)合選擇器: 把多種基礎(chǔ)選擇器綜合運(yùn)用起來.
后代選擇器
子選擇器
并集選擇器
偽類選擇器
基礎(chǔ)選擇器
標(biāo)簽選擇器
特點(diǎn):
1.能快速為同一類型的標(biāo)簽都選擇出來.
2.但是不能差異化選擇
<style>p {color: red;}div {color: green;}
</style>
<p>前端開發(fā)是創(chuàng)建WEB頁面或APP等前端界面呈現(xiàn)給用 戶的過程,<br/>通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實(shí)現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互</p>
<div><span>hello</span><span>hello</span><span>hello</span>
</div>
類選擇器
特點(diǎn):
1.差異化表示不同的標(biāo)簽
2.可以讓多個(gè)標(biāo)簽的都使用同一個(gè)標(biāo)簽
語法:
1.類名用 . 開頭的
2.下方的標(biāo)簽使用 class 屬性來調(diào)用.
3.一個(gè)類可以被多個(gè)標(biāo)簽使用, 一個(gè)標(biāo)簽也能使用多個(gè)類(多個(gè)類名要使用空格分割, 這種做法可以讓代碼更好復(fù)用)
4.如果是長的類名, 可以使用 - 分割.
5.不要使用純數(shù)字, 或者中文, 以及標(biāo)簽名來命名類名
<style>.box {width: 200px;height: 150px;}.red {background-color: red;}.green {background-color: green;}
</style>
<div class="box red"></div>
<div class="box green"></div>
<div class="box red"></div>
id選擇器
1.CSS 中使用 # 開頭表示 id 選擇器
2.id 選擇器的值和 html 中某個(gè)元素的 id 值相同
3.id 是唯一的, 不能被多個(gè)標(biāo)簽使用 (是和 類選擇器 最大的區(qū)別)
#nav {background-color: red;color: white; text-align: center;height: 50px;line-height: 50px;font-size: 25px;
}
<body><div id="main"><div id="nav">我是導(dǎo)航欄</div><div id="body"><div class="left">我是左邊欄</div><div class="content">我是內(nèi)容區(qū)域</div><div class="right">我是右邊欄</div></div></div>
</body>
通配符選擇器
使用*表示選取所有標(biāo)簽
/*清楚默認(rèn)樣式*/
* {margin: 0;padding: 0;box-sizing: border-box;
}
復(fù)合選擇器
后代選擇器
元素1 元素2 {樣式聲明}
- 選擇某個(gè)父元素中的某個(gè)子元素
- 元素 2 不一定非是 兒子, 也可以是孫子
- 可以是任意基礎(chǔ)選擇器的組合. (包括類選擇器, id 選擇器)
#main .two {width: 100px;
}
#main .one {color: pink;
}
<div class="main"><div><div class="one">hello</div> </div><div class="two">test</div>
</div>
子選擇器
和后代選擇器類似, 但是**只能選擇子標(biāo)簽 **
元素1>元素2 { 樣式聲明 }
#main>.two {width: 100px;
}
<div id="main"><div><div class="two">hello</div> </div><div class="two">test</div></div>
并集選擇器
用于選擇多組標(biāo)簽. (集體聲明)
元素1, 元素2 { 樣式聲明 }
- 通過 逗號 分割等多個(gè)元素.
- 表示同時(shí)選中元素 1 和 元素 2
- 任何基礎(chǔ)選擇器都可以使用并集選擇器.
- 并集選擇器建議豎著寫. 每個(gè)選擇器占一行. (最后一個(gè)選擇器不能加逗號)
p,div {color: red;
}<div id="main"><div><div class="two">hello</div> </div><div class="two">test</div>
</div><p>前端開發(fā)是創(chuàng)建WEB頁面或APP等前端界面呈現(xiàn)給用 戶的過程,<br/>通過HTML,CSS及JavaScript以及衍生出來的各種技術(shù)、框架、解決方案,來實(shí)現(xiàn)互聯(lián)網(wǎng)產(chǎn)品的用戶界面交互
</p>
偽類選擇器
1.鏈接偽類選擇器
- a:link 選擇未被訪問過的鏈接
- a:visited 選擇已經(jīng)被訪問過的鏈接
- a:hover 選擇鼠標(biāo)指針懸停上的鏈接
- a:active 選擇活動(dòng)鏈接(鼠標(biāo)按下了但是未彈起)
<style>a:link {color: blue;}a:visited {color: green;}a:hover {color: red;}a:active {color: pink;}
</style>
<a href="#">測試</a>
2.force
偽類選擇器
選取獲取焦點(diǎn)的 input 元素
此時(shí)選中文本框,背景就會變色,字體也會變色
input:focus {color: red;background-color: gainsboro;
}
<input type="text">
4.常用元素屬性
字體屬性
設(shè)置字體
body {font-family: '微軟雅黑';font-family: 'Microsoft YaHei';
}
- 多個(gè)字體之間使用逗號分隔. (從左到右查找字體, 如果都找不到, 會使用默認(rèn)字體. )
- 如果字體名有空格, 使用引號包裹.
- 建議使用常見字體, 否則兼容性不好
- 字體名稱可以用中文, 但是不建議
大小
p {font-size: 20px;
}
- 不同的瀏覽器默認(rèn)字號不一樣, 最好給一個(gè)明確值. (chrome 默認(rèn)是 16px)
- 可以給 body 標(biāo)簽使用 font-size
- 要注意單位 px 不要忘記.
- 標(biāo)題標(biāo)簽需要單獨(dú)指定大小
- 實(shí)際上它設(shè)置的是字體中字符框的高度;實(shí)際的字符字形可能比這些框高或矮
粗細(xì)
p {font-weight: bold;font-weight: 700;
}
- 可以使用數(shù)字表示粗細(xì).
- 700 == bold, 400 是不變粗, == normal
- 取值范圍是 100 -> 900
文字樣式
/* 設(shè)置傾斜 */
font-style: italic;
/* 取消傾斜 */
font-style: normal
文本屬性
設(shè)置文本顏色
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
文本對齊
控制文字水平方向的對齊
text-align: [值];
- center: 居中對齊
- left: 左對齊
- right: 右對齊
文本裝飾
text-decoration: [值];
常用取值:
- underline 下劃線.
- none 啥都沒有. 可以給 a 標(biāo)簽去掉下劃線.
- overline 上劃線.
- line-through 刪除線
文本縮進(jìn)
控制段落的 首行 縮進(jìn) (其他行不影響)
text-indent: [值]
- 單位可以使用 px 或者 em.
- 使用 em 作為單位更好. 1 個(gè) em 就是當(dāng)前元素的文字大小.
- 縮進(jìn)可以是負(fù)的, 表示往左縮進(jìn). (會導(dǎo)致文字就冒出去了)
行高
行高指的是上下文本行之間的基線距離
line-height: [值];
行高 = 上邊距 + 下邊距 + 字體大
**注意:行高等與元素高度, 就可以實(shí)現(xiàn)文字居中對齊 **
#nav {background-color: red;color: white; text-align: center;height: 50px;line-height: 50px;font-size: 25px;
}
背景屬性
背景顏色
background-color: [指定顏色]
默認(rèn)是 transparent (透明) 的. 可以通過設(shè)置顏色的方式修改
/* 背景透明 */
background-color: transparent;
背景圖片
background-image: url(...);
比 image 更方便控制位置(圖片在盒子中的位置)
注意:
- url 不要遺漏.
- url 可以是絕對路徑, 也可以是相對路徑
- url 上可以加引號, 也可以不加
背景平鋪
background-repeat: [平鋪方式]
重要取值:
- repeat: 平鋪
- no-repeat: 不平鋪
- repeat-x: 水平平鋪
- repeat-y: 垂直平鋪
- 默認(rèn)是 repeat.
背景顏色和背景圖片可以同時(shí)存在. 背景圖片在背景顏色的上方
背景位置
background-position: x y;
修改圖片的位置.
參數(shù)有三種風(fēng)格:
- 方位名詞: (top, left, right, bottom)
- 精確單位: 坐標(biāo)或者百分比(以左上角為原點(diǎn))
- 混合單位: 同時(shí)包含方位名詞和精確單位
<style>.bgp .one {background-image: url(rose.jpg);height: 500px;background-repeat: no-repeat;background-color: purple;background-position: center;
}
</style>
<div class="bgp">
<div class="one">背景居中</div>
</div>
注意:
- 如果參數(shù)的兩個(gè)值都是方位名詞, 則前后順序無關(guān). (top left 和 left top 等效)
- 如果只指定了一個(gè)方位名詞, 則第二個(gè)默認(rèn)居中. (left 則意味著水平居中, top 意味著垂直居中. )
- 如果參數(shù)是精確值, 則的的第一個(gè)肯定是 x , 第二個(gè)肯定是 y. (100 200 意味著 x 為 100, y 為 200)
- 如果參數(shù)是精確值, 且只給了一個(gè)數(shù)值, 則該數(shù)值一定是 x 坐標(biāo), 另一個(gè)默認(rèn)垂直居中.
- 如果參數(shù)是混合單位, 則第一個(gè)值一定為 x, 第二個(gè)值為 y 坐標(biāo). (100 center 表示橫坐標(biāo)為 100, 垂直居中)
背景尺寸
background-size: length|percentage|cover|contain;
- 可以填具體的數(shù)值: 如 40px 60px 表示寬度為 40px, 高度為 60px
- 也可以填百分比: 按照父元素的尺寸設(shè)置.
- cover: 把背景圖像擴(kuò)展至足夠大,以使背景圖像完全覆蓋背景區(qū)域。背景圖像的某些部分也許無法顯示在背景定位區(qū)域中。
- 把圖像圖像擴(kuò)展至最大尺寸,以使其寬度和高度完全適應(yīng)內(nèi)容區(qū)域.
圓角矩形
通過 border-radius 使邊框帶圓角效果
border-radius: length;
length 是內(nèi)切圓的半徑. 數(shù)值越大, 弧線越強(qiáng)烈
生成圓形
讓 border-radius 的值為正方形寬度的一半即可
div {width: 200px;height: 200px;border: 2px solid green;border-radius: 100px;/* 或者用 50% 表示寬度的一半 */border-radius: 50%;
}
生成圓角矩形
讓 border-radius 的值為矩形高度的一半即可
div {width: 200px;height: 100px;border: 2px solid green;border-radius: 50px;
}
5. 元素顯示模式
塊級元素
常見的塊元素
- h1-h6
- p
- div
- ul
- ol
- li
- …
特點(diǎn):
- 獨(dú)占一行
- 高度、寬度、內(nèi)外邊距、行高都可以控制
- 寬度默認(rèn)是父元素的寬度
- 是一個(gè)盒子,里面可以放行內(nèi)元素和塊元素
注意:
- 文字類的元素內(nèi)不能使用塊級元素
- p 標(biāo)簽主要用于存放文字, 內(nèi)部不能放塊級元素, 尤其是 div
行內(nèi)元素
常見的行內(nèi)元素有
- span
- a
- em
- …
特點(diǎn):
- 不獨(dú)占一行,一行可以顯示多個(gè)
- 設(shè)置高度寬度和行高無效
- 左右外邊距有效,上下無效
- 內(nèi)邊距有效
- 默認(rèn)寬度和本身內(nèi)容有關(guān)
- 行內(nèi)元素只能容納文本和其他行內(nèi)元素, 不能放塊級元素
注意:
- a 標(biāo)簽中不能再放 a 標(biāo)簽 (雖然 chrome 不報(bào)錯(cuò), 但是最好不要這么做).
- a 標(biāo)簽里可以放塊級元素, 但是更建議先把 a 轉(zhuǎn)換成塊級元素
行內(nèi)元素和塊級元素的區(qū)別
- 塊級元素獨(dú)占一行, 行內(nèi)元素不獨(dú)占一行
- 塊級元素可以設(shè)置寬高, 行內(nèi)元素不能設(shè)置寬高.
- 塊級元素四個(gè)方向都能設(shè)置內(nèi)外邊距, 行內(nèi)元素垂直方向不能設(shè)置
改變顯示模式
使用 display 屬性可以修改元素的顯示模式.
可以把 div 等變成行內(nèi)元素, 也可以把 a , span 等變成塊級元素.
- display: block 改成塊級元素
- display: inline 改成行內(nèi)元素
- display: inline-block 改成行內(nèi)塊元素
6.盒子模型
每一個(gè) HTML 元素就相當(dāng)于是一個(gè)矩形的 “盒子”
這個(gè)盒子由這幾個(gè)部分構(gòu)成
- 邊框 border
- 內(nèi)容 content
- 內(nèi)邊距 padding
- 外邊距 margin
邊框
基礎(chǔ)屬性
- 粗細(xì): border-width
- 樣式: border-style, 默認(rèn)沒邊框. solid 實(shí)線邊框 dashed 虛線邊框 dotted 點(diǎn)線邊框
- 顏色: border-color
**注意:邊框會撐大盒子 **
通過 box-sizing 屬性可以修改瀏覽器的行為, 使邊框不再撐大盒子
* {box-sizing: border-box;
}
內(nèi)外邊距
內(nèi)邊距
padding 設(shè)置內(nèi)容和邊框之間的距離
默認(rèn)內(nèi)容是頂著邊框來放置的. 用 padding 來控制這個(gè)距離
可以給四個(gè)方向都設(shè)置邊距
- padding-top
- padding-bottom
- padding-left
- padding-right
可以把多個(gè)方向的 padding 合并到一起. [四種情況都要記住, 都很常見]
padding: 10px; 表示四個(gè)方向都是 10px
padding: 5px 10px; 表示上下內(nèi)邊距 5px, 左右內(nèi)邊距為 10px
padding: 5px 10px 20px; 表示上邊距 5px, 左右內(nèi)邊距為 10px, 下內(nèi)邊距為 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (順時(shí)針)
外邊距
margin控制盒子和盒子之間的距離
也可以給四個(gè)方向都加上邊距
- margin-top
- margin-bottom
- margin-left
- margin-right
margin也是支持符合寫法的
margin: 10px; // 四個(gè)方向都設(shè)置
margin: 10px 20px; // 上下為 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40
塊級元素水平居中
前提:
- 指定寬度(如果不指定寬度, 默認(rèn)和父元素一致)
- 把水平 margin 設(shè)為 auto
以下三種寫法均可實(shí)現(xiàn)
margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;
注意:
這個(gè)水平居中的方式和 text-align 不一樣.
- margin: auto 是給塊級元素用得到.
- text-align: center 是讓行內(nèi)元素或者行內(nèi)塊元素居中的
去除瀏覽器默認(rèn)樣式
瀏覽器會給元素加上一些默認(rèn)的樣式, 尤其是內(nèi)外邊距. 不同瀏覽器的默認(rèn)樣式存在差別.
為了保證代碼在不同的瀏覽器上都能按照統(tǒng)一的樣式顯示, 往往我們會去除瀏覽器默認(rèn)樣式.使用通配符選擇器即可完成這件事情
* {marign: 0;padding: 0;}
7. 彈性布局
flex布局基本概念
flex 是 flexible box 的縮寫. 意思為 “彈性盒子”
任何一個(gè)html元素,都可以指定為display:flex
完成彈性布局
flex布局的本質(zhì)是給父盒子添加display:flex
屬性,來控制盒子的位置和排列方式
基本概念:
- 被設(shè)置為 display:flex 屬性的元素, 稱為 flex containe
- 它的所有子元素立刻稱為了該容器的成員, 稱為 flex item
- flex item 可以縱向排列, 也可以橫向排列, 稱為 flex direction(主軸)
注意:
當(dāng)父元素設(shè)置為 display: flex 之后, 子元素的 float, clear, vertical-align 都會失效
常用屬性
justify-content
設(shè)置主軸上的子元素排列方式 ,使用之前一定要確定好主軸是哪個(gè)方向
取值 | 作用 |
---|---|
flex-start | 默認(rèn)值,項(xiàng)目位于容器的開頭 |
flex-end | 項(xiàng)目位于容器的結(jié)尾 |
center | 項(xiàng)目位于容器中央 |
space-between | 項(xiàng)目在行與行之間有間隔 |
space-around | 項(xiàng)目在行之前,行之間和行之后留有空間 |
<div><span>1</span><span>2</span><span>3</span><span>4</span><span>5</span>
</div>
<style>div {width: 100%;height: 150px;background-color: red;display: flex;}div span {width: 100px;height: 100px;background-color: green;}
</style>
未設(shè)置justify-content
效果
設(shè)置justify-content: flex-end
設(shè)置jutify-content: center
設(shè)置justify-content: space-around
設(shè)置justify-content: space-between
align-items
設(shè)置側(cè)軸上的元素排列方式
在上面的代碼中, 我們是讓元素按照主軸的方向排列, 同理我們也可以指定元素按照側(cè)軸方向排列.
取值 | 作用 |
---|---|
stretch | 默認(rèn)值,行拉伸以占據(jù)剩余空間 |
center | 朝著彈性容器的中央對行打包 |
flex-start | 朝著彈性容器的開頭對行打包 |
flex-end | 朝著彈性容器的結(jié)尾對行打包 |
space-between | 行均勻分布在彈性容器中 |
space-around | 行均勻分布在彈性容器中,兩端各占一半 |
取值和 justify-content 差不多
理解 stretch(拉伸):
這個(gè)是 align-content 的默認(rèn)值. 意思是如果子元素沒有被顯式指定高度, 那么就會填充滿父元素的
高度.
<div><span>1</span><span>2</span><span>3</span></div><style>div {width: 500px;height: 500px;background-color: green;display: flex;justify-content: space-around;}div span {width: 100px;background-color: red;}</style>
可以使用 align-items 實(shí)現(xiàn)垂直居中
**注意:align-items 只能針對單行元素來實(shí)現(xiàn). 如果有多行元素, 就需要使用 item-contents **