初識HTML5&CSS3

一、HTML基礎標簽

1.HTML簡介

超文本標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種用于創建網頁的標準標記語言

標記語言是一套標記標簽

HTML 使用標記標簽來描述網頁

HTML 文檔包含了HTML?標簽文本內容

HTML 運行在瀏覽器上,由瀏覽器來解析

HTML文檔也叫做?web 頁面

文檔的后綴名:xxx.html 或 xxx.htm

2.HTML標簽

HTML 標記標簽通常被稱為 HTML 標簽 (HTML tag)

HTML 標簽是由尖括號包圍的關鍵詞,比如?<html>

HTML 標簽通常是成對出現的,比如?<b>?和</b>

標簽對中的第一個標簽是開始標簽,第二個標簽是結束標簽

開始和結束標簽也被稱為開放標簽閉合標簽

3.HTML基礎標簽

html

html是網頁的根標簽,網頁的所有內容,都必須要寫在該標簽里面

head

head是頭部標簽,用于導入外部的資源信息和描述網頁自身信息

title

title是網頁自身的標題標簽,它里面的內容會在網頁的瀏覽器的選項卡上顯示

body

body是主體標簽,網頁中能看到到所有內容,都必須要寫在該標簽里面

<!DOCTYPE html>

文檔聲明,是告訴瀏覽器采用什么標準去解析下面的網頁,這里表示html5的標準

如果沒有文檔聲明標簽,瀏覽器會根據網頁中具體的標簽去判斷使用什么標準

其他標準:

HTML 4.01

<!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

XHTML 1.0

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

meta

meta標簽提供關于HTML文檔的元數據。元數據不會顯示在頁面上,但是對于機器是可讀的。它可用于瀏覽器(如何顯示內容或重新加載頁面),搜索引擎(關鍵詞),或其他 web 服務

meta標簽是單標簽,不需要閉合標簽,規范寫法,單標簽需要自閉合

聲明編碼:

utf-8 包含全世界所有國家需要用到的字符

gb2312 包含全部中文字符

<metacharset='utf-8'/>

頁面關鍵詞:

<metaname="keywords"content="前端,web前端"/>

頁面描述:

<metaname="description"content="如何學好前端"/>

頁面重定向和刷新:

content內的數字代表時間(秒),既多少時間后刷新。如果加url,則會重定向到指定網頁

<metahttp-equiv="refresh"content="30;url="/>

移動設備:

如果不是響應式網站,不要使用initial-scale或者禁用縮放

大部分4.7-5寸設備的viewport寬設為360px;5.5寸設備設為400px;iphone6設為375px;ipone6 plus設為414px

<metaname="viewport"content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"/><!-- `width=device-width` 會導致 iPhone 5 添加到主屏后以 WebApp 全屏模式打開頁面時出現黑邊? -->

width:寬度(數值 / device-width)(范圍從200 到10,000,默認為980 像素)

height:高度(數值 / device-height)(范圍從223 到10,000)

initial-scale:初始的縮放比例 (范圍從>0 到10)

minimum-scale:允許用戶縮放到的最小比例

maximum-scale:允許用戶縮放到的最大比例

user-scalable:用戶是否可以手動縮 (no,yes)

注意,很多人使用initial-scale=1到非響應式網站上,這會讓網站以100%寬度渲染,用戶需要手動移動頁面或者縮放。如果和initial-scale=1同時使用user-scalable=no或maximum-scale=1,則用戶將不能放大/縮小網頁來看到全部的內容

<link/>

導入外部資源,比如:網頁選項卡圖標外部樣式

<linkrel="icon"href="favicon.ico">

h1~h6

h1~h6是網頁的內容標題標簽,h1最大,h6最小。標題標簽的特點是:字體會加粗

p

p標簽是段落標簽,用于描述一段內容

hr

hr是水平線標簽,用于對網頁中的內容進行分隔

br

在網頁中,無論打多少空格,或者換多少次行,默認都只是一個空格

如果需要手動換行,需要使用br標簽

strong

strong是加粗標簽,用于突出一段內容里面的部分信息

em

em是傾斜標簽,也用于突出一段內容里面的部分信息

特殊符號

&nbsp;? ? ? 空格

&lt;? ? ? ? ? ? ?小于號

&gt;????????????大于號

&quot;? ? ? ? ?雙引號

&copy;????????版權符號

img

img是圖片標簽,src屬性設置圖片的地址,地址可以是本地地址,也可以是網絡地址

title屬性設置鼠標懸停提示信息,alt屬性設置圖片的替代文字,當圖片無法顯示時,顯示對應的文字

width屬性設置圖片寬度,height屬性設置圖片高度,如果只設置了其中一個屬性,另一個屬性會等比縮放

a

超鏈接標簽,根據鏈接類型可以分為:頁面間鏈接錨鏈接功能性鏈接

1.頁面間鏈接:

href屬性設置鏈接的地址,可以是本地地址,也可以是網絡地址

target屬性設置目標窗口打開的位置,屬性值_self替換自身窗口,_blank是打開新窗口

<a href="./index06.html"target="_self">替換自己</a>

<a href="./index06.html"target="_blank">打開新窗口</a>

2.錨鏈接:

用于當前頁面的跳轉,從頁面的某個區域,跳轉到另一個區域

通常需要兩個a標簽,一個a標簽通過name屬性設置錨標記,另一個a標簽通過href屬性跳轉到對應的錨標記處

注意:href屬性值需要加一個#號

如果需要跨頁面,在href屬性中,顯示設置地址,在地址的后面在設置對應的錨標記

<a href="#bj">北京</a>

<!-- 這里的a標簽,只是做一個錨標記,通過name屬性設置標記名 -->

<a name="bj"></a>

3.功能性鏈接:

利用超鏈接打開本地的應用

<a href="mailto:123456789@qq.com">發送郵件</a>

<a target="_blank">打開QQ</a>

div

div是分區標簽,是一個塊級標簽,通常用于網頁的布局

span

span是范圍標簽,是一個行級標簽,通常用于突出顯示段落中的部分內容

4.標簽分類

所有的標簽可以分為兩類:塊級標簽和行級標簽(內聯標簽)

塊級標簽:該元素獨占一行(h2,p)

行級標簽:按行顯示,一行不夠放,才會自動換行(a,strong,em,img)

注意:通常情況下,行級標簽要放在塊級標簽里面使用

注意:p標簽不能嵌套p標簽

二、列表、表格、表單

1.有序列表和無序列表

ol是有序列表標簽,它里面的列表項是有序號

ul是無序列表標簽,它里面的列表項是沒有序列的,但是有符號

li 是列表項標簽

列表可以嵌套定義

通過設置ol的type屬性值,可以改變序號類型,可以設置屬性值有:A,a,I,i,1

ul標簽通過type屬性,也可以設置符號類型:屬性值有:disc,circle,square

2.定義列表標簽

dl是定義列表標簽

dt的定義列表的標題標簽

dd是定義列表的描述標簽,用來描述dt

可以用多個dd去描述一個dt

一個dl可以只描述一個dt,也可以描述多個dt

一般圖文布局的結構會使用定義列表標簽

3.表格標簽

table是表格標簽,通過border屬性設置表格的邊框,width屬性設置寬度,height屬性設置高度

設置表格的屬性align="center",將整個表格居中

tr是行標簽

設置tr的align屬性,控制的是tr里面的所有td的水平對齊方式

td是列標簽

td設置align屬性,只是對當前td設置水平對齊方式

colspan屬性,用于單元格跨列

rowspan屬性,用于單元格跨行

如果表格里面的單元格需要跨列或者跨行:

先將完整的表格畫好

然后做跨列

最后做跨行

4.表格的完整結構

表格根據結構劃分:thead是表格的頭部,tbody是表格的主體,tfoot是表格的尾部

caption是表格的標題標簽

td是普通列,th是表頭列,th里面的內容默認會加粗并且居中

5.表單標簽

form表單標簽,表單的作用是:接收用戶輸入的數據,并向服務器發送

method屬性設置表單的提交方式:GET和POST (POST比GET更安全)

action屬性設置表單的提交地址,比如:http://192.168.112.55:8080/address/add

6.表單里面的常用元素

form是表單標簽,所有的表單元素,必須要放到form標簽里面,才能提交到服務器

如果表單中使用了文件域,表單標簽需要添加一個enctype="multipart/form-data"屬性

input標簽是表單的元素,絕大多數表單元素都是使用input標簽,通過type屬性設置元素的類型

type="text"是文本框,size屬性設置初始長度,maxlength屬性設最大輸入長度,name屬性設置表單元素的名稱

type="password"是密碼框

type="radio"是單選框,注意:一組單選框,必須要設置相同的name屬性值,value屬性設置表單元素保存的值,

checked屬性設置默認選中,該屬性的屬性值也是checked。

注意:在html中如果屬性值跟屬性名相同,可以省略屬性值

type="checkbox"是復選框,也可以使用checked屬性

type="file"是文件域,該標簽用于選擇文件

type="button"是普通按鈕

type="submit"是提交按鈕,用于將表單里面的數據向服務器提交,disabled屬性設置表單元素禁用

type="reset"是重置按鈕,用于清空表單里面的填寫內容

type="image"是圖片提交按鈕,它不需要通過value屬性設置文本,但是需要通過src屬性設置一張圖片

type="hidden"是隱藏域,用于在網頁中隱藏信息。在實際開發中,隱藏域里面的信息是需要加密存儲的

select標簽是下拉框,option是下拉框的選項標簽,value屬性設置每個選項的值,

注意:值可能跟顯示的文本不一樣,selected屬性設置默認選中

textarea標簽是文本域,其實就是多行文本框,rows屬性設置行數,cols屬性設置每行列數

readonly屬性表示只讀

7.html5新增表單元素

type="number"是數字文本框,min設置最小值,max設置最大值,step設置增量值

type="range"是滑塊,min,max,step用法同number

type="url"是網址文本框,輸入的內容必須以ftp: 或者 http: 或者 https: 開頭

type="email"是郵箱文本框,輸入的內容必須包含@字符

type="search"其實就是文本框,只是專門用于做搜索框用,輸入內容后,帶有清空內容的小按鈕

<button type="submit">提交按鈕</button>

<button type="reset">重置按鈕</button>

<button type="button">普通按鈕</button>

新增屬性:

placeholder屬性設置文本框里面的提示內容,當在文本框中輸入真正的內容時,會自動消失

required屬性給文本框,添加非空驗證

pattern屬性用于給文本框,添加正則表達式驗證

三、初始樣式

1.行內樣式表

通過在標簽中使用style屬性的方式,可以給標簽添加行內樣式

在實際開發中,不推薦使用行內樣式,因為行內樣式不方便樣式的復用

行內樣式,違反了內容與表現分離的原則,網頁后期改版會變復雜

更關鍵的是,這樣的網頁不利于搜索引擎搜索

2.內部樣式表

在head標簽中通過style標簽,定義內部樣式。style標簽可以通過type屬性明確里面的樣式類型,type屬性可以省略

內部樣式表:可以做到當前頁面的樣式復用,但是不能做到多頁面樣式的復用,內容與表現的分離不夠徹底

在style標簽里面,通過定義選擇器的方式,定義樣式

下面的樣式就是根據p標簽的名稱定義選擇器,給p標簽添加樣式:

p{font-size:30px;color:red;}

3.外部樣式表

通過link標簽,引入外部樣式文件,href屬性設置樣式文件的路徑

注意:必須設置rel屬性的屬性值為stylesheet。告訴瀏覽器引入外部資源是樣式表資源

如果有多個頁面需要該樣式,直接引入,方便多頁面樣式的復用

網頁的內容和樣式徹底分離,這樣的網頁更利用搜索引擎搜索

<link rel="stylesheet" href="./css/style.css">

引入外部樣式文件的第二種方式,在style標簽中,通過@import方式導入指定的樣式文件

<style>@import url('./css/style02.css');

4.樣式的優先級

外部樣式和內部樣式的優先級采用:就近原則,后引入的,優先級更高

行內樣式的優先級最高

5.選擇器

1.基本選擇器

標簽選擇器:以標簽的名稱作為選擇器的名稱,對所有該標簽添加樣式

類選擇器:選擇器的名稱是自定義的,必須以.符號開頭。在標簽中,通過class屬性調用具體的類選擇器樣式,在標簽中使用時,不需要加.號

id選擇器:選擇器的名稱也是自定義的,必須以#符號開頭。在標簽中,通過id屬性調用具體的id選擇器樣式,在標簽中使用時,不需要加#號

注意:在網頁中,標簽的id屬性值,通常是不能重復的。id選擇器的優先級更高

2.基本選擇器的優先級

基本選擇器的優先級:id選擇器 > 類選擇器 > 標簽選擇器

注意: !important優先級最高

3.層次選擇器

后代選擇器,方式是:A B{}。對A里面所有B添加樣式

子選擇器,方式是:A>B{}。 對A里面的所有第一級的B添加樣式

相鄰兄弟選擇器,方式是:A+B{},B必須是A相鄰的下一個元素

通用兄弟選擇器,方式是:A~B{},對A下面的所有的B元素添加樣式

4.屬性選擇器

屬性選擇器,方式是:[屬性名]{},通常會配合其他選擇器一起使用,比如:li[屬性名],只針對li標簽

屬性選擇器,可以根據屬性值,精確的對某些標簽添加樣式

$= 表示以指定的屬性值結尾

^= 表示以指定的屬性值開頭

*= 表示屬性值包含指定的內容

實際案例:給以.png結尾的圖片,設置大小

img[src$='.png']{width:100px;height:100px;}

5.交集選擇器

交集選擇器,方式是:選擇器A選擇器B{},同時滿足A和B的元素,添加樣式

a.red{color:red}

6.并集選擇器

并集選擇器,方式是:A,B,C{},給多個選擇器設置相同的樣式

案例:.header里面的.nav 和 .centent里面的p 和 #two上面的.three,采用相同的樣式

.header.nav,.cententp,#two.three{font-size:20px;color:red;}

四、基礎樣式

1.字體樣式

font-size 設置字體的大小

單位:px是像素

font-family 設置字體的類型

font-family 可以設置中文字體類型,也可以設置英文字體類型,如果需要同時設置英文字體類型和中文字體類型,先設置英文,再設置中文

font-family:'Courier New','幼圓'

font-weight 設置字體的粗細,屬性值bold表示加粗

font-style 設置字體的風格,屬性值italic表示傾斜

font是字體的縮寫屬性,可以同時設置:風格 加粗 大小 類型

風格和加粗的順序可以變化,也可以省略,最后兩個屬性值必須是大小類型

特殊用法:20px是字體大小,40px是行高

font:20px/40px'楷體'

2.文本樣式

color 是文本顏色

顏色值可以是英文單詞

顏色值可以是十六進制顏色值,方式是:#紅綠藍

下面屬性值里面的ff其實是十六進制的255

color:#ff0000;

顏色值可以是十進制顏色值,方式是:rgb(紅,綠,藍)

color:rgb(255,0,0);

rgba(紅,綠,藍,透明度),注意:透明度的取值范圍是:0-1

color:rgba(255,0,0,0.5);

十六進制顏色值,加透明度的方式是:#紅綠藍透明度。注意:這里的透明度的取值范圍是0-255

color:#ff000055

text-align 是文本對齊方式,屬性值包括:left(默認值),center,right

text-indent 是首行縮進,首行通常需要縮進兩個字符,所有屬性值單位通常使用em或者rem

一個em大小就是當前元素字體的大小尺寸。

一個rem的大小默認是網頁字體的默認大小(16px)

line-height 是行高

text-decoration 是文本裝飾,屬性值包括:underline(下劃線),overLine(上劃線),line-through(刪除線),none(沒有裝飾)

可以通過text-decoration屬性,

text-decoration: none;

去掉超鏈接的默認下劃線

letter-spacing 是字符間距

word-spacing 是單詞間距

3.超鏈接樣式

a:link 表示未點擊的樣式

a:visited 表示點擊過后的樣式

a:hover 表示鼠標懸停樣式

a:active 表示點擊未釋放樣式

注意:順序必須是:a:link a:visited a:hover a:active

一般情況下,我們會先給a元素設置統一的樣式,再添加一個a:hover

4.列表樣式

list-style-type 設置列表樣式,屬性值none,表示無樣式

其它屬性值,包括:disc(實心圓) circle(空心圓) square(方塊) decimal(數字)

所以,所謂有序列表和無需列表,只是默認的列表樣式值不同

list-style-image 設置列表的樣式為圖標

list-style-position 設置列表樣式的位置,屬性值包括:inside 和 outside(默認值),inside屬性值,列表會往里縮進一個tab符

list-style 是縮寫屬性,既可以設置列表符號類型,也可以設置列表圖標

5.背景樣式

background-color 背景顏色

background-image 背景圖片

background-repeat 背景圖片的平鋪方式,

屬性值包括:no-repeat(不平鋪) repeat(平鋪) repeat-x(X軸平鋪) repeat-y(Y軸平鋪)

background-position 背景圖片的位置,

可以通過:left right top bottom center 這些方位值設背景圖片的具體位置,

也可以通過:具體的數字設置X軸和Y軸的位置,

還可以通過:百分比設置X軸和Y軸的位置,

無論是給具體的數字,還是給具體的百分比,如果只傳一個值,X軸和Y軸的位置相同

background-size 屬性設置背景圖片的大小,

屬性值contain,表示:等比拉伸,直到跟任意一邊與容器邊框重疊,

屬性值cover,表示:等比拉伸,直到跟所有邊與容器邊框重疊,

可以設置固定的大小,一般不推薦,因為會使圖片變形,

屬性值也可以設置百分比

background背景縮寫屬性,可以同時設置背景顏色背景圖片平鋪方式位置

各屬性值,沒有嚴格的順序

如果要加背景圖片的大小,方式是:顏色 圖片 平鋪方式 位置 / 背景圖片大小

background: red url(./img/zhl.jpg) no-repeat center / 300px 300px;

6.背景漸變

linear-gradient()函數,用于設置背景的線性漸變

該函數的第一個參數值是漸變的方向,后面的參數值是漸變的顏色

background: linear-gradient(to left top,red,blue,green,purple);

radial-gradient()函數,用于設置背景的鏡像漸變

該函數不需要傳漸變方向,直接傳漸變的顏色,從中間向外漸變

background: radial-gradient(red,blue,green);

7.文本垂直居中

如果只有一行文本內容,可以通過設置line-height:height(行高=高度)的方式,設置單行文本垂直居中

8.文本陰影

text-shadow 屬性設置文本陰影

屬性值分別是:X軸偏移量 Y軸偏移量 陰影的模糊半徑 陰影顏色

9.圖片對齊方式

圖片的vertical-align樣式,可以設置圖片兩端文本相對于圖片的對齊方式

屬性值包括了:top bottom middle

五、盒子模型

1.什么是盒子模型

網頁里面的每一個標簽,都可以當做是一個盒子,該盒子是用來放內容的

通過:寬高,內邊距,邊框,外邊距定義盒子

2.邊框

每條邊框可以通過三個屬性設置,分別設置:邊框寬度 邊框顏色 邊框類型

邊框類型solid,表示實線

邊框類型double,表示雙實線

邊框類型dashed,表示虛線

邊框類型dotted,表示點線

通常情況下,盒子的四條邊框的樣式應該是統一的,可以通過下面的三個屬性去統一設置

border:10px tomato dotted;

去掉文本框的輪廓線

outline:none;

3.內邊距

可以分別設置盒子四個方向的內邊距

padding-top:20px;

padding-right:40px;

padding-bottom:60px;

padding-left:80px;

padding是縮寫屬性,可以分別設置:上 右 下 左 四條邊的內邊距。(順序是順時針)

padding:20px 40px 60px 80px;

padding如果只設置3個屬性值,分別是:上 右 下,左邊采用右邊的值

padding:20px 40px 60px;

padding如果只設置2個屬性值,分別是:上 右,左邊采用右邊的值,下面采用上面的值

padding:20px40px;

padding如果只設置1個屬性值,表示上 右 下 左采用相同的內邊距

padding:20px;

4.外邊距

外邊距是設置盒子與盒子間距

margin-top:50px;

margin-right:50px;

margin-bottom:100px;

margin-left:100px;

注意:上下兩個盒子的間距采用上面盒子的底邊距和下面盒子的上邊距的最大值

margin的縮寫屬性,用法同padding一樣

5.盒子居中

因為網頁中的很多標簽,都有默認的樣式,在實際開發中,我們又不需要這些默認的樣式,

所以,可以使用通用選擇器,去掉這些默認樣式

*{

????/* 去掉外邊距 */margin:0;

????/* 去掉內邊距 */padding:0;

????/* 去掉列表符號 */list-style:none;

????/* 去掉輪廓線 */outline:none;

????/* 去掉下劃線 */text-decoration:none;

}

如果設置盒子居中顯示。屬性值auto,表示自動,左右外邊距的屬性值為auto,會自動平分剩余的空間

margin:0 auto;

6.盒子尺寸

width和height屬性設盒子內容區域的大小

border,padding,margin 會增長盒子的整體尺寸

盒子的實際寬度= width + border-left + border-right + padding-left + padding-right + margin-left + margin-right

box-sizing屬性設置盒子的類型,默認值是content-box,是內容盒子,表示width和height的空間全部給內容

屬性值border-box,是邊框盒子,盒子的邊框和內邊距產生的空間從width和height里面扣除

7.display屬性

塊級元素:特點是獨占一行,可以識別寬高屬性

一個塊級元素的實際寬度 = width + border-left/right + padding-left/right + margin-left/right

margin-right屬性的默認值是auto,所以,剩余的空間會給margin-right

行級元素:特點是按行顯示,一行不夠放,會自動換行,不識別寬高屬性,它的實際大小還有內容決定

通過display屬性,可以設置標簽的顯示方式,inline表示行內元素,block表示塊級元素,none表示不顯示

inline-block表示行內塊元素,既有塊級元素可以識別寬高的特點,又有行內元素在一行顯示的特點

8.盒子陰影

盒子陰影:屬性值分別是:X軸偏移量 Y軸偏移量 模糊半徑 陰影顏色

box-shadow:10px 10px 5px blue;

第一個屬性值設置為inset,表示內陰影

box-shadow:inset 0px 0px 30px blue;

9.圓角邊框

分別設置4個角的圓角

border-top-left-radius:20px;

border-top-right-radius:40px;

border-bottom-right-radius:60px;

border-bottom-left-radius:80px;

一個屬性值是橫向寬度,第二個屬性值是縱向寬度,這樣的圓角就是橢圓圓角

border-top-left-radius:20px 40px;

border-top-right-radius:40px 60px;

border-bottom-right-radius:60px 80px;

border-bottom-left-radius:80px 100px;

border-radius是縮寫屬性,可以同時設置:左上 右上 右下 左下,四個角的圓角

border-radius:20px 40px 60px 80px;

四個角的圓角都設置為50%,就是正圓

border-radius: 50%;

五、浮動

1.float

浮動樣式主要用于對塊元素的布局

元素一旦浮動起來,就會脫離標準文檔流

float屬性設置浮動,屬性值包括left(左浮動),right(右浮動),none(不浮動)

2.clear

用于清除浮動。屬性值包括:left(清除左浮動),right(清除右浮動),both(清除全部浮動)

3.解決父級邊框塌陷

方式一:

在標準文檔流中,父級如果不指定高度,高度由子級撐開。

如果子級浮動,父級的邊框就會塌陷,第一種解決的方法是:給父級一個明確的高度。

方式二:

在父級的最下面,添加一個不浮動的元素,并清除前面的浮動空間。

方式三:

通過偽元素樣式在父級的下面添加塊級元素,再利用該塊級元素清除前面的浮動,原理根方法2一樣。

::after表示在指定的父級的下面,添加元素

::before表示在指定的父級的上面,添加元素

.parent::after{

????/* content屬性里面設置添加的元素里面的內容 */content:'';

????/* 下面是設置該元素的樣式 */display:block;

????clear:both;

}

方式四:

給父級添加一個overflow屬性,屬性值是非visible

4.overflow

overflow屬性,用于設置溢出處理

屬性值包括:

visible(溢出部分顯示,是默認值)

hidden(溢出部分隱藏)

scroll(溢出部分,通過滾動條查看),如果內容不溢出,還是會出現滾動條的區域

auto(自動,如果內容溢出,出現滾動條;沒有溢出,不會出現滾動條區域)

5.overflow配合錨鏈接

overflow配合錨鏈接的使用,可以增長一個盒子的實際使用空間

id屬性值可以作為錨鏈接的錨標記使用

6.文本溢出處理

white-space 屬性設置空白處理,屬性值nowrap,表示設置文本不換行,屬性值pre,表示保留空格

overflow 屬性是溢出處理,屬性值hidden表示溢出部分隱藏

text-overflow 屬性設置文本溢出處理,屬性值ellipsis表示文本溢出部分顯示...

注意:上面的三個屬性值缺一不可

overflow:hidden;

white-space:nowrap;

text-overflow:ellipsis;

7 多行文本溢出處理

display:-webkit-box;

overflow:hidden;

text-overflow:ellipsis;

word-break:break-all;

-webkit-box-orient:vertical;//子元素應該被水平或垂直排列

-webkit-line-clamp:3;//3行后顯示省略號

六、定位

1.static

position 是定位屬性,屬性值包括:static(不定位,默認值)

2.relative

relative(相對定位),是相對于自己重新定位,通過top,bottom,left,right屬性控制定位的偏移量

3.absolute

absolute(絕對定位)。絕對定位是根據離它最近的父級定位元素進行定位

如果它的父級中,沒有定位元素,就根據瀏覽器的視口來定位

注意:絕對定位元素,會脫離標準文檔流,所以,它下面的元素會去搶占它原來的位置

通常情況下:一個父容器里的子元素,如果要進行調整位置

父容器先設置為相對定位,并且不設置偏移量,子元素再設置為絕對定位,

這樣,子元素就可以在該父元素中精細調整了

4.fixed

fixed(固定定位)。就是根據瀏覽器的視口進行定位

并且定位后的位置不會隨著瀏覽器滾動條的滾動而消失

5.z-index

元素定位后,默認情況下,后面的元素會蓋住簽名的元素

通過z-index屬性,可以修改定位元素的層疊順序

值越小越靠下,值越大越靠上,可以設置負數,默認值0

6.盒子水平和垂直方向居中

/* 子級設置為絕對定位 */

position:absolute;

left:0;

right:0;

top:0;

bottom:0;

margin:auto;

非定位元素的實際寬度 = width + border-left + border-right + padding-left + padding-right + margin-left + margin-right

定位元素的實際寬度 = width + border-left + border-right + padding-left + padding-right + margin-left + margin-right + left + right

7.透明度

opacity屬性,設置透明度,注意:是設置整個元素的透明度

取值范圍是:0-1,0是全透明,1是不透明

8.背景樣式補充

設置背景顏色 background-color

設置背景圖片 background-image

設置背景平鋪方式 background-repeat,默認是X軸和Y軸方向都平鋪

設置背景圖片的位置 background-position

設置背景圖片的大小 background-size

設置背景的填充區域 background-clip

屬性值有:

border-box 到邊框,默認值

padding-box 到內填充

content-box 到內容

background-origin 只能設置背景圖片的填充區域,不能控制背景顏色

background-attachment 設置背景圖片的定位方式:

設置屬性值為fixed,表示固定背景圖片

在縮寫屬性中,如果同時設置了背景位置和背景大小,方式是:位置 / 大小

background:fixed url() content-box 40px 40px / 600px 400px;

七、補充內容

1.結構偽類選擇器:

:first-child 表示指定標簽的第一個

注意:這里ul里面的第一個元素如果不是li,該樣式失效

ul li:first-child{color:red;}

:last-child 表示指定標簽的最后一個

注意:這里ul里面的最后一個元素如果不是li,該樣式失效

ul li:last-child{color:green;}

:nth-child(n) 表示指定標簽的第n個

odd表示所有的奇數行(也可以用2n-1),even表示所有的偶數行(也可以用2n)

:first-of-type和:first-child的區別是:

:first-child:計算索引時,統計的是所有的子元素

:first-of-type 計算索引時,只統計指定的子元素

:last-of-type和:last-child的區別同上

:nth-of-type和:nth-child的區別同上

2.內嵌框架

iframe 是內嵌框架標簽,用于在當前網頁中,嵌入另一個完整的網頁,通過src屬性設置目標網頁的地址

frameborder屬性設置邊框,屬性值包括0和1

scrolling屬性設置是否顯示滾動條,屬性值包括no和 yes 和 auto

3.video

video標簽,用于播放視頻,src屬性設置視頻路徑,controls屬性顯示控件按鈕,autoplay屬性設置自動播放,loop屬性設置循環播放

通過source子標簽,給video標簽添加視頻路徑,好處是,該方式可以同時添加多個視頻路徑

由于不同瀏覽器對視頻格式的兼容性,存在差異,所以,會導致,指定格式的視頻在部分瀏覽器中無法播放

通常情況下,如果在網頁中需要播放視頻,會將同一個視頻轉成多種格式,通過source標簽引入

瀏覽器會挨個加載source標簽引入的視頻,直到找到一個可以播放的格式

video標簽里面的寫的其他標簽,在瀏覽器不識別video標簽時顯示

4.audio

audio是音頻標簽,用于播放音頻,用法根video一樣

5.HTML5結構標簽

過去,我們在布局網頁的時候,全部采用div標簽,給div標簽定義不同的id名稱,

用該id名稱去表示它所處的區域是網頁的哪一個部分

現在,HTML5給我們新推出了一些,專門用于布局的結構標簽:

header 頭部

nav 導航

main 主體

aside 側邊欄

section 獨立區域(網頁中有多個獨立區域時,用section)

article 獨立內容(網頁中只有一個獨立區域時,用article)

footer 尾部

fieldset標簽,用于設置一個分組區域,通過legend子標簽設置分組標題。

八、動畫

1.css3-過渡

transition 過渡屬性

過渡:css從一種狀態變化到另一種狀態的過程。

transition-property 設置哪些屬性,需要過渡效果,可以傳多個過渡的屬性,使用逗號隔開。

例如: transition-property: background-color,width,

屬性值設置為all,表示過渡全部屬性。

transition-duration 設置過渡的時間,就是完成整個效果,需要花費的時間,

單位可以是秒(s)或者毫秒(ms)。

transition-delay 設置過渡之前的等待時間,單位同transition-duration

transition-timing-function 設置過渡的動作函數:

默認值是 ease 表示先快速再慢速

linear 表示勻速

ease-in 表示加速

ease-out 表示減速

ease-in-out 表示先加速再減速

transition是過渡的縮寫屬性,四個屬性值的順序沒有要求,但是如果設置了兩個時間,第一個是過渡時間,第二個過渡等待時間

2.css3-動畫

animation-name 指定動畫的名稱(指定一個動畫的關鍵幀名稱,就是動畫的規則)

animation-duration 指定動畫的時間(完成該動畫需要多少時間

animation-delay 動畫的延遲播放時間

animation-timing-function 動畫的動作函數,ease linear ease-in ease-out ease-in-out

animation-iteration-count 設置動畫的播放次數 屬性值可以給具體的次數,如果設置屬性值為infinite,表示無限次數

animation-play-state 表示播放狀態,默認值是running(播放) paused(暫停)

animation-direction 表示動畫的方向,屬性值包括:

normal(正向) reverse(反向) alternate(正反方向重復運動) alternate-reverse(反正方向重復運動)

animation-fill-mode 表示填充模式,其實就是動畫結束后,元素的回到什么位置,屬性值包括:

backwards(回到原點位置),在開始動畫之前,等待的時間在開始動畫處等待,

forwards(停在結束位置),在開始動畫之前,等待的時間在原點位置處等待,

both(綜合了上面兩個屬性的特點),在開始動畫處等待,在動畫結束處停止,

animation是縮寫屬性,具體的屬性值,沒有順序要求,如果同時設置動畫時間和等待時間,第一個是動畫時間,第二個是等待時間

3.關鍵幀

定義動畫的關鍵幀,關鍵幀就是動畫的規則,在css中,一個動畫最多可以拆分成100份

@keyframesmove{

????/* from 是動畫的起始位置 */

????from{

????????left: 0;

????}

????/* to? 是動畫的結束位置*/

????to{

????????left: 500px

????}

}

定義動畫的關鍵幀,將動畫的規則,拆分成多組

@keyframesmove2{0%{left:100px;top:0;}25%{left:500px;top:0;}50%{left:500px;top:500px}75%{left:0;top:500px;}100%{left:0;top:100px;}}

4.css3-變形

transform 是css的變形屬性,通過變形函數,設置具體的變形方式

scale()變形函數,設置元素縮放

translate()變形函數,設置元素平移,該函數如果只傳一個參數,表示X軸方向平移,如果傳兩個參數,第二個參數是Y軸方向平移

rotate()變形函數,設置元素旋轉。屬性值的單位是deg(度數),也可以是turn(圈),屬性值,正數是順時針,負數是逆時針

skew()變形函數,設置元素傾斜。該函數如果只傳一個參數,表示X軸方向傾斜度數,如果傳兩個參數,第二個參數是Y軸方向傾斜度數

5.動作函數補充

transition-timing-function 設置動作函數

屬性值包括:ease linear ease-in ease-out ease-in-out

動作函數的取值,除了一些常規的屬性值,還可以里貝塞爾曲線函數,定義特殊規則的動作

transition-timing-function:cubic-bezier(.22,1.52,.42,-0.72);

通過steps() 函數,可以將一個動作分解成多次運行

animation:move12sinfinitesteps(4)

6.3D變形

perspective 屬性設置瀏覽器的視距:就是告訴瀏覽器平移到眼睛的距離是多少,一般范圍我們會控制在600px-1200px,常用值為800px

body{height:600px;border:1pxsolidgreen;perspective:800px;}

translateX() 是X軸方向平移

translateY() 是Y軸方向平移

translateZ() 是Z軸方向平移

rotate() 默認是久Z軸方向旋轉

rotateZ() 是Z軸方向旋轉

rotateX() 是X軸方向旋轉

rotateY() 是Y軸方向旋轉

3d變形樣式 transform-style: preserve-3d;

transform-style: preserve-3d;

transform: rotateY(45deg) rotateZ(-45deg);

animation: love 4s infinite alternate;

visibility屬性,用于設置元素的顯示方式,屬性值包括:hidden(隱藏),visible(顯示)

backface-visibility屬性,用于設置元素的背面顏色方式

backface-visibility: hidden,表示背面隱藏

九、iconfont

1.字體圖標

<!--本地引入--><linkrel="stylesheet"href="./iconfont/iconfont.css"><!--在線使用iconfont字體圖標--><linkrel="stylesheet"><!--i 標簽 專門用于定義字體圖標--><iclass="iconfont icon-gouwuche"></i>

2.自定義字體類型

@font-face{/* 設置字體類型名稱 */font-family:gjm;/* 設置字體類型文件的路徑 */src:url(./font/郭敬明字體.ttf);}div{font-size:50px;font-family:gjm;}

3.CSS繪制三角形

/* 保留上邊框,下邊框的寬度設為0 */.a{border-color:transparent;border-top-color:red;border-width:50px50px050px;}/* 保留右邊框,左邊框的寬度設為0 */.b{border-color:transparent;border-right-color:blue;border-width:50px50px50px0;}/* 保留下邊框,上邊框的寬度設為0 */.c{border-color:transparent;border-bottom-color:green;border-width:050px50px50px;}/* 保留左邊框,右邊框的寬度設為0 */.d{border-color:transparent;border-left-color:orange;border-width:50px050px50px;}

十、彈性布局

1.彈性盒子

display屬性,設置元素的類型,屬性值包括:none(不顯示),inline(行內元素),block(塊級元素),inline-block(行內塊元素)

設置display: flex,該盒子就成為了彈性盒子,一旦給一個盒子設置為了彈性盒子,它里面的子元素默認就會橫向排列

flex-direction屬性 設置子元素的排列方向,屬性值包括:row(橫向) column(縱向) row-reverse(橫向反向) column-reverse(縱向方向)

2.子元素的對齊方式

主軸的排列方式,通過justify-content屬性控制

屬性值包括:flex-start(開始處對齊) flex-end(結束處對齊) center(居中對齊) space-between(平均分布,開始和結束處頂格),space-around(平均分布,兩邊留有一半的間隔空間) space-evenly(平均分布,每個元素兩端的間隔相等)

輔軸的排列方式,通過align-items屬性控制

屬性值包括: flex-start(開始處對齊) flex-end(結束處對齊) center(居中對齊) baseline(首行文本的基線對齊) stretch(拉伸對齊)

注意:主軸不一定是橫向,排列方向如果是橫向,主軸是橫向;排列方向如果是縱向,主軸就是縱向

3.子元素的換行方式

flex-wrap屬性,設置彈性盒子內,子元素的換行方式

屬性值包括: nowrap(不換行) wrap(換行) wrap-reverse(反向換行)

align-content屬性,設置子元素換行后,每行元素在輔軸上的對齊方式

注意:一旦設置了align-content,align-items屬性就失效

align-content的屬性值包括:flex-start(開始處對齊) flex-end(結束處對齊) center(居中對齊) space-between(平均分布,開始和結束處頂格),space-around(平均分布,兩邊留有一半的間隔空間) space-evenly(平均分布,每個元素兩端的間隔相等)

總結:不換行,輔軸上的對齊方式用align-items,換行后,輔軸上的對齊方式用 align-content。

4.子元素order屬性

order屬性,用于設置子元素的排列順序,默認值是1,值越小越靠前,值越大越靠后

5.子元素margin屬性

子元素通過margin屬性,可以搶占父級的剩余空間作為自己的外邊距

6.子元素align-self屬性

align-items屬性設置所有彈性子元素在輔軸上的對齊方式

align-self屬性,用于設置彈性子元素自身在 輔軸 方向上的對齊方式

屬性值包括:flex-start,flex-end,center,baseline,stretch

7.子元素flex屬性

flex屬性用于指定彈性子元素如何分配空間

.b為flex:5,.c為flex: 1 表示剩余的空間,b占5份,c占1份

十一、移動端

1.什么是像素

什么是像素:就是一個發光點

我們在編寫網頁的時候,所說的像素,其實是css像素

比如我們的顯示器的分辨率是1920*1080,這里的1920是物理像素

一般情況下,一個css像素對應一個物理像素

如果瀏覽器放大兩倍,此時就會是一個css像素對應兩個物理像素

在移動端,通常的做法就是一個css像素對應多個物理像素,一般采用的是兩個或者三個物理像素

由于我們的顯示器,默認是放大125%,所有,在默認瀏覽器中css像素跟物理像素的比例是 1 : 1.25。1個css像素的寬度 對應 1.25個物理像素的寬度

2.移動端網頁

在移動端:iphone6手機的分辨率:750*1334(物理像素)

在iphone6中 css像素是375*667,所以,css像素和物理像素的比例是 1 : 2

iphone6Plus手機的分辨率:828*1472

在iphone6Plus中 css像素是414*736,所以,css像素和物理像素的比例是 1 : 2

100vw就表示顯示屏全屏寬度,100vh就是表示顯示屏全屏高度

在iphone6中 100vw = 375px

1px = 0.266666vw

2.66666vw就相當于10px

5.33333vw就相當于20px

因為字體的最小單位是12px,所以我們將上面的比例再 * 2

font-size: 5.33333vw

em是當前元素字體大小單位

rem是網頁根元素字體大小單位

默認情況下,1rem=16px,但是這里的rem已經被我們重新定義過了

1rem=5.33333vw 在iphone6中是20px

html{font-size:5.33333vw}.a{width:100vw;height:100px;background-color:red;}.b{width:5rem;height:5rem;background-color:green;font-size:1rem;}

3.視口

name="viewport"就是設置視口

設置width屬性值為device-width,采用設備的寬度

initial-scale=1.0 表示初始縮放比例為1.0

默認情況下,在移動端視口的寬度是980px,根據需要,可以修改視口寬度

如果我們需要將一個pc端的網頁,在移動端能夠完全打開,通常修改設置固定寬度的視口值

<metaname="viewport"content="width=1226">

4.媒體查詢

媒體查詢:讓一個網頁在不同的設備上都能夠正常顯示

視口寬度>=1200px 的屏幕 稱為超大屏

視口寬度>=992px 的屏幕 稱為大屏

視口寬度>=768px 的屏幕 稱為中屏

視口寬度>=576px 的屏幕 稱為小屏

視口寬度<576px 的屏幕 稱為超小屏

定義媒體查詢樣式:

screen 表示屏幕

max-width: 1200px 表示最大寬度小于1200px,執行下面的樣式

@mediascreenand(max-width:1200px){/* 這里面寫的都是樣式 */.a{background-color:lightgreen;color:white;}}@mediascreenand(max-width:992px){.a{background-color:lightblue;color:orange;font-size:40px;}}@mediascreenand(max-width:768px){.a{background-color:lightsalmon;color:orchid;font-size:30px;}}@mediascreenand(max-width:576px){.a{background-color:lightseagreen;color:pink;font-size:20px;}}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容

  • 第1章 html基本結構 認識HTML: html不是一種編程語言,是一種標志語言 標記語言是由一套標識標簽組成的...
    不喝可樂_7889閱讀 694評論 0 0
  • 轉載請聲明 原文鏈接 關注公眾號獲取更多資訊 這篇文章主要總結H5的一些新增的功能以及一些基礎歸納,這里只是一個提...
    前端進階之旅閱讀 9,091評論 22 225
  • 1.前端頁面有哪三層構成,分別是什么?作用是什么? 結構層 Html 表示層 CSS 行為層 js。 2.你做的頁...
    西瓜炒苦瓜閱讀 4,645評論 0 7
  • 課程目標: HTML5新標簽與特性新增表單屬性多媒體標簽熟練掌握CSS3選擇器熟練掌握CSS3過渡熟練掌握CSS3...
    璐璐熙可閱讀 229評論 0 0
  • HTML5 1.HTML5新元素 HTML5提供了新的元素來創建更好的頁面結構: 標簽描述 定義頁面獨立的內容區域...
    L怪丫頭閱讀 2,822評論 0 4