一、基本線條:
1、<HR>
2、align線條位置(可選left、right、center);width線條長(zhǎng)度;color顏色;size厚度
<HRalign=center width=300 color=#987cb9SIZE=1>
二、特效(效果并不是孤立的,可相互組合)
1、兩頭漸變透明:
<HR style="FILTER:alpha(opacity=100,finishopacity=0,style=2)" width="80%"color=#987cb9 SIZE=10>
2、紡錘形:
<HR style="FILTER:alpha(opacity=100,finishopacity=0,style=1)" width="80%"color=#987cb9 SIZE=3>
3、右邊漸變透明:
<HR style="FILTER:alpha(opacity=0,finishopacity=100,style=1)" width="80%"color=#987cb9 SIZE=3>
4、左邊漸變透明:
<HR style="border:1 dashed #987cb9" width="80%"color=#987cb9 SIZE=1>
5、虛線:
<HR style="border:3 double #987cb9" width="80%"color=#987cb9 SIZE=3>
6、雙線:
<HR style="FILTER:progid:DXImageTransform.Microsoft.Shadow(color:#987cb9,direction:145,strength:15)"width="80%" color=#987cb9 SIZE=1>
7、立體效果:
<HR style="FILTER:progid:DXImageTransform.Microsoft.Glow(color=#987cb9,strength=10)"width="80%" color=#987cb9 SIZE=1>
8、鋼針效果:
<table border="1px" cellpadding="0" cellspacing="0"style="height:265px;border-left-style:solid;border-bottom-style:none;border-right-style:none;border-top-style:none">
9.垂直分割線
<table border="1px" cellpadding="0" cellspacing="0"style="height:265px;border-left-style:solid;border-bottom-style:none;border-right-style:none;border-top-style:none">
HTML代碼:
<hr style="border: 1px dotted #FF0000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
[Ctrl+A 全部選擇提示:你可先修改部分代碼,再按運(yùn)行]
Html和CSS的關(guān)系
學(xué)習(xí)web前端開發(fā)基礎(chǔ)技術(shù)需要掌握:HTML、CSS、JavaScript語言。下面我們就來了解下這三門技術(shù)都是用來實(shí)現(xiàn)什么的:
1. HTML是網(wǎng)頁內(nèi)容的載體。內(nèi)容就是網(wǎng)頁制作者放在頁面上想要讓用戶瀏覽的信息,可以包含文字、圖片、視頻等。
2. CSS樣式是表現(xiàn)。就像網(wǎng)頁的外衣。比如,標(biāo)題字體、顏色變化,或?yàn)闃?biāo)題加入背景圖片、邊框等。所有這些用來改變內(nèi)容外觀的東西稱之為表現(xiàn)。
3. JavaScript是用來實(shí)現(xiàn)網(wǎng)頁上的特效效果。如:鼠標(biāo)滑過彈出下拉菜單。或鼠標(biāo)滑過表格的背景顏色改變。還有焦點(diǎn)新聞(新聞圖片)的輪換。可以這么理解,有動(dòng)畫的,有交互的一般都是用JavaScript來實(shí)現(xiàn)的。
1, HTML標(biāo)簽不區(qū)分大小寫,<h1>和<H1>是一樣的,但建議小寫,因?yàn)榇蟛糠殖绦騿T都以小寫為準(zhǔn)。
一個(gè)HTML文件是有自己固定的結(jié)構(gòu)的。
<html>
<head>...</head>
<body>...</body>
</html>
代碼講解:
1. <html></html>稱為根標(biāo)簽,所有的網(wǎng)頁標(biāo)簽都在<html></html>中。
2. <head> 標(biāo)簽用于定義文檔的頭部,它是所有頭部元素的容器。頭部元素有<title>、<script>、 <style>、<link>、 <meta>等標(biāo)簽,頭部標(biāo)簽在下一小節(jié)中會(huì)有詳細(xì)介紹。
3. 在<body>和</body>標(biāo)簽之間的內(nèi)容是網(wǎng)頁的主要內(nèi)容,如<h1>、<p>、<a>、<img>等網(wǎng)頁內(nèi)容標(biāo)簽,在這里的標(biāo)簽中的內(nèi)容會(huì)在瀏覽器中顯示出來。
1,下面這些標(biāo)簽可用在 head 部分:
<head>
<title>...</title>
<meta>
<link>
<style>...</style>
<script>...</script>
</head>
2,代碼注釋不僅方便程序員自己回憶起以前代碼的用途,還可以幫助其他程序員很快的讀懂你的程序的功能,方便多人合作開發(fā)網(wǎng)頁代碼。
語法:
<!--注釋文字 -->
3,CSS注釋代碼
就像在Html的注釋一樣,在CSS中也有注釋語句:用/*注釋語句*/來標(biāo)明(Html中使用<!--注釋語句-->)
1,語義化:說的通俗點(diǎn)就是:明白每個(gè)標(biāo)簽的用途(在什么情況下我可以使用這個(gè)標(biāo)簽才合理)比如,網(wǎng)頁上的文章的標(biāo)題就得用標(biāo)題標(biāo)簽,網(wǎng)頁上的各個(gè)欄目的欄目名稱也可以使用標(biāo)題標(biāo)簽。
2,語義化的作用
1). 更容易被搜索引擎收錄。
2). 更容易讓屏幕閱讀器讀出網(wǎng)頁內(nèi)容。
二,認(rèn)識(shí)標(biāo)簽(第一部分)
如果想在網(wǎng)頁上顯示文章,這時(shí)就需要<p>標(biāo)簽了,把文章的段落放到<p>標(biāo)簽中。
語法:
<p>段落文本</p>
<hx>標(biāo)簽來制作文章的標(biāo)題。
標(biāo)題標(biāo)簽一共有6個(gè),h1、h2、h3、h4、h5、h6分別為一級(jí)標(biāo)題、二級(jí)標(biāo)題、三級(jí)標(biāo)題、四級(jí)標(biāo)題、五級(jí)標(biāo)題、六級(jí)標(biāo)題。并且依據(jù)重要性遞減。<h1>是最高的等級(jí)。
語法:
<hx>標(biāo)題文本</hx> (x為1-6)
文章的標(biāo)題前面已經(jīng)說過了,可以使用標(biāo)題標(biāo)簽,另外網(wǎng)頁上的各個(gè)欄目的標(biāo)題也可使用它們
有了段落又有了標(biāo)題,現(xiàn)在如果想在一段話中特別強(qiáng)調(diào)某幾個(gè)文字,這時(shí)候就可以用到<em>或<strong>標(biāo)簽。
但兩者在強(qiáng)調(diào)的語氣上有區(qū)別:<em> 表示強(qiáng)調(diào),<strong> 表示更強(qiáng)烈的強(qiáng)調(diào)。并且在瀏覽器中<em> 默認(rèn)用斜體表示,<strong> 用粗體表示。兩個(gè)標(biāo)簽相比,目前國(guó)內(nèi)前端程序員更喜歡使用<strong>表示強(qiáng)調(diào)
<em>、<strong>、<span>的區(qū)別:
1. <em>和<strong>標(biāo)簽是為了強(qiáng)調(diào)一段話中的關(guān)鍵字時(shí)使用,它們的語義是強(qiáng)調(diào)。
2. <span>標(biāo)簽是沒有語義的,它的作用就是為了設(shè)置單獨(dú)的樣式用的,把一段話圈起來,然后用css設(shè)置樣式。
q標(biāo)簽,短文本引用
比如在你的網(wǎng)頁的文章里想引用某個(gè)作家的一句詩,這樣會(huì)使你的文章更加出彩,那么<q>標(biāo)簽是你所需要的。
語法:
<q>引用文本</q>
1,注意要引用的文本不用加雙引號(hào),瀏覽器會(huì)對(duì)q標(biāo)簽自動(dòng)添加雙引號(hào)。
2,注意這里用<q>標(biāo)簽的真正關(guān)鍵點(diǎn)不是它的默認(rèn)樣式雙引號(hào)(如果這樣我們不如自己在鍵盤上輸入雙引號(hào)就行了),而是它的語義:引用別人的話
blockquote標(biāo)簽,長(zhǎng)文本引用
<blockquote>的作用也是引用別人的文本。但它是對(duì)長(zhǎng)文本的引用
<q>標(biāo)簽是對(duì)簡(jiǎn)短文本的引用,比如說引用一句話就用到<q>標(biāo)簽。
語法:
<blockquote>引用文本</blockquote>
瀏覽器對(duì)<blockquote>標(biāo)簽的解析是縮進(jìn)樣式
換行標(biāo)簽<br/>
<br/>標(biāo)簽作用相當(dāng)于word文檔中的回車。
分割線標(biāo)簽<hr/>
<hr/>標(biāo)簽和<br/>標(biāo)簽一樣也是一個(gè)空標(biāo)簽,所以只有一個(gè)開始標(biāo)簽,沒有結(jié)束標(biāo)簽。
<hr/>標(biāo)簽的在瀏覽器中的默認(rèn)樣式線條比較粗,顏色為灰色,可能有些人覺得這種樣式不美觀,沒有關(guān)系,這些外在樣式在我們以后學(xué)習(xí)了css樣式表之后,都可以對(duì)其修改。
html特殊字符
空格: (;分號(hào)必不可少)
address標(biāo)簽,為網(wǎng)頁加入地址信息
語法:
<address>地址信息</address>
如:
<address>北京市西城區(qū)德外大街10號(hào)</address>
在瀏覽器上顯示的樣式為斜體,如果不喜歡斜體,當(dāng)然可以,可以在后面的課程中使用css樣式來修改它<address>標(biāo)簽的默認(rèn)樣式
在介紹語言技術(shù)的網(wǎng)站中,必免不了在網(wǎng)頁中顯示一些計(jì)算機(jī)專業(yè)的編程代碼,當(dāng)代碼為一行代碼時(shí),你就可以使用<code>標(biāo)簽了,如下面例子:
<code>var i=i+300;</code>
語法:
<code>代碼語言</code>
注意:在文章中一般如果要插入多行代碼時(shí)不能使用<code>標(biāo)簽,如果是多行代碼,可以使用<pre>標(biāo)簽。
<pre> 標(biāo)簽的主要作用:預(yù)格式化的文本。被包圍在 pre 元素中的文本通常會(huì)保留空格和換行符。如果用以前的方法,回車需要輸入<br>簽,空格需要輸入 。
注意:<pre> 標(biāo)簽不只是為顯示計(jì)算機(jī)的源代碼時(shí)用的,在你需要在網(wǎng)頁中預(yù)顯示格式時(shí)都可以使用它,只是<pre>標(biāo)簽的一個(gè)常見應(yīng)用就是用來展示計(jì)算機(jī)的源代碼。
三,認(rèn)識(shí)標(biāo)簽(第二部分)
1,無序列表
ul-li是沒有前后順序的信息列表。
語法:
<ul>
<li>信息</li>
<li>信息</li>
......
</ul>
舉例:
<ul>
<li>精彩少年</li>
<li>美麗突然出現(xiàn)</li>
<li>觸動(dòng)心靈的旋律</li>
</ul>
ul-li在網(wǎng)頁中顯示的默認(rèn)樣式一般為:每項(xiàng)li前都自帶一個(gè)圓點(diǎn)
2,有序列表
語法:
<ol>
<li>信息</li>
<li>信息</li>
......
</ol>
舉例:
下面是一個(gè)熱點(diǎn)課程下載排行榜:
<ol>
<li>前端開發(fā)面試心法 </li>
<li>零基礎(chǔ)學(xué)習(xí)html</li>
<li>JavaScript全攻略</li>
</ol>
<ol>在網(wǎng)頁中顯示的默認(rèn)樣式一般為:每項(xiàng)<li>前都自帶一個(gè)序號(hào),序號(hào)默認(rèn)從1開
<div>容器標(biāo)簽
在網(wǎng)頁制作過程過中,可以把一些獨(dú)立的邏輯部分劃分出來,放在一個(gè)<div>標(biāo)簽中,這個(gè)<div>標(biāo)簽的作用就相當(dāng)于一個(gè)容器。
語法:
<div>…</div>
確定邏輯部分:
什么是邏輯部分?它是頁面上相互關(guān)聯(lián)的一組元素。如網(wǎng)頁中的獨(dú)立的欄目版塊,就是一個(gè)典型的邏輯部分。如下圖所示:圖中用紅色邊框標(biāo)出的部分就是一個(gè)邏輯部分,就可以使用<div>標(biāo)簽作為容器
注釋:<div> 是一個(gè)塊級(jí)元素,也就是說,瀏覽器通常會(huì)在 div 元素前后放置一個(gè)換行符。
創(chuàng)建表格的五個(gè)元素:
table、tbody、tr、th、td
1、<table>…</table>:整個(gè)表格以<table>標(biāo)記開始、</table>標(biāo)記結(jié)束。
2、<tbody>…</tbody>:當(dāng)表格內(nèi)容非常多時(shí),表格會(huì)下載一點(diǎn)顯示一點(diǎn),但如果加上<tbody>標(biāo)簽后,這個(gè)表格就要等表格內(nèi)容全部下載完才會(huì)顯示。如右側(cè)代碼編輯器中的代碼。(這個(gè)標(biāo)簽基本上不怎么用了)
3、<tr>…</tr>:表格的一行,所以有幾對(duì)tr 表格就有幾行。
4、<td>…</td>:表格的一個(gè)單元格,一行中包含幾對(duì)<td>...<td/>,說明一行中就有幾列。
5、<th>…</th>:表格的頭部的一個(gè)單元格,表格表頭。
6、表格中列的個(gè)數(shù),取決于一行中數(shù)據(jù)單元格的個(gè)數(shù)。
表格還是需要添加一些標(biāo)簽進(jìn)行優(yōu)化,可以添加標(biāo)題和摘要
<table summary="本表格記錄2012年到2013年庫存記錄,記錄包括U盤和耳機(jī)庫存量">
<caption>2012年到2013年庫存記錄</caption>
1,使用<a>標(biāo)簽,鏈接到別一個(gè)頁面
使用<a>標(biāo)簽可實(shí)現(xiàn)超鏈接,它在網(wǎng)頁制作中可以說是無處不在,只要有鏈接的地方,就會(huì)有這個(gè)標(biāo)簽。
語法:
<a href=”目標(biāo)網(wǎng)址”>鏈接顯示的文本</a>
例如:
<a >click here!</a>
上面例子作用是單擊click here!文字,網(wǎng)頁鏈接到http://www.imooc.com這個(gè)網(wǎng)頁。
認(rèn)識(shí)<img>標(biāo)簽,為網(wǎng)頁插入圖片
在網(wǎng)頁的制作中為使網(wǎng)頁炫麗美觀,肯定是缺少不了圖片,可以使用<img>標(biāo)簽來插入圖片。
語法:
<img src="圖片地址" alt="下載失敗時(shí)的替換文本" title = "提示文本">
舉例:
<img src = "myimage.gif" alt = "My Image" title = "My Image" />
講解:
1、src:標(biāo)識(shí)圖像的位置;
2、alt:指定圖像的描述性文本,當(dāng)圖像不可見時(shí)(下載不成功時(shí)),可看到該屬性指定的文本;
3、title:提供在圖像可見時(shí)對(duì)圖像的描述(鼠標(biāo)滑過圖片時(shí)顯示的文本);
4、圖像可以是GIF,PNG,JPEG格式的圖像文件。
四,表單標(biāo)簽(與用戶進(jìn)行交互)
表單是可以把瀏覽者輸入的數(shù)據(jù)傳送到服務(wù)器端,這樣服務(wù)器端程序就可以處理表單傳過來的數(shù)據(jù)。
語法:
<form method="傳送方式" action="服務(wù)器文件">
講解:
1.<form> :<form>標(biāo)簽是成對(duì)出現(xiàn)的,以<form>開始,以</form>結(jié)束。
2.action :瀏覽者輸入的數(shù)據(jù)被傳送到的地方,比如一個(gè)PHP頁面(save.php)。
3.method : 數(shù)據(jù)傳送的方式(get/post)。
<input>輸入框
文本輸入框、密碼輸入框
當(dāng)用戶要在表單中鍵入字母、數(shù)字等內(nèi)容時(shí),就會(huì)用到文本輸入框。文本框也可以轉(zhuǎn)化為密碼輸入框。
語法:
<form>
<input type="text/password" name="名稱" value="文本" />
</form>
1、type:
當(dāng)type="text"時(shí),輸入框?yàn)槲谋据斎肟?
當(dāng)type="password"時(shí), 輸入框?yàn)槊艽a輸入框。
2、name:為文本框命名,以備后臺(tái)程序ASP 、PHP使用。
3、value:為文本輸入框設(shè)置默認(rèn)值。(一般起到提示作用)
文本域,支持多行文本輸入
當(dāng)用戶需要在表單中輸入大段文字時(shí),需要用到文本輸入域。
語法:
<textarea rows="行數(shù)" cols="列數(shù)">文本</textarea>
1、<textarea>標(biāo)簽是成對(duì)出現(xiàn)的,以<textarea>開始,以</textarea>結(jié)束。
2、cols :多行輸入域的列數(shù)。
3、rows :多行輸入域的行數(shù)。
單選框,復(fù)選框
語法:
<input type="radio/checkbox" value="值" name="名稱" checked="checked"/>
1、type:
當(dāng)type="radio"時(shí),控件為單選框
當(dāng)type="checkbox"時(shí),控件為復(fù)選框
2、value:提交數(shù)據(jù)到服務(wù)器的值(后臺(tái)程序PHP使用)
3、name:為控件命名,以備后臺(tái)程序ASP、PHP使用
4、checked:當(dāng)設(shè)置checked="checked"時(shí),該選項(xiàng)被默認(rèn)選中
注意:同一組的單選按鈕,name取值一定要一致,這樣同一組的單選按鈕才可以起到單選的作用。
下拉列表框,節(jié)省空間
下拉列表在網(wǎng)頁中也常會(huì)用到,它可以有效的節(jié)省網(wǎng)頁空間。既可以單選、又可以多選。
語法:<option value="提交值">選項(xiàng)</option>
提交值是向服務(wù)器提交的值,選項(xiàng)是顯示的值。
<form action="save.php" method="post" >
<label>愛好:</label>
<select>
<option value="看書">看書</option>
<option value="旅游" selected="selected">旅游</option>
<option value="運(yùn)動(dòng)">運(yùn)動(dòng)</option>
<option value="購物">購物</option>
</select>
</form>
使用下拉列表框進(jìn)行多選
下拉列表也可以進(jìn)行多選操作,在<select>標(biāo)簽中設(shè)置multiple="multiple"屬性,
就可以實(shí)現(xiàn)多選功能,進(jìn)行多選時(shí)按下Ctrl鍵同時(shí)進(jìn)行單擊,可以選擇多個(gè)選項(xiàng)。
如下代碼:
<form action="save.php" method="post" >
<label>愛好:</label>
<select multiple="multiple">
<option value="看書">看書</option>
<option value="旅游">旅游</option>
<option value="運(yùn)動(dòng)">運(yùn)動(dòng)</option>
<option value="購物">購物</option>
</select>
</form>
在表單中有兩種按鈕可以使用,分別為:提交按鈕、重置。
1,提交按鈕:當(dāng)用戶需要提交表單信息到服務(wù)器時(shí),需要用到提交按鈕。
語法:
<input type="submit" value="提交">
type:只有當(dāng)type值設(shè)置為submit時(shí),按鈕才有提交作用
value:按鈕上顯示的文字
2,重置按鈕,重置表單信息
當(dāng)用戶需要重置表單信息到初始時(shí)的狀態(tài)時(shí),比如用戶輸入“用戶名”后,發(fā)現(xiàn)書寫有誤,可以使用重置按鈕使輸入框恢復(fù)到初始狀態(tài)。只需要把type設(shè)置為"reset"就可以。
語法:
<input type="reset" value="重置">
type:只有當(dāng)type值設(shè)置為reset時(shí),按鈕才有重置作用
value:按鈕上顯示的文字
五,css樣式
認(rèn)識(shí)css樣式
CSS全稱為“層疊樣式表 (Cascading Style Sheets)”,它主要是用于定義HTML內(nèi)容在瀏覽器內(nèi)的顯示樣式,如文字大小、顏色、字體加粗等。
如下列代碼:
p{
font-size:12px;
color:red;
font-weight:bold;
}
使用CSS樣式的一個(gè)好處是通過定義某個(gè)樣式,可以讓不同網(wǎng)頁位置的文字有著統(tǒng)一的字體、字號(hào)或者顏色等。
CSS代碼語法
css 樣式由選擇符和聲明組成,而聲明又由屬性和值組成
選擇符{屬性:值}
p{color:red;}
選擇符:又稱選擇器,指明網(wǎng)頁中要應(yīng)用樣式規(guī)則的元素,如本例中是網(wǎng)頁中所有的段(p)的文字將變成藍(lán)色,而其他的元素(如ol)不會(huì)受到影響。
聲明:在英文大括號(hào)“{}”中的的就是聲明,屬性和值之間用英文冒號(hào)“:”分隔。當(dāng)有多條聲明時(shí),中間可以英文分號(hào)“;”分隔,如下所示:
p{font-size:12px;color:red;}
從CSS 樣式代碼插入的形式來看基本可以分為以下3種:
內(nèi)聯(lián)式、嵌入式和外部式三種
1,內(nèi)聯(lián)式css樣式
就是把css代碼直接寫在現(xiàn)有的HTML標(biāo)簽中,如下面代碼:
<p style="color:red">這里文字是紅色。</p>
css樣式代碼要寫在style=""雙引號(hào)中,如果有多條css樣式代碼設(shè)置可以寫在一起,中間用分號(hào)隔開。如下代碼:
<p style="color:red;font-size:12px">這里文字是紅色。</p>
2,嵌入式css樣式,
就是可以把css樣式代碼寫在<style type="text/css"></style>標(biāo)簽之間。如下面代碼實(shí)現(xiàn)把三個(gè)<span>標(biāo)簽中的文字設(shè)置為紅色:
<style type="text/css">
span{
color:red;
}
</style>
嵌入式css樣式必須寫在<style></style>之間,并且一般情況下嵌入式css樣式寫在<head></head>之間。
3,外部式css樣式
寫在單獨(dú)的一個(gè)文件中
外部式css樣式(也可稱為外聯(lián)式)就是把css代碼寫一個(gè)單獨(dú)的外部文件中,這個(gè)css樣式文件以“.css”為擴(kuò)展名,在<head>內(nèi)(不是在<style>標(biāo)簽內(nèi))使用<link>標(biāo)簽將css樣式文件鏈接到HTML文件內(nèi),如下面代碼:
<link href="base.css" rel="stylesheet" type="text/css" />
1、css樣式文件名稱以有意義的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定寫法不可修改。
3、<link>標(biāo)簽位置一般寫在<head>標(biāo)簽之內(nèi)。
六,CSS選擇器
每一條css樣式定義由兩部分組成,形式如下:
選擇器{
樣式;
}
在{}之前的部分就是“選擇器”,“選擇器”指明了{(lán)}中的“樣式”的作用對(duì)象,也就是“樣式”作用于網(wǎng)頁中的哪些元素
標(biāo)簽選擇器其實(shí)就是html代碼中的標(biāo)簽。如右側(cè)代碼編輯器中的<html>、<body>、<h1>、<p>、<img>。例如下面代碼:
p{font-size:12px;line-height:1.6em;}
上面的css樣式代碼的作用:為p標(biāo)簽設(shè)置12px字號(hào),行間距設(shè)置1.6em的樣式。
類選擇器在css樣式編碼中是最常用到的,如右側(cè)代碼編輯器中的代碼:可以實(shí)現(xiàn)為“膽小如鼠”、“勇氣”字體設(shè)置為紅色。
語法:
.類選器名稱{css樣式代碼;}
注意:
1、英文圓點(diǎn)開頭
2、其中類選器名稱可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合適的標(biāo)簽把要修飾的內(nèi)容標(biāo)記起來,如下:
<span>膽小如鼠</span>
第二步:使用class="類選擇器名稱"為標(biāo)簽設(shè)置一個(gè)類,如下:
<span class="stress">膽小如鼠</span>
第三步:設(shè)置類選器css樣式,如下:
.stress{color:red;}/*類前面要加入一個(gè)英文圓點(diǎn)*/
在很多方面,ID選擇器都類似于類選擇符,但也有一些重要的區(qū)別:
1、為標(biāo)簽設(shè)置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是井號(hào)(#)號(hào),而不是英文圓點(diǎn)(.)。
相同點(diǎn):可以應(yīng)用于任何元素
不同點(diǎn):
1、ID選擇器只能在文檔中使用一次。與類選擇器不同,在一個(gè)HTML文檔中,ID選擇器只能使用一次,而且僅一次。而類選擇器可以使用多次。
下面代碼是正確的:
<p>三年級(jí)時(shí),我還是一個(gè)<span class="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯(cuò)了老師會(huì)批評(píng)我。就一直沒有這個(gè)<span class="stress">勇氣</span>來回答老師提出的問題。</p>
而下面代碼是錯(cuò)誤的:
<p>三年級(jí)時(shí),我還是一個(gè)<span id="stress">膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯(cuò)了老師會(huì)批評(píng)我。就一直沒有這個(gè)<span id="stress">勇氣</span>來回答老師提出的問題。</p>
2、可以使用類選擇器詞列表方法為一個(gè)元素同時(shí)設(shè)置多個(gè)樣式。我們可以為一個(gè)元素同時(shí)設(shè)多個(gè)樣式,但只可以用類選擇器的方法實(shí)現(xiàn),ID選擇器是不可以的(不能使用 ID 詞列表)。
下面的代碼是正確的(完整代碼見右側(cè)代碼編輯器)
.stress{
color:red;
}
.bigsize{
font-size:25px;
}
<p>到了<span class="stress bigsize">三年級(jí)</span>下學(xué)期時(shí),我們班上了一節(jié)公開課...</p>
上面代碼的作用是為“三年級(jí)”三個(gè)文字設(shè)置文本顏色為紅色并且字號(hào)為25px
下面的代碼是不正確的(完整代碼見右側(cè)代碼編輯器)
#stressid{
color:red;
}
#bigsizeid{
font-size:25px;
}
<p>到了<span id="stressid bigsizeid">三年級(jí)</span>下學(xué)期時(shí),我們班上了一節(jié)公開課...</p>
上面代碼不可以實(shí)現(xiàn)為“三年級(jí)”三個(gè)文字設(shè)置文本顏色為紅色并且字號(hào)為25px的作用。
還有一個(gè)比較有用的選擇器子選擇器,即大于符號(hào)(>),用于選擇指定標(biāo)簽元素的子元素。如下面的代碼:
.food>li{border:1px solid red;}
這行代碼會(huì)使class名為food下的子元素li加入紅色實(shí)線邊框。
包含選擇器,即加入空格,用于選擇指定標(biāo)簽元素下的后輩元素。如右側(cè)代碼編輯器中的代碼:
.first span{color:red;}
請(qǐng)注意這個(gè)選擇器與子選擇器的區(qū)別
1,子選擇器(child selector)僅是指它的直接后代,或者你可以理解為作用于子元素的第一代后代
2,后代選擇器是作用于所有子后代元素。后代選擇器通過空格來進(jìn)行選擇,而子選擇器是通過“>”進(jìn)行選擇。
總結(jié):>作用于元素的第一代后代,空格作用于元素的所有后代。
通用選擇器是功能最強(qiáng)大的選擇器,它使用一個(gè)(*)號(hào)指定,它的作用是匹配html中任意標(biāo)簽元素,如下使用下面代碼使用html中任意標(biāo)簽元素字體顏色全部設(shè)置為紅色:
* {color:red;}
更有趣的是偽類選擇符,為什么叫做偽類選擇符,它允許給html不存在的標(biāo)簽設(shè)置樣式,比如說我們給html中一個(gè)標(biāo)簽元素的鼠標(biāo)滑過的狀態(tài)來設(shè)置字體顏色:
a:hover{color:red;}
這行代碼會(huì)使被<a></a>標(biāo)簽包裹的文字內(nèi)容中的“膽小如鼠”字體顏色在鼠標(biāo)滑過時(shí)變?yōu)榧t色。
當(dāng)你想為html中多個(gè)標(biāo)簽元素設(shè)置同一個(gè)樣式時(shí),可以使用分組選擇符(,),如下代碼為右側(cè)代碼編輯器中的h1、span標(biāo)簽同時(shí)設(shè)置字體顏色為紅色:
h1,span{color:red;}
它相當(dāng)于下面兩行代碼:
h1{color:red;}
span{color:red;}
七,CSS的繼承、層疊和特殊性。
CSS的某些樣式是具有繼承性的,那么什么是繼承呢?繼承是一種規(guī)則,它允許樣式不僅應(yīng)用于某個(gè)特定html標(biāo)簽元素,而且應(yīng)用于其后代。比如下面代碼:如某種顏色應(yīng)用于p標(biāo)簽,這個(gè)顏色設(shè)置不僅應(yīng)用p標(biāo)簽,還應(yīng)用于p標(biāo)簽中的所有子元素文本,這里子元素為span標(biāo)簽。
但注意有一些css樣式是不具有繼承性的。如border:1px solid red;
根據(jù)權(quán)值來判斷使用哪個(gè)css樣式
瀏覽器是根據(jù)權(quán)值來判斷使用哪種css樣式的,權(quán)值高的就使用哪種css樣式。
下面是權(quán)值的規(guī)則:
標(biāo)簽的權(quán)值為1,類選擇符的權(quán)值為10,ID選擇符的權(quán)值最高為100。例如下面的代碼:
p{color:red;} /*權(quán)值為1*/
p span{color:green;} /*權(quán)值為1+1=2*/
.warning{color:white;} /*權(quán)值為10*/
p span.warning{color:purple;} /*權(quán)值為1+1+10=12*/
#footer .note p{color:yellow;} /*權(quán)值為100+10+1=111*/
注意:還有一個(gè)權(quán)值比較特殊--繼承也有權(quán)值但很低,有的文獻(xiàn)提出它只有0.1,所以可以理解為繼承的權(quán)值最低
我們來思考一個(gè)問題:如果在html文件中對(duì)于同一個(gè)元素可以有多個(gè)css樣式存在并且這多個(gè)css樣式具有相同權(quán)重值怎么辦?好,這一小節(jié)中的層疊幫你解決這個(gè)問題。
層疊就是在html文件中對(duì)于同一個(gè)元素可以有多個(gè)css樣式存在,當(dāng)有相同權(quán)重的樣式存在時(shí),會(huì)根據(jù)這些css樣式的前后順序來決定,處于最后面的css樣式會(huì)被應(yīng)用。
如下面代碼:
p{color:red;}
p{color:green;}
<p class="first">三年級(jí)時(shí),我還是一個(gè)<span>膽小如鼠</span>的小女孩。</p>
最后 p 中的文本會(huì)設(shè)置為green,這個(gè)層疊很好理解,理解為后面的樣式會(huì)覆蓋前面的樣式。
所以前面的css樣式優(yōu)先級(jí)就不難理解了:
內(nèi)聯(lián)樣式表(標(biāo)簽內(nèi)部)> 嵌入樣式表(當(dāng)前文件中)> 外部樣式表(外部文件中)。
重要性
我們?cè)谧鼍W(wǎng)頁代碼的時(shí),有些特殊的情況需要為某些樣式設(shè)置具有最高權(quán)值,怎么辦?這時(shí)候我們可以使用!important來解決。
如下代碼:
p{color:red!important;}
p{color:green;}
<p class="first">三年級(jí)時(shí),我還是一個(gè)<span>膽小如鼠</span>的小女孩。</p>
這時(shí) p 段落中的文本會(huì)顯示的red紅色。
注意:!important要寫在分號(hào)的前面
八,CSS格式化排版
文字排版
1,文字排版--字體
我們可以使用css樣式為網(wǎng)頁中的文字設(shè)置字體、字號(hào)、顏色等樣式屬性。下面我們來看一個(gè)例子,下面代碼實(shí)現(xiàn):為網(wǎng)頁中的文字設(shè)置字體為宋體。
body{font-family:"宋體";}
這里注意不要設(shè)置不常用的字體,因?yàn)槿绻脩舯镜仉娔X上如果沒有安裝你設(shè)置的字體,就會(huì)顯示瀏覽器默認(rèn)的字體。(因?yàn)橛脩羰欠窨梢钥吹侥阍O(shè)置的字體樣式取決于用戶本地電腦上是否安裝你設(shè)置的字體。)
2,文字排版--字號(hào)、顏色
可以使用下面代碼設(shè)置網(wǎng)頁中文字的字號(hào)為12像素,并把字體顏色設(shè)置為#666(灰色):
body{font-size:12px;color:#666}
3,文字排版--粗體
我們還可以使用css樣式來改變文字的樣式:粗體、斜體、下劃線、刪除線,可以使用下面代碼實(shí)現(xiàn)設(shè)置文字以粗體樣式顯示出來。
p span{font-weight:bold;}
4,文字排版--斜體
以下代碼可以實(shí)現(xiàn)文字以斜體樣式在瀏覽器中顯示:
p a{font-style:italic;}
<p>三年級(jí)時(shí),我還是一個(gè)<a>膽小如鼠</a>的小女孩。</p>
5,文字排版--下劃線
有些情況下想為文字設(shè)置為下劃線樣式,這樣可以在視覺上強(qiáng)調(diào)文字,可以使用下面代碼來實(shí)現(xiàn):
p a{text-decoration:underline;}
<p>三年級(jí)時(shí),我還是一個(gè)<a>膽小如鼠</a>的小女孩。</p>
刪除線,在電商網(wǎng)站上經(jīng)常見。
p a{text-decoration:line-through;}
段落排版
1,段落排版--縮進(jìn)
中文文字中的段前習(xí)慣空兩個(gè)文字的空白,這個(gè)特殊的樣式可以用下面代碼來實(shí)現(xiàn):
p{text-indent:2em;}
注意:2em的意思就是文字的2倍大小。
2,段落排版--行間距
這一小節(jié)我們來學(xué)習(xí)一下另一個(gè)在段落排版中起重要作用的行間距屬性(line-height),如下代碼實(shí)現(xiàn)設(shè)置段落行間距為1.5倍。
p{line-height:1.5em;}
3,段落排版--字間距、字母間距
文字間隔、字母間隔設(shè)置:
如果想在網(wǎng)頁排版中設(shè)置文字間隔或者字母間隔就可以使用 letter-spacing來實(shí)現(xiàn),如下面代碼:
h1{
letter-spacing:50px;
}
...
<h1>了不起的蓋茨比</h1>
注意:這個(gè)樣式使用在英文單詞時(shí),是設(shè)置字母與字母之間的間距。
單詞間距設(shè)置:
如果我想設(shè)置英文單詞之間的間距呢?可以使用word-spacing來實(shí)現(xiàn)。如下代碼:
h1{
word-spacing:50px;
}
...
<h1>welcome to imooc!</h1>
九,CSS盒模型
元素分類
在講解CSS布局之前,我們需要提前知道一些知識(shí),在CSS中,html中的標(biāo)簽元素大體被分為三種不同的類型:塊狀元素、內(nèi)聯(lián)元素和內(nèi)聯(lián)塊狀元素。
常用的塊狀元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的內(nèi)聯(lián)元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的內(nèi)聯(lián)塊狀元素有:
<img>、<input>
元素分類--塊級(jí)元素
什么是塊級(jí)元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是塊級(jí)元素。設(shè)置display:block就是將元素顯示為塊級(jí)元素。如下代碼就是將行內(nèi)元素a轉(zhuǎn)換為塊狀元素,從頁使用a元素具有塊狀元素特點(diǎn)。
a{display:block;}
塊級(jí)元素特點(diǎn):
1、每個(gè)塊級(jí)元素都從新的一行開始,并且其后的元素也另起一行。(真霸道,一個(gè)塊級(jí)元素獨(dú)占一行)
2、元素的高度、寬度、行高以及頂和底邊距都可設(shè)置。
3、元素寬度在不設(shè)置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設(shè)定一個(gè)寬度。
元素分類--行內(nèi)元素
在html中,<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的行內(nèi)元素(inline)元素。當(dāng)然塊狀元素也可以通過代碼display:inline將元素設(shè)置為行內(nèi)元素。
行內(nèi)元素特點(diǎn):
1、和其他元素都在一行上;
2、元素的高度、寬度、行高及頂部和底部邊距不可設(shè)置;
3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。
元素分類--內(nèi)聯(lián)塊狀元素
內(nèi)聯(lián)塊狀元素(inline-block)就是同時(shí)具備內(nèi)聯(lián)元素、塊狀元素的特點(diǎn),代碼display:inline-block就是將元素設(shè)置為內(nèi)聯(lián)塊狀元素。(css2.1新增),<img>、<input>標(biāo)簽就是這種內(nèi)聯(lián)塊狀標(biāo)簽。
inline-block元素特點(diǎn):
1、和其他元素都在一行上;
2、元素的高度、寬度、行高以及頂和底邊距都可設(shè)置。
盒模型--邊框(一)
盒子模型的邊框就是圍繞著內(nèi)容及補(bǔ)白的線,這條線你可以設(shè)置它的粗細(xì)、樣式和顏色(邊框三個(gè)屬性)。
如下面代碼為div來設(shè)置邊框粗細(xì)為2px、樣式為實(shí)心的、顏色為紅色的邊框:
div{
border:2px solid red;
}
上面是border代碼的縮寫形式,可以分開寫:
div{
border-width:2px;
border-style:solid;
border-color:red;
}
1、border-style(邊框樣式)常見樣式有:
dashed(虛線)| dotted(點(diǎn)線)| solid(實(shí)線)。
2、border-color(邊框顏色)中的顏色可設(shè)置為十六進(jìn)制顏色,如:
border-color:#888;//前面的井號(hào)不要忘掉。
盒模型--邊框(二)
現(xiàn)在有一個(gè)問題,如果有想為p標(biāo)簽單獨(dú)設(shè)置下邊框,而其它三邊都不設(shè)置邊框樣式怎么辦呢?css樣式中允許只為一個(gè)方向的邊框設(shè)置樣式:
div{border-bottom:1px solid red;}
同樣可以使用下面代碼實(shí)現(xiàn)其它三邊上、右、左邊框的設(shè)置:
border-top:1px solid red;
border-right:1px solid red;
border-left:1px solid red;
盒模型--邊界
元素與其它元素之間的距離可以使用邊界(margin)來設(shè)置。邊界也是可分為上、右、下、左。如下代碼:
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;}
總結(jié)一下:padding和margin的區(qū)別,padding在邊框里,margin在邊框外。
盒模型--填充
元素內(nèi)容與邊框之間是可以設(shè)置距離的,稱之為填充。填充也可分為上、右、下、左。如下代碼:
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;}
盒模型代碼簡(jiǎn)寫
還記得在講盒模型時(shí)外邊距(margin)、內(nèi)邊距(padding)和邊框(border)設(shè)置上下左右四個(gè)方向的邊距是按照順時(shí)針方向設(shè)置的:上右下左。具體應(yīng)用在margin和padding的例子如下:
margin:10px 15px 12px 14px;/*上設(shè)置為10px、右設(shè)置為15px、下設(shè)置為12px、左設(shè)置為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是一致的。
顏色值縮寫
關(guān)于顏色的css樣式也是可以縮寫的,當(dāng)你設(shè)置的顏色是16進(jìn)制的色彩值時(shí),如果每?jī)晌坏闹迪嗤梢钥s寫一半。
例子1:
p{color:#000000;}
可以縮寫為:
p{color: #000;}
例子2:
p{color: #336699;}
可以縮寫為:
p{color: #369;}
十,CSS布局模型
css布局模型
清楚了CSS 盒模型的基本概念、 盒模型類型, 我們就可以深入探討網(wǎng)頁布局的基本模型了。布局模型與盒模型一樣都是 CSS 最基本、 最核心的概念。 但布局模型是建立在盒模型基礎(chǔ)之上,又不同于我們常說的 CSS 布局樣式或 CSS 布局模板。如果說布局模型是本,那么 CSS 布局模板就是末了,是外在的表現(xiàn)形式。
CSS包含3種基本的布局模型,用英文概括為:Flow、Layer 和 Float。
在網(wǎng)頁中,元素有三種布局模型:
1、流動(dòng)模型(Flow)
2、浮動(dòng)模型 (Float)
3、層模型(Layer)
流動(dòng)模型(一)
流動(dòng)(Flow):自上而下。
先來說一說流動(dòng)模型,流動(dòng)(Flow)是默認(rèn)的網(wǎng)頁布局模式。也就是說網(wǎng)頁在默認(rèn)狀態(tài)下的 HTML 網(wǎng)頁元素都是根據(jù)流動(dòng)模型來分布網(wǎng)頁內(nèi)容的。
流動(dòng)布局模型具有2個(gè)比較典型的特征:
第一點(diǎn),塊狀元素都會(huì)在所處的包含元素內(nèi)自上而下按順序垂直延伸分布,因?yàn)樵谀J(rèn)狀態(tài)下,塊狀元素的寬度都為100%。實(shí)際上,塊狀元素都會(huì)以行的形式占據(jù)位置。如右側(cè)代碼編輯器中三個(gè)塊狀元素標(biāo)簽(div,h1,p)寬度顯示為100%。
第二點(diǎn),在流動(dòng)模型下,內(nèi)聯(lián)元素都會(huì)在所處的包含元素內(nèi)從左到右水平分布顯示。(內(nèi)聯(lián)元素可不像塊狀元素這么霸道獨(dú)占一行)
右側(cè)代碼編輯器中內(nèi)聯(lián)元素標(biāo)簽a、span、em、strong都是內(nèi)聯(lián)元素。
塊狀元素這么霸道都是獨(dú)占一行,如果現(xiàn)在我們想讓兩個(gè)塊狀元素并排顯示,怎么辦呢?不要著急,設(shè)置元素浮動(dòng)就可以實(shí)現(xiàn)這一愿望。任何元素在默認(rèn)情況下是不能浮動(dòng)的,但可以用CSS定義為浮動(dòng),如div、p、table、img等元素都可以被定義為浮動(dòng)。如下代碼可以實(shí)現(xiàn)兩個(gè)div元素一行顯示。
div{
width:200px;
height:200px;
border:2px red solid;
float:left;
}
<div id="div1"></div>
<div id="div2"></div>
注意:設(shè)置浮動(dòng)的同時(shí)一定要先設(shè)置塊狀元素的寬度,且需要浮動(dòng)的幾個(gè)元素寬度加起來一定要小于容器元素的寬度。
什么是層布局模型?層布局模型就像是圖像軟件PhotoShop中非常流行的圖層編輯功能一樣,每個(gè)圖層能夠精確定位操作,但在網(wǎng)頁設(shè)計(jì)領(lǐng)域,由于網(wǎng)頁大小的活動(dòng)性,層布局沒能受到熱捧。但是在網(wǎng)頁上局部使用層布局還是有其方便之處的。下面我們來學(xué)習(xí)一下html中的層布局。
如何讓html元素在網(wǎng)頁中精確定位,就像圖像軟件PhotoShop中的圖層一樣可以對(duì)每個(gè)圖層能夠精確定位操作。CSS定義了一組定位(positioning)屬性來支持層布局模型。
層模型有三種形式:
1、絕對(duì)定位(position: absolute)
2、相對(duì)定位(position: relative)
3、固定定位(position: fixed)
1,層模型--絕對(duì)定位(相對(duì)于父類)
如果想為元素設(shè)置層模型中的絕對(duì)定位,需要設(shè)置position:absolute(表示絕對(duì)定位),這條語句的作用將元素從文檔流中拖出來,然后使用left、right、top、bottom屬性相對(duì)于其最接近的一個(gè)具有定位屬性的父包含塊進(jìn)行絕對(duì)定位。如果不存在這樣的包含塊,則相對(duì)于body元素,即相對(duì)于瀏覽器窗口。
如下面代碼可以實(shí)現(xiàn)div元素相對(duì)于瀏覽器窗口向右移動(dòng)100px,向下移動(dòng)50px。
div{
width:200px;
height:200px;
border:2px red solid;
position:absolute;
left:100px;
top:50px;
}
<div id="div1"></div>
2,層模型--相對(duì)定位(相對(duì)于以前)
如果想為元素設(shè)置層模型中的相對(duì)定位,需要設(shè)置position:relative(表示相對(duì)定位),它通過left、right、top、bottom屬性確定元素在正常文檔流中的偏移位置。相對(duì)定位完成的過程是首先按static(float)方式生成一個(gè)元素(并且元素像層一樣浮動(dòng)了起來),然后相對(duì)于以前的位置移動(dòng),移動(dòng)的方向和幅度由left、right、top、bottom屬性確定,偏移前的位置保留不動(dòng)。
如下代碼實(shí)現(xiàn)相對(duì)于以前位置向下移動(dòng)50px,向右移動(dòng)100px;
#div1{
width:200px;
height:200px;
border:2px red solid;
position:relative;
left:100px;
top:50px;
}
<div id="div1"></div>
3,層模型--固定定位(相對(duì)于網(wǎng)頁窗口)
固定住某一坐標(biāo)。
fixed:表示固定定位,與absolute定位類型類似,但它的相對(duì)移動(dòng)的坐標(biāo)是視圖(屏幕內(nèi)的網(wǎng)頁窗口)本身。由于視圖本身是固定的,它不會(huì)隨瀏覽器窗口的滾動(dòng)條滾動(dòng)而變化,除非你在屏幕中移動(dòng)瀏覽器窗口的屏幕位置,或改變?yōu)g覽器窗口的顯示大小,因此固定定位的元素會(huì)始終位于瀏覽器窗口內(nèi)視圖的某個(gè)位置,不會(huì)受文檔流動(dòng)影響,這與background-attachment:fixed?屬性功能相同。以下代碼可以實(shí)現(xiàn)相對(duì)于瀏覽器視圖向右移動(dòng)100px,向下移動(dòng)50px。并且拖動(dòng)滾動(dòng)條時(shí)位置固定不變。
#div1{
width:200px;
height:200px;
border:2px red solid;
position:fixed;
left:100px;
top:50px;
}
小伙伴們學(xué)習(xí)了12-6小節(jié)的相對(duì)定位的方法:使用position:absolute可以實(shí)現(xiàn)被設(shè)置元素相對(duì)于瀏覽器(body)設(shè)置定位以后,大家有沒有想過可不可以相對(duì)于其它元素進(jìn)行定位呢?答案是肯定的,當(dāng)然可以。使用position:relative來幫忙,但是必須遵守下面規(guī)范:
1、參照定位的元素必須是相對(duì)定位元素的前輩元素:
<div id="box1"><!--參照定位的元素-->
<div id="box2">相對(duì)參照元素進(jìn)行定位</div><!--相對(duì)定位元素-->
</div>
從上面代碼可以看出box1是box2的父元素(父元素當(dāng)然也是前輩元素了)。
2、參照定位的元素必須加入position:relative;
#box1{
width:200px;
height:200px;
position:relative;
}
3、定位元素加入position:absolute,便可以使用top、bottom、left、right來進(jìn)行偏移定位了。
#box2{
position:absolute;
top:20px;
left:30px;
}
這樣box2就可以相對(duì)于父元素box1定位了(這里注意參照物就可以不是瀏覽器了,而可以自由設(shè)置了)。
編程小石頭,為分享干貨而生!據(jù)說,每個(gè)年輕上進(jìn),顏值又高的互聯(lián)網(wǎng)人都關(guān)注了編程小石頭。
CSS 是什么?
CSS是Cascading Style Sheets的簡(jiǎn)稱,中文稱為層疊樣式表。
屬性和屬性值用冒號(hào)隔開,以分號(hào)結(jié)尾。
CSS 四種引入方式:
1.行內(nèi)式
行內(nèi)式是在標(biāo)簽的style屬性中設(shè)定CSS樣式。
<div style="..."></div>
2.嵌入式
嵌入式是將CSS樣式集中寫在網(wǎng)頁的<head>標(biāo)簽的<style></style>標(biāo)簽對(duì)中。
<head>
...
<style type="text/css">
...此處寫CSS樣式
</style>
</head>
3.導(dǎo)入式
將一個(gè)獨(dú)立的.css文件引入HTML文件中,導(dǎo)入式使用@import 引入外部CSS文件,<style>標(biāo)記也是寫在<head>標(biāo)記中。
導(dǎo)入式會(huì)在整個(gè)網(wǎng)頁裝載完后再裝載CSS文件。
<head>
...
<style type="text/css">
@import "My.css"; 此處注意.css文件的路徑
</style>
</head>
4.鏈接式
將一個(gè)獨(dú)立的.css文件引入到HTML文件中,使用<link>標(biāo)記寫在<head>標(biāo)記中。
鏈接式會(huì)以網(wǎng)頁文件主體裝載前裝載CSS文件。
<head>
...
<link href="My.css" rel="stylesheet" type="text/css">
</head>
樣式應(yīng)用順序:
.nick {
color: yellow !important;
}
基本選擇器:
1.通用元素選擇器
* 表示應(yīng)用到所有的標(biāo)簽。
* {color: yellow}
2.標(biāo)簽選擇器
匹配所有使用 div 標(biāo)簽的元素(可以匹配所有標(biāo)簽)
div {color: yellow}
3.類選擇器
匹配所有class屬性中包含info的元素。
語法:.類名{樣式}(類名不能以數(shù)字開頭,類名要區(qū)分大小寫。)
.Mycolor {color: yellow}
<h3 class="Mycolor">nick</h3>
4.ID選擇器
使用id屬性來調(diào)用樣式,在一個(gè)網(wǎng)頁中id的值都是唯一的(是W3C規(guī)范而不是規(guī)則,所以不會(huì)報(bào)錯(cuò))。
語法:#ID名{樣式}(ID名不能以數(shù)字開頭)
#Mycolor {color: yellow}
<h3 id="Mycolor">Nick.</h3>
組合選擇器:
1.多元素選擇器
同時(shí)匹配h3,h4標(biāo)簽,之間用逗號(hào)分隔。
h3,h4 {color: yellow;}
<h3>Nick</h3>
<h4>Jenny</h4>
2.后代元素選擇器
匹配所有div標(biāo)簽里嵌套的P標(biāo)簽,之間用空格分隔。
div p {color: yellow;}
<div>
<p>Nick</p>
<div>
<p>Nick</p>
</div>
</div>
3.子元素選擇器
匹配所有div標(biāo)簽里嵌套的子P標(biāo)簽,之間用>分隔。
div > p {color: yellow;}
<div>
<p>Nick</p>
<p>Nick</p>
</div>
4.毗鄰元素選擇器
匹配所有緊隨div標(biāo)簽之后的同級(jí)標(biāo)簽P,之間用+分隔(只能匹配一個(gè))。
div + p {color: yellow;}
<div>Nick</div>
<p>Nick</p>
屬性選擇器:
1.[title] & P[title]
設(shè)置所有具有title屬性的標(biāo)簽元素;
設(shè)置所有具有title屬性的P標(biāo)簽元素。
[title]
{
color: yellow;
}
p[title]
{
color: yellow;
}
<div title>Nick</div>
<p title>Nick</p>
2.[title=Nick]
設(shè)置所有title屬性等于“Nick”的標(biāo)簽元素。
[title="Nick"]
{
color: yellow;
}
<p title="Nick">Nick</p>
3.[title~=Nick]
設(shè)置所有title屬性具有多個(gè)空格分隔的值、其中一個(gè)值等于“Nick”的標(biāo)簽元素。
[title~="Nick"]
{
color: yellow;
}
<p title="Nick Jenny">Nick</p>
<p title="Jenny Nick">Nick</p>
4.[title|=Nick]
設(shè)置所有title屬性具有多個(gè)連字號(hào)分隔(hyphen-separated)的值、其中一個(gè)值以"Nick"開頭的標(biāo)簽元素。
例:lang屬性:"en"、"en-us"、"en-gb"等等
[title|="Nick"]
{
color: yellow;
}
<p title="Nick-Jenny">Nick</p>
5.[title^=Nick]
設(shè)置屬性值以指定值開頭的每個(gè)標(biāo)簽元素。
[title^="Nick"]
{
color: yellow;
}
<p title="NickJenny">Nick</p>
6.[title$=Nick]
設(shè)置屬性值以指定值結(jié)尾的每個(gè)標(biāo)簽元素。
[title$="Nick"]
{
color: yellow;
}
<p title="JennyNick">Nick</p>
7.[title*=Nick]
設(shè)置屬性值中包含指定值的每個(gè)元素
[title*="Nick"]
{
color: yellow;
}
<p title="SNickJenny">Nick</p>
偽類選擇器:
1. link、hover、active、visited
a:link{color: black}
a:hover{color: yellow}
a:active{color: blue}
a:visited{color: red}
<a href="#">Nick</a>
2. before、after
p {
color: yellow;
}
p:before{
content: "before...";
}
p:after{
content: "after...";
}
<p> Nick </p>
1. 顏色屬性:
color
transparent
opacity
2. 字體屬性:
font-style: 用于規(guī)定斜體文本
font-weight: 設(shè)置文本的粗細(xì)
font-size: 設(shè)置字體的大小
font-family:字體名稱
font:簡(jiǎn)寫屬性
3. 文本屬性:
white-space: 設(shè)置元素中空白的處理方式
direction: 規(guī)定文本的方向
text-align: 文本的水平對(duì)齊方式
line-height: 文本行高
vertical-align: 文本所在行高的垂直對(duì)齊方式
text-indent: 文本縮進(jìn)
letter-spacing: 添加字母之間的空白
word-spacing: 添加每個(gè)單詞之間的空白
text-transform: 屬性控制文本的大小寫
text-overflow: 文本溢出樣式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<link href="cc2.css" rel="stylesheet" type="text/css">-->
<style>
div {
width: 100px;
height: 100px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</head>
<body>
<div>索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧 索寧</div>
</body>
</html>
text-decoration: 文本的裝飾
text-shadow:文本陰影
word-wrap:自動(dòng)換行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p {
width: 150px;
height: 160px;
background-color: #FFA500;
/*邊框陰影*/
box-shadow: 10px 10px 5px #888;
/*自動(dòng)換行*/
word-wrap: break-word;
}
h1 {
text-shadow: 5px 5px 5px #888;
}
</style>
</head>
<body>
<p>
When you are old and grey and full of sleep,And nodding by the fire, take down this book,And slowly read, and dream of the soft look
</p>
<h1>索寧</h1>
</body>
</html>
a {
text-decoration: none;
/*去除a標(biāo)簽下劃線*/
}
4. 背景屬性
background-color: 背景顏色
background-image 設(shè)置圖像為背景
background-position 設(shè)置背景圖像的位置坐標(biāo)
background-repeat 設(shè)置背景圖像不重復(fù)平鋪
background-attachment 背景圖像是否固定或者隨著頁面的其余部分滾動(dòng)
background 簡(jiǎn)寫
5. 列表屬性
list-style-type: 列表項(xiàng)標(biāo)志的類型
list-style-image:將圖象設(shè)置為列表項(xiàng)標(biāo)志
list-style-position:列表項(xiàng)標(biāo)志的位置
list-style:縮寫
1. 邊框
border-style:邊框樣式
border-color:邊框顏色
border-width:邊框?qū)挾?/strong>
border-radius:圓角
border: 簡(jiǎn)寫
box-shadow:邊框陰影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
border:2px solid;
border-radius:25px;
width: 140px;
}
</style>
</head>
<body>
<div>
點(diǎn)贊哦!dear.
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.radius1 {
display: inline-block;
width: 100px;
height: 100px;
background-color: yellow;
border-radius: 20px;
}
.radius2 {
display: inline-block;
width: 100px;
height: 100px;
background-color: red;
border-radius: 20px 35px;
}
.radius3 {
display: inline-block;
width: 100px;
height: 100px;
background-color: blue;
border-radius: 20px 35px 50px;
}
.radius4 {
display: inline-block;
width: 100px;
height: 100px;
background-color: green;
border-radius: 20px 35px 50px 60px;
}
</style>
</head>
<body>
<div>
<span class="radius1"></span>
<span class="radius2"></span>
<span class="radius3"></span>
<span class="radius4"></span>
</div>
</body>
</html>
邊框?qū)崿F(xiàn)各種三角符號(hào):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.triangle-one {
display: inline-block;
border-top: 50px red solid;
border-right: 50px green solid;
border-bottom: 50px yellow solid;
border-left: 50px blue solid;
}
.triangle-two {
display: inline-block;
border-top: 0 red solid;
border-right: 50px green solid;
border-bottom: 50px yellow solid;
border-left: 50px blue solid;
}
.triangle-stree {
display: inline-block;
border-top: 50px red solid;
border-right: 0 green solid;
border-bottom: 50px yellow solid;
border-left: 50px blue solid;
}
.triangle-four {
display: inline-block;
border-top: 50px red solid;
border-right: 0 green solid;
border-bottom: 0 yellow solid;
border-left: 50px blue solid;
}
.triangle-five {
display: inline-block;
border: 50px transparent solid;
border-top: 50px red solid;
}
.triangle-six {
display: inline-block;
border: 50px transparent solid;
border-bottom: 50px yellow solid;
}
.triangle-seven {
display: inline-block;
border: 50px transparent solid;
border-top: 60px red solid;
border-right: 0;
}
.triangle-eight {
display: inline-block;
border: 50px transparent solid;
border-left: 30px yellow solid;
border-bottom: 0;
}
</style>
</head>
<body>
<div class="triangle-one"></div>
<div class="triangle-two"></div>
<div class="triangle-stree"></div>
<div class="triangle-four"></div>
<div class="triangle-five"></div>
<div class="triangle-six"></div>
<div class="triangle-seven"></div>
<div class="triangle-eight"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.back {
width: 1000px;
height: 1000px;
margin: 0 auto;
background-color: #ddd;
position: relative;
}
.back-in {
position: absolute;
width: 1020px;
height: 45px;
left: -20px;
top: 50px;
background-color: #2F4F4F;
}
.back-img {
border: 20px solid transparent;
border-top: 10px solid dimgrey;
border-right: 0;
display: inline-block;
position: absolute;
top: 95px;
left: -20px;
}
.back-font {
line-height: 9px;
margin-left: 30px;
color: white;
}
</style>
</head>
<body>
<div class="back">
<div class="back-in"><h3 class="back-font">妹子求關(guān)注 ^.^</h3></div>
<div class="back-img"></div>
</div>
</body>
</html>
2.★ 盒子模型
一個(gè)標(biāo)準(zhǔn)的盒子模型:
padding:用于控制內(nèi)容與邊框之間的距離;
margin: 用于控制元素與元素之間的距離;
一個(gè)參數(shù),應(yīng)用于四邊。
兩個(gè)參數(shù),第一個(gè)用于上、下,第二個(gè)用于左、右。
三個(gè)參數(shù),第一個(gè)用于上,第二個(gè)用于左、右,第三個(gè)用于下。
邊框在默認(rèn)情況下會(huì)定位于瀏覽器窗口的左上角,但是并沒有緊貼著瀏覽器的窗口的邊框,這是因?yàn)閎ody本身也是一個(gè)盒子,外層還有html,
在默認(rèn)情況下,body距離html會(huì)有若干像素的margin,所以body中的盒子不會(huì)緊貼瀏覽器窗口的邊框了。
解決方法:
body {
margin: 0;
}
3.★ display
4. visibility
5.★ float 浮動(dòng)
讓一行顯示兩個(gè)塊級(jí)標(biāo)簽,會(huì)脫離文檔流
clear 清除浮動(dòng):
6. clip 剪裁圖像
rect 剪裁定位元素:
7. overflow 設(shè)置當(dāng)對(duì)象的內(nèi)容超過其指定高度及寬度時(shí)如何顯示內(nèi)容
8.★ position 規(guī)定元素的定位類型
9. z-index 元素層疊順序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.z-index1 {
width: 100px;
height: 100px;
background-color: yellow;
position: absolute;
z-index: -1;
}
.z-index2 {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
top: 20px;
left: 20px;
z-index: 5;
}
</style>
</head>
<body>
<div class="z-index1"></div>
<div class="z-index2"></div>
</body>
</html>
10. outline 邊框輪廓
11. zoom 縮放比例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.zoom1 {
zoom: 100%;
}
.zoom2 {
zoom: 150%;
}
.zoom3 {
zoom: 200%;
}
</style>
</head>
<body>
<div class="zoom1">Nick 100%</div>
<div class="zoom2">Nick 200%</div>
<div class="zoom3">Nick 300%</div>
</body>
</html>
12. cursor 鼠標(biāo)的類型形狀
鼠標(biāo)放在以下單詞上,There will be a miracle:
url: 自定義光標(biāo)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--<link href="cc2.css" rel="stylesheet" type="text/css">-->
<style>
body {
cursor: url("mouse.png"), auto;
/*圖片地址:http://images.cnblogs.com/cnblogs_com/suoning/845162/o_mouse.png*/
}
</style>
</head>
<body>
<div><img src="http://images.cnblogs.com/cnblogs_com/suoning/845162/o_ns.png" height="100%" width="100%"></div>
</body>
</html>
Auto: 默認(rèn)
Default: 默認(rèn)
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
Crosshair
Pointer
Move
text
wait
help
not-allowed
13. transform、transition 動(dòng)畫效果
transform 轉(zhuǎn)換,變形
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>nick</title>
<meta charset="utf-8" />
<style type="text/css">
div {
border: 1px solid black;
height: 30px;
width: 30px;
background-color: yellow;
/*transform-origin: 50px 50px;*/
transform-origin: left;
transform: rotate(50deg);
/*transform: skew(50deg,50deg);*/
/*transform: translate(50px,50px);*/
/*transform: scale(2);*/
}
</style>
</head>
<body>
<div></div>
</body>
</html>
Transition 平滑過渡
#property 指定屬性對(duì)應(yīng)類型
1、color: 通過紅、綠、藍(lán)和透明度組件變換(每個(gè)數(shù)值單獨(dú)處理),如:background-color,border-color,color,outline-color等CSS屬性;
2、length:真實(shí)的數(shù)字,如:word-spacing,width,vertical- align,top,right,bottom,left,padding,outline-width,margin,min-width,min- height,max-width,max-height,line-height,height,border-width,border- spacing,background-position等屬性;
3、percentage:真實(shí)的數(shù)字,如:word-spacing,width,vertical- align,top,right,bottom,left,min-width,min- height,max-width,max-height,line-height,height,background-position等屬性;
4、integer 離散步驟(整個(gè)數(shù)字),在真實(shí)的數(shù)字空間,以及使用floor()轉(zhuǎn)換為整數(shù)時(shí)發(fā)生,如:outline-offset,z-index等屬性;
5、number真實(shí)的(浮點(diǎn)型)數(shù)值,如:zoom,opacity,font-weight等屬性;
6、transform list。
7、rectangle:通過x、 y、 width和height(轉(zhuǎn)為數(shù)值)變換,如:crop;
8、visibility:離散步驟,在0到1數(shù)字范圍之內(nèi),0表示“隱藏”,1表示完全“顯示”,如:visibility;
9、shadow:作用于color、x、y、和blur(模糊)屬性,如:text-shadow;
10、gradient:通過每次停止時(shí)的位置和顏色進(jìn)行變化。它們必須有相同的類型(放射狀的或是線性的)和相同的停止數(shù)值以便執(zhí)行動(dòng)畫,如:background-image;
11、paint server (SVG):只支持下面的情況:從gradient到gradient以及color到color,然后工作與上面類似;
12、space-separated list of above:如果列表有相同的項(xiàng)目數(shù)值,則列表每一項(xiàng)按照上面的規(guī)則進(jìn)行變化,否則無變化;
13、a shorthand property:如果縮寫的所有部分都可以實(shí)現(xiàn)動(dòng)畫,則會(huì)像所有單個(gè)屬性變化一樣變化。
#支持執(zhí)行transition效果的屬性
Property Name Type
background-color as color
background-position as repeatable list of simple list of length, percentage, or calc
border-bottom-color as color
border-bottom-width as length
border-left-color as color
border-left-width as length
border-right-color as color
border-right-width as length
border-spacing as simple list of length
border-top-color as color
border-top-width as length
bottom as length, percentage, or calc
clip as rectangle
color as color
font-size as length
font-weight as font weight
height as length, percentage, or calc
left as length, percentage, or calc
letter-spacing as length
line-height as either number or length
margin-bottom as length
margin-left as length
margin-right as length
margin-top as length
max-height as length, percentage, or calc
max-width as length, percentage, or calc
min-height as length, percentage, or calc
min-width as length, percentage, or calc
opacity as number
outline-color as color
outline-width as length
padding-bottom as length
padding-left as length
padding-right as length
padding-top as length
right as length, percentage, or calc
text-indent as length, percentage, or calc
text-shadow as shadow list
top as length, percentage, or calc
vertical-align as length
visibility as visibility
width as length, percentage, or calc
word-spacing as length
z-index as integer
鼠標(biāo)放在以下圖片上,There will be a miracle:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>nick</title>
<meta charset="utf-8" />
<style type="text/css">
.img-see-2016-7-2 {
background-image: url("http://images.cnblogs.com/cnblogs_com/suoning/845162/o_sea.jpg");
background-size: 660px;
background-repeat: no-repeat;
height: 300px;
width: 600px;
transition-duration: 30s;
transition-timing-function: ease;
transition-property: background-size;
}
.img-see-2016-7-2:hover {
background-size: 2000px;
}
</style>
</head>
<body>
<div class="img-see-2016-7-2"></div>
</body>
</html>
作者:suoning
原文鏈接:https://www.cnblogs.com/suoning/p/5625582.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。