Html
標簽
-
<em>
斜體 -
<strong>
粗體 -
<span>
單獨的樣式 -
<q>
引用文本 -
<blockquote>
長文本引用 -
<br>
換行 -
空格 -
<hr>
分割線 -
<address>
地址信息 -
<code>
單行代碼 -
<pre>
多行代碼 -
<ul-li>
無序列表 -
<ol-li>
有序列表 -
table、tbody、tr、th、td
表格 -
<table summary="表格簡介文本">
表格摘要 -
<caption>
表格標題 -
<a href="目標網址" title="鼠標滑過顯示的文本">鏈接顯示的文本</a>
鏈接 - ``<a href="目標網址" target="_blank">click here!</a>`在新建瀏覽器窗口中打開鏈接
-
<a href="mailto:yy@imooc.com?subject=主題&body=郵件內容法">發送</a>
使用mailto在網頁中鏈接Email地址 -

為網頁插入圖片
表單標簽
-
使用表單標簽,與用戶交互
<form method="post" action="save.php"> <label for="username">用戶名:</label> <input type="text" name="username" /> <label for="pass">密碼:</label> <input type="password" name="pass" /> </form>
-
文本域,支持多行文本輸入
<textarea rows="行數" cols="列數">文本</textarea>
-
radio 單選框 checkbox復選框
<input type="radio/checkbox" value="值" name="名稱" checked="checked"/>
-
下拉列表框 單選
<select> <option value="看書">看書</option> <option value="旅游" selected = "select">旅游</option> <option value="運動">運動</option> <option value="購物">購物</option> </select>
-
下拉列表框 多選
<select multiple = "mutipule"> <option value="看書">看書</option> <option value="旅游">旅游</option> <option value="運動">運動</option> <option value="購物">購物</option> </select>
-
提交按鈕與重置按鈕
<form method="post" action="save.php"> <label for="myName">姓名:</label> <input type="text" value=" " name="myName " /> <input type="submit" value="提交" name="submitBtn" /> <input type="reset" value="重置"> </form>
-
form表單中的label標簽,如果你在 label 標簽內點擊文本,就會觸發對應的控件
<form> <label for="male">男</label> <input type="radio" name="gender" id="male" /> <br /> <label for="female">女</label> <input type="radio" name="gender" id="female" /> <br /> <label for="email">輸入你的郵箱地址</label> <input type="email" id="email" placeholder="Enter email"> </form>
?
CSS
基礎知識
-
內聯式css樣式,直接寫在HTML標簽中
<p style="color:red;font-size:12px">這里文字是紅色。</p>
-
嵌入式css樣式,寫在當前文件
<style type="text/css"> span{ color:red; } </style>
-
外部式css樣式,寫在單獨的一個文件中。<link>標簽位置一般寫在<head>標簽之內。
<link href="style.css" rel="stylesheet" type="text/css" />
?
CSS選擇器
在{}之前的部分就是“選擇器”,“選擇器”指明了{}中的“樣式”的作用對象
-
標簽選擇器
p{font-size:12px;line-height:1.6em;}
-
類選擇器
.類選器名稱{css樣式代碼;} <span class="stress">膽小如鼠</span> .stress{color:red;}
-
ID選擇器
<span id="setGreen">公開課</span> #setGreen{ color:green; }
-
類選擇器與id選擇器的區別
ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
-
可以使用類選擇器詞列表方法為一個元素同時設置多個樣式。我們可以為一個元素同時設多個樣式,但只可以用類選擇器的方法實現,ID選擇器是不可以的(不能使用 ID 詞列表)。
<span class="stress bigsize">hello world!</span>
-
子選擇器 作用于子元素的第一代后代
.food>li{border:1px solid red;}
-
包含(后代)選擇器 后代選擇器是作用于所有子后代元素
.first span{color:red;}
-
通用選擇器 匹配html中所有標簽元素
* {color:red;}
-
偽類選擇符 允許給html不存在的標簽(標簽的某種狀態)設置樣式
a:hover{color:red;}
-
分組選擇符 當你想為html中多個標簽元素設置同一個樣式時,可以使用分組選擇符
,
h1,span{color:red;}
CSS的基礎繼承、層疊和特殊性
基礎繼承:繼承是一種規則,它允許樣式不僅應用于某個特定html標簽元素,而且應用于其后代
特殊性:瀏覽器是根據權值來判斷使用哪種css樣式的,標簽的權值為1,類選擇符的權值為10,ID選擇符的權值最高為100
層疊:層疊就是在html文件中對于同一個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前后順序來決定,處于最后面的css樣式會被應用
-
重要性:有些特殊的情況需要為某些樣式設置具有最高權值,這時候我們可以使用!important來解決。
p{color:red!important;}
CSS格式化排版
-
字體
body{font-family:"Microsoft Yahei";}
-
字號、顏色
body{font-size:12px;color:#666}
-
粗體
p span{font-weight:bold;}
-
斜體
p a{font-style:italic;}
-
下劃線
p a{text-decoration:underline;}
-
中劃線
.oldPrice{text-decoration:line-through;}
-
首行縮進
p{text-indent:2em;}
-
行間距(行高)
p{line-height:1.5em;}
-
中文字間距、字母間距
h1{letter-spacing:50px;}
-
對齊
div{text-align:center;}
CSS盒模型
-
元素分類
塊狀元素都自帶換行效果;
內聯元素都是定義行內小區域且不換行,但如果沒有內容就沒有意義,不占空間;
內聯塊狀元素除了不換行,即使沒有內容也會占空間。
-
塊狀元素
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote>、<form>
-
內聯元素(行內元素)
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
-
內聯塊狀元素
<img>、<input>
-
-
元素分類--塊級元素
在html中
<div>
、<p>
、<h1>
、<form>
、<ul>
和<li>
就是塊級元素。設置display:block
就是將元素顯示為塊級元素。 塊級標簽都具備盒子模型的特征。塊級元素特點:
- 每個塊級元素都從新的一行開始,并且其后的元素也另起一行。
- 元素的高度、寬度、行高以及頂和底邊距都可設置。
- 元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。
-
元素分類--內聯函數
在html中,
<span>
、<a>
、<label>
、<strong>
和<em>
就是典型的內聯元素(行內元素)元素。當然塊狀元素也可以通過代碼display:inline
將元素設置為內聯元素。內聯元素特點:
- 和其他元素都在一行上;
- 元素的高度、寬度及頂部和底部邊距不可設置;
- 元素的寬度就是它包含的文字或圖片的寬度,不可改變。
-
元素分類—內聯塊狀函數
內聯塊狀元素(inline-block)就是同時具備內聯元素、塊狀元素的特點,代碼
display:inline-block
就是將元素設置為內聯塊狀元素。inline-block 元素特點:
- 和其他元素都在一行上;
- 元素的高度、寬度、行高以及頂和底邊距都可設置。
-
盒模型--邊框
盒子模型的邊框就是圍繞著內容及補白的線,這條線你可以設置它的粗細、樣式和顏色(邊框三個屬性)。
div{border:2px solid red;}
上面是 border 代碼的縮寫形式,可以分開寫
div{ border-width:2px; border-style:solid; border-color:red; }
border-style(邊框樣式)常見樣式有:
dashed(虛線)| dotted(點線)| solid(實線)
border-width(邊框寬度)中的寬度也可以設置為:
thin | medium | thick(但不是很常用),最常還是用象素(px)。
單獨設置下邊框
div{border-bottom:1px solid red;}
同樣可以使用下面代碼實現其它三邊(上、右、左)邊框的設置:
border-top:1px solid red; border-right:1px solid red; border-left:1px solid red;
-
盒模型—寬度和高度
盒模型寬度和高度和我們平常所說的物體的寬度和高度理解是不一樣的,css內定義的寬(width)和高(height),指的是填充以里的內容范圍。
因此一個元素實際寬度(盒子的寬度)=左邊界+左邊框+左填充+內容寬度+右填充+右邊框+右邊界。
?
div{ width:200px; padding:40px; border:10px solid red; margin:20px; }
-
盒模型—填充(padding)
元素內容與邊框之間是可以設置距離的,稱之為“填充”。填充也可分為上、右、下、左(順時針)。
div{padding:20px 10px 15px 30px;}
順序一定不要搞混。可以分開寫上面代碼:
div{ padding-top:20px; padding-right:10px; padding-bottom:15px; padding-left:30px; }
如果上、右、下、左的填充都為10px,可以這么寫:
div{padding:10px;}
如果上下填充一樣為10px,左右一樣為20px,可以這么寫:
div{padding:10px 20px;}
-
盒模型—邊界(margin)
div{margin:20px 10px 15px 30px;}
div{ margin-top:20px; margin-right:10px; margin-bottom:15px; margin-left:30px; }
如果上右下左的邊界都為10px,可以這么寫:
div{ margin:10px;}
如果上下邊界一樣為10px,左右一樣為20px,可以這么寫:
div{ margin:10px 20px;}
CSS布局模型
在網頁中,元素有三種布局模型:流動模型(Flow)、浮動模型 (Float)、層模型(Layer)
-
流動模型
流動(Flow)是默認的網頁布局模式。流動布局模型具有2個比較典型的特征:
- 塊狀元素都會在所處的包含元素內自上而下按順序垂直延伸分布,因為在默認狀態下,塊狀元素的寬度都為100%。
- 在流動模型下,內聯元素都會在所處的包含元素內從左到右水平分布顯示。(內聯元素可不像塊狀元素這么霸道獨占一行)
-
浮動模型
任何元素在默認情況下是不能浮動的,但可以用 CSS 定義為浮動,如 div、p、table、img 等元素都可以被定義為浮動。如下代碼可以實現兩個 div 元素向左浮動一行顯示。
div{ width:200px; height:200px; border:2px red solid; float:left; } <div id="div1"></div> <div id="div2"></div>
-
層模型
層模型有三種形式:絕對定位(position: absolute),相對定位(position: relative),固定定位(position: fixed)
-
層模型--絕對定位
如果想為元素設置層模型中的絕對定位,需要設置position:absolute(表示絕對定位),這條語句的作用將元素從文檔流中拖出來,然后使用left、right、top、bottom屬性相對于其最接近的一個具有定位屬性的父包含塊進行絕對定位。如果不存在這樣的包含塊,則相對于body元素,即相對于瀏覽器窗口。
如下面代碼可以實現div元素相對于瀏覽器窗口向右移動100px,向下移動50px。
div{ width:200px; height:200px; border:2px red solid; position:absolute; left:100px; top:50px; } <div id="div1"></div>
-
層模型--相對定位
如果想為元素設置層模型中的相對定位,需要設置position:relative(表示相對定位),它通過left、right、top、bottom屬性確定元素在正常文檔流中的偏移位置。相對定位完成的過程是首先按static(float)方式生成一個元素(并且元素像層一樣浮動了起來),然后相對于以前的位置移動,移動的方向和幅度由left、right、top、bottom屬性確定,偏移前的位置保留不動。
如下代碼實現相對于以前位置向下移動50px,向右移動100px;
#div1{ width:200px; height:200px; border:2px red solid; position:relative; left:100px; top:50px; } <div id="div1"></div>
-
層模型--固定定位
fixed:表示固定定位,與absolute定位類型類似,但它的相對移動的坐標是視圖(屏幕內的網頁窗口)本身。由于視圖本身是固定的,它不會隨瀏覽器窗口的滾動條滾動而變化,除非你在屏幕中移動瀏覽器窗口的屏幕位置,或改變瀏覽器窗口的顯示大小,因此固定定位的元素會始終位于瀏覽器窗口內視圖的某個位置,不會受文檔流動影響,這與background-attachment:fixed?屬性功能相同。
以下代碼可以實現相對于瀏覽器視圖向右移動100px,向下移動50px。并且拖動滾動條時位置固定不變。
#div1{ width:200px; height:200px; border:2px red solid; position:fixed; left:100px; top:50px; }
-
Relative與Absolute結合使用
-
參照定位的元素必須是相對定位元素的前輩元素:
<div id="box1"><!--參照定位的元素--> <div id="box2">相對參照元素進行定位</div><!--相對定位元素--> </div>
-
參照定位的元素必須加入position:relative;
#box1{ width:200px; height:200px; position:relative; }
-
定位元素加入position:absolute,便可以使用top、bottom、left、right來進行偏移定位了。
#box2{ position:absolute; top:20px; left:30px; }
-
CSS代碼縮寫,占用更少的寬帶
-
盒模型代碼簡寫
模型時外邊距(margin)、內邊距(padding)和邊框(border)設置上下左右四個方向的邊距是按照順時針方向設置的:上右下左。通常有下面三種縮寫方法:
-
如果top、right、bottom、left的值相同,如下面代碼:
margin:10px 10px 10px 10px;
可縮寫為:
margin:10px;
-
如果top和bottom值相同、left和 right的值相同,如下面代碼:
margin:10px 20px 10px 20px;
可縮寫為:
margin:10px 20px;
-
如果left和right的值相同,如下面代碼:
margin:10px 20px 30px 20px;
margin:10px 20px 30px;
-
-
顏色值縮寫
p{color:#000000;}
可以縮寫為:
p{color: #000;}
p{color: #336699;}
可以縮寫為:
p{color: #369;}
-
字體縮寫
網頁中的字體css樣式代碼也有他自己的縮寫方式
body{ font-style:italic; font-variant:small-caps; font-weight:bold; font-size:12px; line-height:1.5em; font-family:"宋體",sans-serif; }
這么多行的代碼其實可以縮寫為一句:
body{ font:italic small-caps bold 12px/1.5em "宋體",sans-serif; }
注意:
- 使用這一簡寫方式你至少要指定 font-size 和 font-family 屬性,其他的屬性(如 font-weight、font-style、font-variant、line-height)如未指定將自動使用默認值。
- 在縮寫時 font-size 與 line-height 中間要加入“/”斜扛。
一般情況下因為對于中文網站,英文還是比較少的,所以下面縮寫代碼比較常用:
body{ font:12px/1.5em "宋體",sans-serif; }
?
單位和值
-
顏色值
設置顏色的方法有很多種:
-
英文命令顏色
p{color:red;}
-
RGB顏色
每一項的值可以是 0~255 之間的整數,也可以是 0%~100% 的百分數。
p{color:rgb(133,45,200);} p{color:rgb(20%,33%,25%);}
-
十六進制顏色
p{color:#00ffff;}
-
-
長度值
像素 px
-
em
就是本元素給定字體的 font-size 值,如果元素的 font-size 為 14px ,那么 1em = 14px;如果 font-size 為 18px,那么 1em = 18px。如下代碼:
-
百分比
p{font-size:12px;line-height:130%}
設置行高(行間距)為字體的130%(12 * 1.3 = 15.6px)
CSS樣式設置小技巧
-
水平居中設置—行內設置
如果被設置元素為文本、圖片等行內元素時,水平居中是通過給父元素設置
text-align:center
來實現的<body> <div class="txtCenter">我想要在父容器中水平居中顯示。</div> </body> .txtCenter{ text-align:center; }
-
水平居中設置—定寬塊狀元素
滿足定寬和塊狀兩個條件的元素是可以通過設置“左右margin”值為“auto”來實現居中的
html代碼:
<body> <div>我是定寬塊狀元素,哈哈,我要水平居中顯示。</div> </body>
css代碼:
<style> div{ border:1px solid red;/*為了顯示居中效果明顯為 div 設置了邊框*/ width:200px;/*定寬*/ margin:20px auto; } </style>
也可以寫成
margin-left:auto; margin-right:auto;
-
水平居中設置—不定寬塊狀元素
不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多)
-
加入
table
標簽為需要設置的居中的元素外面加入一個 table 標簽 ( 包括
<tbody>
、<tr>
、<td>
)。<div> <table> <tbody> <tr><td> <ul> <li>我是第一行文本</li> <li>我是第二行文本</li> <li>我是第三行文本</li> </ul> </td></tr> </tbody> </table> </div>
為這個 table 設置“左右 margin 居中”(這個和定寬塊狀元素的方法一樣)。
<style> table{ margin:0 auto; } </style>
-
設置
display: inline
方法::改變塊級元素的 display 為 inline 類型(設置為行內元素顯示),然后使用text-align:center
來實現居中效果。<body> <div class="container"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </div> </body>
<style> .container{ text-align:center; } /* margin:0;padding:0(消除文本與div邊框之間的間隙)*/ .container ul{ list-style:none; margin:0; padding:0; display:inline; } /* margin-right:8px(設置li文本之間的間隔)*/ .container li{ margin-right:8px; display:inline; } </style>
-
設置
position:relative
和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達到居中的目的通過給父元素設置
float
,然后給父元素設置position:relative
和left:50%
,子元素設置position:relative
和left: -50%
來實現水平居中。<body> <div class="container"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </div> </body>
.container{ float:left; position:relative; left:50% } .container ul{ list-style:none; margin:0; padding:0; position:relative; left:-50%; } .container li{float:left;display:inline;margin-right:8px;}
-
-
垂直居中—父元素高度確定的單行文本
父元素高度確定的單行文本的豎直居中的方法是通過設置父元素的
height
和line-height
高度一致來實現的。(height: 該元素的高度,line-height: 顧名思義,行高(行間距),指在文本中,行與行之間的 基線間的距離 )。這種文字行高與塊高一致帶來了一個弊端:當文字內容的長度大于塊的寬時,就有內容脫離了塊。
<div class="container"> hi,imooc! </div>
<style> .container{ height:100px; line-height:100px; background:#999; } </style>
-
垂直居中—父元素高度確定的多行文本
-
使用插入
table
(包括tbody、tr、td)標簽,同時設置 vertical-align:middle。因為 td 標簽默認情況下就默認設置了 vertical-align 為 middle,所以我們不需要顯式地設置了。
<body> <table><tbody><tr><td class="wrap"> <div> <p>看我是否可以居中。</p> </div> </td></tr></tbody></table> </bod
table td{height:500px;background:#ccc}
-
在 chrome、firefox 及 IE8 以上的瀏覽器下可以設置塊級元素的 display 為 table-cell(設置為表格單元顯示),激活 vertical-align 屬性,但注意 IE6、7 并不支持這個樣式, 兼容性比較差
<div class="container"> <div> <p>看我是否可以居中。</p> <p>看我是否可以居中。</p> <p>看我是否可以居中。</p> </div> </div>
<style> .container{ height:300px; background:#ccc; display:table-cell;/*IE8以上及Chrome、Firefox*/ vertical-align:middle;/*IE8以上及Chrome、Firefox*/ } </style>
-
-
隱形改變display的值
只要html代碼中出現以下兩句之一,元素的display顯示類型就會自動變為以
display:inline-block
(塊狀元素)的方式顯示,當然就可以設置元素的 width 和 height 了,且默認寬度不占滿父元素。position : absolute
-
float : left
或float:right
都知道 a 標簽是 行內元素 ,所以設置它的 width 是 沒有效果的,但是設置為 position:absolute 以后,就可以了。
<div class="container"> <a href="#" title="">進入課程請單擊這里</a> </div>
<style> .container a{ position:absolute; width:200px; background:#ccc; } </style>
?