HTML、CSS知識點總結。

一,html+css基礎
1-1
Html和CSS的關係
學習web前端開發基礎技術需要掌握:HTML、CSS、JavaScript語言。下面我們就來了解下這三門技術都是用來實現什麼的:
1. HTML是網頁內容的載體。內容就是網頁製作者放在頁面上想要讓用戶瀏覽的信息,可以包含文字、圖片、視頻等。
2. CSS樣式是表現。就像網頁的外衣。比如,標題字體、顏色變化,或爲標題加入背景圖片、邊框等。所有這些用來改變內容外觀的東西稱之爲表現。
3. JavaScript是用來實現網頁上的特效效果。如:鼠標滑過彈出下拉菜單。或鼠標滑過表格的背景顏色改變。還有焦點新聞(新聞圖片)的輪換。可以這麼理解,有動畫的,有交互的一般都是用JavaScript來實現的。
1-2
1, HTML標籤不區分大小寫,<h1>和<H1>是一樣的,但建議小寫,因爲大部分程序員都以小寫爲準。


1-3
一個HTML文件是有自己固定的結構的。
<html>
    <head>...</head>
    <body>...</body>
</html>
代碼講解:
1. <html></html>稱爲根標籤,所有的網頁標籤都在<html></html>中。
2. <head> 標籤用於定義文檔的頭部,它是所有頭部元素的容器。頭部元素有<title>、<script>、 <style>、<link>、 <meta>等標籤,頭部標籤在下一小節中會有詳細介紹。
3. 在<body>和</body>標籤之間的內容是網頁的主要內容,如<h1>、<p>、<a>、<img>等網頁內容標籤,在這裏的標籤中的內容會在瀏覽器中顯示出來。


1-4
1,下面這些標籤可用在 head 部分:
<head>
    <title>...</title>
    <meta>
    <link>
    <style>...</style>
    <script>...</script>
</head>
2,代碼註釋不僅方便程序員自己回憶起以前代碼的用途,還可以幫助其他程序員很快的讀懂你的程序的功能,方便多人合作開發網頁代碼。
語法:
<!--註釋文字 -->
3,CSS註釋代碼
就像在Html的註釋一樣,在CSS中也有註釋語句:用/*註釋語句*/來標明(Html中使用<!--註釋語句-->)


1-5
1,語義化:說的通俗點就是:明白每個標籤的用途(在什麼情況下我可以使用這個標籤才合理)比如,網頁上的文章的標題就得用標題標籤,網頁上的各個欄目的欄目名稱也可以使用標題標籤。
2,語義化的作用
1). 更容易被搜索引擎收錄。
2). 更容易讓屏幕閱讀器讀出網頁內容。


二,認識標籤(第一部分)
2-1
如果想在網頁上顯示文章,這時就需要<p>標籤了,把文章的段落放到<p>標籤中。
語法:
<p>段落文本</p>


2-2
<hx>標籤來製作文章的標題。
標題標籤一共有6個,h1、h2、h3、h4、h5、h6分別爲一級標題、二級標題、三級標題、四級標題、五級標題、六級標題。並且依據重要性遞減。<h1>是最高的等級。
語法:
<hx>標題文本</hx> (x爲1-6)
文章的標題前面已經說過了,可以使用標題標籤,另外網頁上的各個欄目的標題也可使用它們


2-3
有了段落又有了標題,現在如果想在一段話中特別強調某幾個文字,這時候就可以用到<em>或<strong>標籤。
       但兩者在強調的語氣上有區別:<em> 表示強調,<strong> 表示更強烈的強調。並且在瀏覽器中<em> 默認用斜體表示,<strong> 用粗體表示。兩個標籤相比,目前國內前端程序員更喜歡使用<strong>表示強調


2-4
<em>、<strong>、<span>的區別:
1. <em>和<strong>標籤是爲了強調一段話中的關鍵字時使用,它們的語義是強調。
2. <span>標籤是沒有語義的,它的作用就是爲了設置單獨的樣式用的,把一段話圈起來,然後用css設置樣式。


2-5
q標籤,短文本引用
  比如在你的網頁的文章裏想引用某個作家的一句詩,這樣會使你的文章更加出彩,那麼<q>標籤是你所需要的。
語法:
<q>引用文本</q>
1,注意要引用的文本不用加雙引號,瀏覽器會對q標籤自動添加雙引號。
2,注意這裏用<q>標籤的真正關鍵點不是它的默認樣式雙引號(如果這樣我們不如自己在鍵盤上輸入雙引號就行了),而是它的語義:引用別人的話


blockquote標籤,長文本引用
  <blockquote>的作用也是引用別人的文本。但它是對長文本的引用
<q>標籤是對簡短文本的引用,比如說引用一句話就用到<q>標籤。
語法:
<blockquote>引用文本</blockquote>
瀏覽器對<blockquote>標籤的解析是縮進樣式


2-6
換行標籤<br/>
<br/>標籤作用相當於word文檔中的回車。
分割線標籤<hr/>
<hr/>標籤和<br/>標籤一樣也是一個空標籤,所以只有一個開始標籤,沒有結束標籤。
<hr/>標籤的在瀏覽器中的默認樣式線條比較粗,顏色爲灰色,可能有些人覺得這種樣式不美觀,沒有關係,這些外在樣式在我們以後學習了css樣式表之後,都可以對其修改。


2-7
html特殊字符
空格:&nbsp; (;分號必不可少)


2-8
address標籤,爲網頁加入地址信息
語法:
<address>地址信息</address>
如:
<address>北京市西城區德外大街10號</address>
      在瀏覽器上顯示的樣式爲斜體,如果不喜歡斜體,當然可以,可以在後面的課程中使用css樣式來修改它<address>標籤的默認樣式


2-9
在介紹語言技術的網站中,必免不了在網頁中顯示一些計算機專業的編程代碼,當代碼爲一行代碼時,你就可以使用<code>標籤了,如下面例子:
<code>var i=i+300;</code>
語法:
<code>代碼語言</code>
注意:在文章中一般如果要插入多行代碼時不能使用<code>標籤,如果是多行代碼,可以使用<pre>標籤。


<pre> 標籤的主要作用:預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符。如果用以前的方法,回車需要輸入<br>籤,空格需要輸入&nbsp;。
注意:<pre> 標籤不只是爲顯示計算機的源代碼時用的,在你需要在網頁中預顯示格式時都可以使用它,只是<pre>標籤的一個常見應用就是用來展示計算機的源代碼。


三,認識標籤(第二部分)
3-1
1,無序列表
ul-li是沒有前後順序的信息列表。
語法:
<ul>
  <li>信息</li>
  <li>信息</li>
   ......
</ul>
舉例:
<ul>
  <li>精彩少年</li>
  <li>美麗突然出現</li>
  <li>觸動心靈的旋律</li>
</ul>
ul-li在網頁中顯示的默認樣式一般爲:每項li前都自帶一個圓點


2,有序列表
語法:
<ol>
   <li>信息</li>
   <li>信息</li>
   ......
</ol>
舉例:
下面是一個熱點課程下載排行榜:
<ol>
   <li>前端開發面試心法 </li>
   <li>零基礎學習html</li>
   <li>JavaScript全攻略</li>
</ol>
<ol>在網頁中顯示的默認樣式一般爲:每項<li>前都自帶一個序號,序號默認從1開


3-2
<div>容器標籤
在網頁製作過程過中,可以把一些獨立的邏輯部分劃分出來,放在一個<div>標籤中,這個<div>標籤的作用就相當於一個容器。
語法:
<div>…</div>
確定邏輯部分:
什麼是邏輯部分?它是頁面上相互關聯的一組元素。如網頁中的獨立的欄目版塊,就是一個典型的邏輯部分。如下圖所示:圖中用紅色邊框標出的部分就是一個邏輯部分,就可以使用<div>標籤作爲容器
註釋:<div> 是一個塊級元素,也就是說,瀏覽器通常會在 div 元素前後放置一個換行符。


3-3
創建表格的五個元素:
table、tbody、tr、th、td
1、<table>…</table>:整個表格以<table>標記開始、</table>標記結束。
2、<tbody>…</tbody>:當表格內容非常多時,表格會下載一點顯示一點,但如果加上<tbody>標籤後,這個表格就要等表格內容全部下載完纔會顯示。如右側代碼編輯器中的代碼。(這個標籤基本上不怎麼用了)
3、<tr>…</tr>:表格的一行,所以有幾對tr 表格就有幾行。
4、<td>…</td>:表格的一個單元格,一行中包含幾對<td>...<td/>,說明一行中就有幾列。
5、<th>…</th>:表格的頭部的一個單元格,表格表頭。
6、表格中列的個數,取決於一行中數據單元格的個數。


表格還是需要添加一些標籤進行優化,可以添加標題和摘要
<table summary="本表格記錄2012年到2013年庫存記錄,記錄包括U盤和耳機庫存量">
  <caption>2012年到2013年庫存記錄</caption>


3-4
1,使用<a>標籤,鏈接到別一個頁面
使用<a>標籤可實現超鏈接,它在網頁製作中可以說是無處不在,只要有鏈接的地方,就會有這個標籤。
語法:
<a href=”目標網址”>鏈接顯示的文本</a>
例如:
<a href = "http://www.imooc.com">click here!</a>
上面例子作用是單擊click here!文字,網頁鏈接到http://www.imooc.com這個網頁。


3-5
認識<img>標籤,爲網頁插入圖片
在網頁的製作中爲使網頁炫麗美觀,肯定是缺少不了圖片,可以使用<img>標籤來插入圖片。
語法:
<img src="圖片地址" alt="下載失敗時的替換文本" title = "提示文本">
舉例:
<img src = "myimage.gif" alt = "My Image" title = "My Image" />
講解:
1、src:標識圖像的位置;
2、alt:指定圖像的描述性文本,當圖像不可見時(下載不成功時),可看到該屬性指定的文本;
3、title:提供在圖像可見時對圖像的描述(鼠標滑過圖片時顯示的文本);
4、圖像可以是GIF,PNG,JPEG格式的圖像文件。


四,表單標籤(與用戶進行交互)
4-1
表單是可以把瀏覽者輸入的數據傳送到服務器端,這樣服務器端程序就可以處理表單傳過來的數據。
語法:
<form   method="傳送方式"   action="服務器文件">
講解:
1.<form> :<form>標籤是成對出現的,以<form>開始,以</form>結束。
2.action :瀏覽者輸入的數據被傳送到的地方,比如一個PHP頁面(save.php)。
3.method : 數據傳送的方式(get/post)。


4-2
<input>輸入框
文本輸入框、密碼輸入框
當用戶要在表單中鍵入字母、數字等內容時,就會用到文本輸入框。文本框也可以轉化爲密碼輸入框。
語法:
<form>
   <input type="text/password" name="名稱" value="文本" />
</form>
1、type:
   當type="text"時,輸入框爲文本輸入框;
   當type="password"時, 輸入框爲密碼輸入框。
2、name:爲文本框命名,以備後臺程序ASP 、PHP使用。
3、value:爲文本輸入框設置默認值。(一般起到提示作用)


4-3
文本域,支持多行文本輸入
當用戶需要在表單中輸入大段文字時,需要用到文本輸入域。
語法:
<textarea  rows="行數" cols="列數">文本</textarea>
1、<textarea>標籤是成對出現的,以<textarea>開始,以</textarea>結束。
2、cols :多行輸入域的列數。
3、rows :多行輸入域的行數。


4-4
單選框,複選框
語法:
<input   type="radio/checkbox"   value="值"    name="名稱"   checked="checked"/>
1、type:
   當type="radio"時,控件爲單選框
   當type="checkbox"時,控件爲複選框
2、value:提交數據到服務器的值(後臺程序PHP使用)
3、name:爲控件命名,以備後臺程序ASP、PHP使用
4、checked:當設置checked="checked"時,該選項被默認選中
注意:同一組的單選按鈕,name取值一定要一致,這樣同一組的單選按鈕纔可以起到單選的作用。


4-5
下拉列表框,節省空間
下拉列表在網頁中也常會用到,它可以有效的節省網頁空間。既可以單選、又可以多選。
語法:<option value="提交值">選項</option>
提交值是向服務器提交的值,選項是顯示的值。
<form action="save.php" method="post" >
    
<label>愛好:</label>
    
<select>
      
<option value="看書">看書</option>
      
<option value="旅遊" selected="selected">旅遊</option>
      
<option value="運動">運動</option>
      
<option value="購物">購物</option>
    
</select>


</form>


4-6
使用下拉列表框進行多選
下拉列表也可以進行多選操作,在<select>標籤中設置multiple="multiple"屬性,
就可以實現多選功能,進行多選時按下Ctrl鍵同時進行單擊,可以選擇多個選項。
如下代碼:
<form action="save.php" method="post" >
    
<label>愛好:</label>
    
<select multiple="multiple">


      <option value="看書">看書</option>


      <option value="旅遊">旅遊</option>


      <option value="運動">運動</option>


      <option value="購物">購物</option>
    
</select>


</form>


4-7
在表單中有兩種按鈕可以使用,分別爲:提交按鈕、重置。
1,提交按鈕:當用戶需要提交表單信息到服務器時,需要用到提交按鈕。
語法:
<input   type="submit"   value="提交">
type:只有當type值設置爲submit時,按鈕纔有提交作用
value:按鈕上顯示的文字


2,重置按鈕,重置表單信息
當用戶需要重置表單信息到初始時的狀態時,比如用戶輸入“用戶名”後,發現書寫有誤,可以使用重置按鈕使輸入框恢復到初始狀態。只需要把type設置爲"reset"就可以。
語法:
<input type="reset" value="重置">
type:只有當type值設置爲reset時,按鈕纔有重置作用
value:按鈕上顯示的文字


五,css樣式
5-1
認識css樣式
CSS全稱爲“層疊樣式表 (Cascading Style Sheets)”,它主要是用於定義HTML內容在瀏覽器內的顯示樣式,如文字大小、顏色、字體加粗等。
如下列代碼:
p{
   font-size:12px;
   color:red;
   font-weight:bold;
}
使用CSS樣式的一個好處是通過定義某個樣式,可以讓不同網頁位置的文字有着統一的字體、字號或者顏色等。


5-2
CSS代碼語法
css 樣式由選擇符和聲明組成,而聲明又由屬性和值組成
選擇符{屬性:值}
p{color:red;}
選擇符:又稱選擇器,指明網頁中要應用樣式規則的元素,如本例中是網頁中所有的段(p)的文字將變成藍色,而其他的元素(如ol)不會受到影響。
聲明:在英文大括號“{}”中的的就是聲明,屬性和值之間用英文冒號“:”分隔。當有多條聲明時,中間可以英文分號“;”分隔,如下所示:
p{font-size:12px;color:red;}


5-3
從CSS 樣式代碼插入的形式來看基本可以分爲以下3種:
內聯式、嵌入式和外部式三種
1,內聯式css樣式
就是把css代碼直接寫在現有的HTML標籤中,如下面代碼:
<p style="color:red">這裏文字是紅色。</p>
css樣式代碼要寫在style=""雙引號中,如果有多條css樣式代碼設置可以寫在一起,中間用分號隔開。如下代碼:
<p style="color:red;font-size:12px">這裏文字是紅色。</p>


2,嵌入式css樣式,
就是可以把css樣式代碼寫在<style type="text/css"></style>標籤之間。如下面代碼實現把三個<span>標籤中的文字設置爲紅色:
<style type="text/css">
span{
color:red;
}
</style>
嵌入式css樣式必須寫在<style></style>之間,並且一般情況下嵌入式css樣式寫在<head></head>之間。


3,外部式css樣式
寫在單獨的一個文件中
外部式css樣式(也可稱爲外聯式)就是把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css”爲擴展名,在<head>內(不是在<style>標籤內)使用<link>標籤將css樣式文件鏈接到HTML文件內,如下面代碼:
<link href="base.css" rel="stylesheet" type="text/css" />
注意:
1、css樣式文件名稱以有意義的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定寫法不可修改。
3、<link>標籤位置一般寫在<head>標籤之內。


六,CSS選擇器
每一條css樣式定義由兩部分組成,形式如下:
選擇器{
    樣式;
}
在{}之前的部分就是“選擇器”,“選擇器”指明瞭{}中的“樣式”的作用對象,也就是“樣式”作用於網頁中的哪些元素


6-1,標籤選擇器
標籤選擇器其實就是html代碼中的標籤。如右側代碼編輯器中的<html>、<body>、<h1>、<p>、<img>。例如下面代碼:
p{font-size:12px;line-height:1.6em;}
上面的css樣式代碼的作用:爲p標籤設置12px字號,行間距設置1.6em的樣式。


6-2,類選擇器
類選擇器在css樣式編碼中是最常用到的,如右側代碼編輯器中的代碼:可以實現爲“膽小如鼠”、“勇氣”字體設置爲紅色。
語法:
.類選器名稱{css樣式代碼;}
注意:
1、英文圓點開頭
2、其中類選器名稱可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合適的標籤把要修飾的內容標記起來,如下:
<span>膽小如鼠</span>
第二步:使用class="類選擇器名稱"爲標籤設置一個類,如下:
<span class="stress">膽小如鼠</span>
第三步:設置類選器css樣式,如下:
.stress{color:red;}/*類前面要加入一個英文圓點*/


6-3,ID選擇器
在很多方面,ID選擇器都類似於類選擇符,但也有一些重要的區別:
1、爲標籤設置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是井號(#)號,而不是英文圓點(.)。


6-4,類和ID選擇器的區別
相同點:可以應用於任何元素
不同點:
1、ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
下面代碼是正確的:
 <p>三年級時,我還是一個<span class="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span class="stress">勇氣</span>來回答老師提出的問題。</p>
而下面代碼是錯誤的:
 <p>三年級時,我還是一個<span id="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個<span id="stress">勇氣</span>來回答老師提出的問題。</p>
2、可以使用類選擇器詞列表方法爲一個元素同時設置多個樣式。我們可以爲一個元素同時設多個樣式,但只可以用類選擇器的方法實現,ID選擇器是不可以的(不能使用 ID 詞列表)。
下面的代碼是正確的(完整代碼見右側代碼編輯器)
.stress{
    color:red;
}
.bigsize{
    font-size:25px;
}
<p>到了<span class="stress bigsize">三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼的作用是爲“三年級”三個文字設置文本顏色爲紅色並且字號爲25px


下面的代碼是不正確的(完整代碼見右側代碼編輯器)
#stressid{
    color:red;
}
#bigsizeid{
    font-size:25px;
}
<p>到了<span id="stressid bigsizeid">三年級</span>下學期時,我們班上了一節公開課...</p>
上面代碼不可以實現爲“三年級”三個文字設置文本顏色爲紅色並且字號爲25px的作用。


6-5,子選擇器
還有一個比較有用的選擇器子選擇器,即大於符號(>),用於選擇指定標籤元素的子元素。如下面的代碼:
.food>li{border:1px solid red;}
這行代碼會使class名爲food下的子元素li加入紅色實線邊框。


6-6,包含(後代)選擇器
包含選擇器,即加入空格,用於選擇指定標籤元素下的後輩元素。如右側代碼編輯器中的代碼:
.first  span{color:red;}
請注意這個選擇器與子選擇器的區別
1,子選擇器(child selector)僅是指它的直接後代,或者你可以理解爲作用於子元素的第一代後代
2,後代選擇器是作用於所有子後代元素。後代選擇器通過空格來進行選擇,而子選擇器是通過“>”進行選擇。
總結:>作用於元素的第一代後代,空格作用於元素的所有後代。


6-7,通用選擇器
通用選擇器是功能最強大的選擇器,它使用一個(*)號指定,它的作用是匹配html中任意標籤元素,如下使用下面代碼使用html中任意標籤元素字體顏色全部設置爲紅色:
* {color:red;}


6-8,僞類選擇符
更有趣的是僞類選擇符,爲什麼叫做僞類選擇符,它允許給html不存在的標籤設置樣式,比如說我們給html中一個標籤元素的鼠標滑過的狀態來設置字體顏色:
a:hover{color:red;}
這行代碼會使被<a></a>標籤包裹的文字內容中的“膽小如鼠”字體顏色在鼠標滑過時變爲紅色。


6-9,分組選擇符
當你想爲html中多個標籤元素設置同一個樣式時,可以使用分組選擇符(,),如下代碼爲右側代碼編輯器中的h1、span標籤同時設置字體顏色爲紅色:
h1,span{color:red;}
它相當於下面兩行代碼:
h1{color:red;}
span{color:red;}


七,CSS的繼承、層疊和特殊性。
7-1
CSS的某些樣式是具有繼承性的,那麼什麼是繼承呢?繼承是一種規則,它允許樣式不僅應用於某個特定html標籤元素,而且應用於其後代。比如下面代碼:如某種顏色應用於p標籤,這個顏色設置不僅應用p標籤,還應用於p標籤中的所有子元素文本,這裏子元素爲span標籤。
但注意有一些css樣式是不具有繼承性的。如border:1px solid red;


7-2
根據權值來判斷使用哪個css樣式
瀏覽器是根據權值來判斷使用哪種css樣式的,權值高的就使用哪種css樣式。
下面是權值的規則:
標籤的權值爲1,類選擇符的權值爲10,ID選擇符的權值最高爲100。例如下面的代碼:
p{color:red;} /*權值爲1*/
p span{color:green;} /*權值爲1+1=2*/
.warning{color:white;} /*權值爲10*/
p span.warning{color:purple;} /*權值爲1+1+10=12*/
#footer .note p{color:yellow;} /*權值爲100+10+1=111*/
注意:還有一個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解爲繼承的權值最低


7-3,層疊
我們來思考一個問題:如果在html文件中對於同一個元素可以有多個css樣式存在並且這多個css樣式具有相同權重值怎麼辦?好,這一小節中的層疊幫你解決這個問題。
層疊就是在html文件中對於同一個元素可以有多個css樣式存在,當有相同權重的樣式存在時,會根據這些css樣式的前後順序來決定,處於最後面的css樣式會被應用。
如下面代碼:
p{color:red;}
p{color:green;}
<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
最後 p 中的文本會設置爲green,這個層疊很好理解,理解爲後面的樣式會覆蓋前面的樣式。
所以前面的css樣式優先級就不難理解了:
內聯樣式表(標籤內部)> 嵌入樣式表(當前文件中)> 外部樣式表(外部文件中)。


7-4,重要性
重要性
我們在做網頁代碼的時,有些特殊的情況需要爲某些樣式設置具有最高權值,怎麼辦?這時候我們可以使用!important來解決。
如下代碼:
p{color:red!important;}
p{color:green;}
<p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩。</p>
這時 p 段落中的文本會顯示的red紅色。
注意:!important要寫在分號的前面


八,CSS格式化排版
8-1
文字排版
1,文字排版--字體
我們可以使用css樣式爲網頁中的文字設置字體、字號、顏色等樣式屬性。下面我們來看一個例子,下面代碼實現:爲網頁中的文字設置字體爲宋體。
body{font-family:"宋體";}
這裏注意不要設置不常用的字體,因爲如果用戶本地電腦上如果沒有安裝你設置的字體,就會顯示瀏覽器默認的字體。(因爲用戶是否可以看到你設置的字體樣式取決於用戶本地電腦上是否安裝你設置的字體。)
2,文字排版--字號、顏色
可以使用下面代碼設置網頁中文字的字號爲12像素,並把字體顏色設置爲#666(灰色):
body{font-size:12px;color:#666}
3,文字排版--粗體
我們還可以使用css樣式來改變文字的樣式:粗體、斜體、下劃線、刪除線,可以使用下面代碼實現設置文字以粗體樣式顯示出來。
p span{font-weight:bold;}
4,文字排版--斜體
以下代碼可以實現文字以斜體樣式在瀏覽器中顯示:
p a{font-style:italic;}
<p>三年級時,我還是一個<a>膽小如鼠</a>的小女孩。</p>
5,文字排版--下劃線
有些情況下想爲文字設置爲下劃線樣式,這樣可以在視覺上強調文字,可以使用下面代碼來實現:
p a{text-decoration:underline;}
<p>三年級時,我還是一個<a>膽小如鼠</a>的小女孩。</p>


刪除線,在電商網站上經常見。
p a{text-decoration:line-through;}


8-2
段落排版
1,段落排版--縮進
中文文字中的段前習慣空兩個文字的空白,這個特殊的樣式可以用下面代碼來實現:
p{text-indent:2em;}
注意:2em的意思就是文字的2倍大小。


2,段落排版--行間距
這一小節我們來學習一下另一個在段落排版中起重要作用的行間距屬性(line-height),如下代碼實現設置段落行間距爲1.5倍。
p{line-height:1.5em;}


3,段落排版--字間距、字母間距
文字間隔、字母間隔設置:
如果想在網頁排版中設置文字間隔或者字母間隔就可以使用    letter-spacing來實現,如下面代碼:
h1{
    letter-spacing:50px;
}
...
<h1>了不起的蓋茨比</h1>
注意:這個樣式使用在英文單詞時,是設置字母與字母之間的間距。
單詞間距設置:
如果我想設置英文單詞之間的間距呢?可以使用word-spacing來實現。如下代碼:
h1{
    word-spacing:50px;
}
...
<h1>welcome to imooc!</h1>


九,CSS盒模型
9-1
元素分類
在講解CSS佈局之前,我們需要提前知道一些知識,在CSS中,html中的標籤元素大體被分爲三種不同的類型:塊狀元素、內聯元素和內聯塊狀元素。
常用的塊狀元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的內聯元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的內聯塊狀元素有:
<img>、<input>


9-2
元素分類--塊級元素
什麼是塊級元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是塊級元素。設置display:block就是將元素顯示爲塊級元素。如下代碼就是將行內元素a轉換爲塊狀元素,從頁使用a元素具有塊狀元素特點。
a{display:block;}
塊級元素特點:
1、每個塊級元素都從新的一行開始,並且其後的元素也另起一行。(真霸道,一個塊級元素獨佔一行)
2、元素的高度、寬度、行高以及頂和底邊距都可設置。
3、元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。


9-3
元素分類--行內元素
在html中,<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的行內元素(inline)元素。當然塊狀元素也可以通過代碼display:inline將元素設置爲行內元素。
行內元素特點:
1、和其他元素都在一行上;
2、元素的高度、寬度、行高及頂部和底部邊距不可設置;
3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。


9-4
元素分類--內聯塊狀元素
內聯塊狀元素(inline-block)就是同時具備內聯元素、塊狀元素的特點,代碼display:inline-block就是將元素設置爲內聯塊狀元素。(css2.1新增),<img>、<input>標籤就是這種內聯塊狀標籤。
inline-block元素特點:
1、和其他元素都在一行上;
2、元素的高度、寬度、行高以及頂和底邊距都可設置。


9-5
盒模型--邊框(一)
盒子模型的邊框就是圍繞着內容及補白的線,這條線你可以設置它的粗細、樣式和顏色(邊框三個屬性)。
如下面代碼爲div來設置邊框粗細爲2px、樣式爲實心的、顏色爲紅色的邊框:
div{
    border:2px  solid  red;
}
上面是border代碼的縮寫形式,可以分開寫:
div{
    border-width:2px;
    border-style:solid;
    border-color:red;
}
注意:
1、border-style(邊框樣式)常見樣式有:
dashed(虛線)| dotted(點線)| solid(實線)。


2、border-color(邊框顏色)中的顏色可設置爲十六進制顏色,如:
border-color:#888;//前面的井號不要忘掉。


9-6
盒模型--邊框(二)
現在有一個問題,如果有想爲p標籤單獨設置下邊框,而其它三邊都不設置邊框樣式怎麼辦呢?css樣式中允許只爲一個方向的邊框設置樣式:
div{border-bottom:1px solid red;}
同樣可以使用下面代碼實現其它三邊上、右、左邊框的設置:
border-top:1px solid red;
border-right:1px solid red; 
border-left:1px solid red;


9-7
盒模型--邊界
元素與其它元素之間的距離可以使用邊界(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;}
總結一下:padding和margin的區別,padding在邊框裏,margin在邊框外。


9-8
盒模型--填充
元素內容與邊框之間是可以設置距離的,稱之爲填充。填充也可分爲上、右、下、左。如下代碼:
div{padding:20px 10px15px 30px;}
順序一定不要搞混。可以分開寫上面代碼:
div{
   padding-top:20px;
   padding-right:10px;
   padding-bottom:15px;
   padding-left:30px;
}
如果上、右、下、左的填充都爲10px;可以這麼寫
div{padding:10px;}
如果上下填充一樣爲10px,左右一樣爲20px,可以這麼寫:
div{padding:10px 20px;}


9-9
盒模型代碼簡寫
還記得在講盒模型時外邊距(margin)、內邊距(padding)和邊框(border)設置上下左右四個方向的邊距是按照順時針方向設置的:上右下左。具體應用在margin和padding的例子如下:
margin:10px 15px 12px 14px;/*上設置爲10px、右設置爲15px、下設置爲12px、左設置爲14px*/
通常有下面三種縮寫方法:
1、如果top、right、bottom、left的值相同,如下面代碼:
margin:10px 10px 10px 10px;
可縮寫爲:
margin:10px;
2、如果top和bottom值相同、left和 right的值相同,如下面代碼:
margin:10px 20px 10px 20px;
可縮寫爲:
margin:10px 20px;
3、如果left和right的值相同,如下面代碼:
margin:10px 20px 30px 20px;
可縮寫爲:
margin:10px 20px 30px;
注意:padding、border的縮寫方法和margin是一致的。


9-10
顏色值縮寫
關於顏色的css樣式也是可以縮寫的,當你設置的顏色是16進制的色彩值時,如果每兩位的值相同,可以縮寫一半。
例子1:
p{color:#000000;}
可以縮寫爲:
p{color: #000;}
例子2:
p{color: #336699;}
可以縮寫爲:
p{color: #369;}




十,CSS佈局模型
10-1
css佈局模型
清楚了CSS 盒模型的基本概念、 盒模型類型, 我們就可以深入探討網頁佈局的基本模型了。佈局模型與盒模型一樣都是 CSS 最基本、 最核心的概念。 但佈局模型是建立在盒模型基礎之上,又不同於我們常說的 CSS 佈局樣式或 CSS 佈局模板。如果說佈局模型是本,那麼 CSS 佈局模板就是末了,是外在的表現形式。 
CSS包含3種基本的佈局模型,用英文概括爲:Flow、Layer 和 Float。
在網頁中,元素有三種佈局模型:
1、流動模型(Flow)
2、浮動模型 (Float)
3、層模型(Layer)


10-2
流動模型(一)
流動(Flow):自上而下。
先來說一說流動模型,流動(Flow)是默認的網頁佈局模式。也就是說網頁在默認狀態下的 HTML 網頁元素都是根據流動模型來分佈網頁內容的。
流動佈局模型具有2個比較典型的特徵:


第一點,塊狀元素都會在所處的包含元素內自上而下按順序垂直延伸分佈,因爲在默認狀態下,塊狀元素的寬度都爲100%。實際上,塊狀元素都會以行的形式佔據位置。如右側代碼編輯器中三個塊狀元素標籤(div,h1,p)寬度顯示爲100%。


第二點,在流動模型下,內聯元素都會在所處的包含元素內從左到右水平分佈顯示。(內聯元素可不像塊狀元素這麼霸道獨佔一行)
右側代碼編輯器中內聯元素標籤a、span、em、strong都是內聯元素。


10-3
浮動模型
塊狀元素這麼霸道都是獨佔一行,如果現在我們想讓兩個塊狀元素並排顯示,怎麼辦呢?不要着急,設置元素浮動就可以實現這一願望。任何元素在默認情況下是不能浮動的,但可以用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>


注意:設置浮動的同時一定要先設置塊狀元素的寬度,且需要浮動的幾個元素寬度加起來一定要小於容器元素的寬度。


10-4
什麼是層模型?
什麼是層佈局模型?層佈局模型就像是圖像軟件PhotoShop中非常流行的圖層編輯功能一樣,每個圖層能夠精確定位操作,但在網頁設計領域,由於網頁大小的活動性,層佈局沒能受到熱捧。但是在網頁上局部使用層佈局還是有其方便之處的。下面我們來學習一下html中的層佈局。
如何讓html元素在網頁中精確定位,就像圖像軟件PhotoShop中的圖層一樣可以對每個圖層能夠精確定位操作。CSS定義了一組定位(positioning)屬性來支持層佈局模型。
層模型有三種形式:
1、絕對定位(position: absolute)
2、相對定位(position: relative)
3、固定定位(position: fixed)


1,層模型--絕對定位(相對於父類)
如果想爲元素設置層模型中的絕對定位,需要設置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>


2,層模型--相對定位(相對於以前)
如果想爲元素設置層模型中的相對定位,需要設置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>


3,層模型--固定定位(相對於網頁窗口)
固定住某一座標。
fixed:表示固定定位,與absolute定位類型類似,但它的相對移動的座標是視圖(屏幕內的網頁窗口)本身。由於視圖本身是固定的,它不會隨瀏覽器窗口的滾動條滾動而變化,除非你在屏幕中移動瀏覽器窗口的屏幕位置,或改變瀏覽器窗口的顯示大小,因此固定定位的元素會始終位於瀏覽器窗口內視圖的某個位置,不會受文檔流動影響,這與background-attachment:fixed?屬性功能相同。以下代碼可以實現相對於瀏覽器視圖向右移動100px,向下移動50px。並且拖動滾動條時位置固定不變。
#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:fixed;
    left:100px;
    top:50px;
}


10-5
Relative與Absolute組合使用
小夥伴們學習了12-6小節的相對定位的方法:使用position:absolute可以實現被設置元素相對於瀏覽器(body)設置定位以後,大家有沒有想過可不可以相對於其它元素進行定位呢?答案是肯定的,當然可以。使用position:relative來幫忙,但是必須遵守下面規範:
1、參照定位的元素必須是相對定位元素的前輩元素:
<div id="box1"><!--參照定位的元素-->
    <div id="box2">相對參照元素進行定位</div><!--相對定位元素-->
</div>
從上面代碼可以看出box1是box2的父元素(父元素當然也是前輩元素了)。
2、參照定位的元素必須加入position:relative;
#box1{
    width:200px;
    height:200px;
    position:relative;        
}
3、定位元素加入position:absolute,便可以使用top、bottom、left、right來進行偏移定位了。
#box2{
    position:absolute;
    top:20px;
    left:30px;         
}
這樣box2就可以相對於父元素box1定位了(這裏注意參照物就可以不是瀏覽器了,而可以自由設置了)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章