級鏈接標(biāo)簽
目的頁面的地區(qū)用 name屬性定義(name的值可自己定義,一般為英文),鏈接頁面的鏈接應(yīng)寫為<a href=”url#name”></a>
未被訪問的鏈接帶有下劃線而且是藍(lán)色的
已被訪問的鏈接帶有下劃線而且是紫色的
活動鏈接帶有下劃線而且是紅色的
關(guān)于錨的進一步說明:
<a> 標(biāo)簽可定義錨,錨 (anchor) 有兩種用法:
通過使用 href 屬性,創(chuàng)建指向另外一個文檔的鏈接(或超鏈接)
通過使用 name 或 id 屬性,創(chuàng)建一個文檔內(nèi)部的書簽(也就是說,可以創(chuàng)建指向文檔片段的鏈接)
圖片標(biāo)簽 <img>
1、img標(biāo)簽是一個單標(biāo)簽,必須和src(source:指出圖像的路徑)屬性連用,
網(wǎng)頁上圖像的路徑有絕對路徑和相對路徑兩種,但在實際運用中往往只用相對路徑
絕對路徑:圖片在硬盤上的路徑 (分割符號是/)
相對路徑:圖片相對于網(wǎng)頁而言的路徑
如果圖片與網(wǎng)頁在同一個文件夾下,那么可以直接用圖片的名稱表示其路徑
如果圖片在網(wǎng)頁的下一層文件夾中,比如圖片在網(wǎng)頁文件下面的images文件夾中,則可用images/表示
我們也可以用./表示網(wǎng)頁所在的文件夾
如果圖片在網(wǎng)頁的上一層文件夾中,則用../表示
事實上,不但圖片文件是如此,網(wǎng)頁中應(yīng)用的文件都分為相對路徑和絕對路徑兩種表達方式。
2、在網(wǎng)頁上,支持的圖片格式包括.gif .jpg .png .bmp,一般用前三者居多,因為前三者的圖片壓縮比較好。但是,gif格式只有256種顏色,所以,在需要豐富顏色的場合,往往多用jpg和png格式。不過,gif擁有動態(tài)功能,而后兩者則不具備。
3、img標(biāo)簽可以與其它標(biāo)簽共處一行,如果有多個圖形出現(xiàn)時,默認(rèn)為同一行顯示
4、img標(biāo)簽有4個常用標(biāo)簽,分別是
alt 圖片說明,在圖像無法顯示時表現(xiàn)為圖像的替代文本
width 寬 屬性值可以是象素,也可以是%
height 高 屬性值可以是象素,也可以是%
border 邊框
5、圖片鏈接仍然是用a標(biāo)簽來顯示
例子:<a href=“http://www.rwxy.xnc.edu.cn”><img src="sample.jpg" ></a>
6、可以用圖像映射實現(xiàn)圖像不同區(qū)域的鏈接
圖象映射
所謂圖象映射是指一個圖片上的不同位置被指定了不同的超級鏈接;點擊圖片的不同位置會打開不同的超級鏈接目標(biāo)。這與前面的默認(rèn)超級鏈把整個圖片作為超級鏈接的元素是很不一樣的。
圖象映射由<map>定義。<map>有一個基本屬性是name。name給圖象映射命名,這個命名將會被<img>元素用usemap屬性引用。所以,圖象上的圖象映射實際上是對<map>定義的映射的一個引用。
<map>在定義圖象映射時,可以定義三種形狀的映射: circle(圓形)、rect(矩形rectangle)、poly(多邊形)
圖象映射實例
<img src="bear.jpg" usemap="#map" >
<map name=“map">
<area shape="rect" coords="46,29,253,164" href="#" >
<area shape="circle" coords="76,510,59" href="#" >
<area shape="poly" coords="219,482,253,448,310,462,297,527,220,523" href="#" >
</map>
表格標(biāo)簽
表格由三個標(biāo)簽構(gòu)成,分別是
<table>...</table> - 定義表格
<tr> - 定義表行
<th> - 定義表頭
<td> - 定義表格單元(表格的具體數(shù)據(jù))
在表格標(biāo)簽中,table、tr、td標(biāo)簽都具備不同的屬性
table:border(邊框尺寸設(shè)置);width(表格的寬);height(表格的高);align(橫向?qū)R:left center right);bgcolor(背景色彩);background(背景圖像);cellspacing(表格單元的間隙設(shè)置);cellpadding(表元內(nèi)部空白設(shè)置);
tr:height(行高);align(橫向?qū)R:left center right);valign(縱向?qū)R:top middle bottom);bgcolor(背景色彩);
td:width(表格的寬);height(表格的高);align(橫向?qū)R:left center right);valign(縱向?qū)R:top middle bottom);bgcolor(背景色彩);background(背景圖像);
注:當(dāng)talble、tr、td有共同的屬性而且屬性值發(fā)生沖突之際,其優(yōu)先性是td > tr > table
表格在html中最大的作用不是用來整理數(shù)據(jù),而是用來排版,所以它是html中用處最廣的標(biāo)簽之一。
表格內(nèi)部可以繼續(xù)放入表格,這被稱之為表格嵌套,利用表格嵌套可以制作出非常復(fù)雜的排版。
表格的單元格可以跨行跨列顯示
跨多列的單元格 <td colspan=#>
<table border=1>
<tr><td colspan=3> morning menu</td>
<tr><td>food</td> <td>drink</td> <td>sweet</td>
<tr><td>a</td><td>b</td><td>c</td>
</table>
morning menu
food
drink
sweet
a
b
c
跨多行的單元格 <td rowspan=#>
<table border=1>
<tr><td rowspan=3> morning menu</td>
<td>food</td> <td>a</td></tr>
<tr><td>drink</td> <td>b</td></tr>
<tr><td>sweet</td> <td>c</td></tr>
</table>
morning menu
food
a
drink
b
sweet
c
....................................................................
我的微信公眾號:UI嚴(yán)選 —越努力,越幸運
單標(biāo)簽
網(wǎng)頁(程序)如果要和用戶產(chǎn)生互動,則必須借助一定的中介,這個中介一般是:文本輸入框、按鈕、多選框、單選框。而表單則是這些中介和放置這些中介的空間(<form action=”” methon=””></form>)。
在網(wǎng)頁中,這些文本輸入框、按鈕等等必須放置在由<form></form>這個標(biāo)簽所定義的空間中,否則沒有實際意義。所以,由<form></form>標(biāo)簽所定義的空間就是表單存在的空間。
【各種輸入類型】
呈現(xiàn)結(jié)果
姓名:
原始碼
<form action=http://www.baidu.com/nameproject.aspmethon=”post”>
姓名:<input type="text" name="name" size="20">
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
性別:男 女
原始碼
<form>
性別:
男 <input type="radio" name="sex" value="boy">
女 <input type="radio" name="sex" value="girl">
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
喜好: 電影 看書
原始碼
<form>
喜好:
<input type="checkbox" name="sex" value="movie">電影
<input type="checkbox" name="sex" value="book">看書
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
請輸入密碼:
原始碼
<form>
請輸入密碼:<input type="password" name="input">
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
原始碼
<form>
<input type="submit" value="送出資料">
<input type="reset" value="重新填寫">
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
請按下按鈕:
原始碼
<form>
請按下按鈕:<input type="button" name="ok" value="我同意">
</form>
它有下列可設(shè)定之屬性:
呈現(xiàn)結(jié)果
隱藏欄位:
原始碼
<form>
隱藏欄位:<input type="hidden" name="nosee" value="看不到">
</form>
它有下列可設(shè)定之屬性:
【大量文字輸入元件】
呈現(xiàn)結(jié)果
請輸入您的意見:
原始碼
<form>
請輸入您的意見:<br>
<textarea name="talk" cols="20" rows="3"></textarea>
</form>
它有下列可設(shè)定之屬性:
【下拉式選單】
呈現(xiàn)結(jié)果
您喜歡看書嗎?:
非常喜歡
還算喜歡
不太喜歡
非常討厭
原始碼
<form>
您喜歡看書嗎?:
<select name="like">
<option value="非常喜歡">非常喜歡
<option value="還算喜歡">還算喜歡
<option value="不太喜歡">不太喜歡
<option value="非常討厭">非常討厭
</select>
</form>
它有下列可設(shè)定之屬性:
multiple,是設(shè)定此一欄位為復(fù)選,可以一次選好幾個選項。
....................................................................
我的微信公眾號:UI嚴(yán)選 —越努力,越幸運
前在項目的過程中遇到了一個問題,某個 div 希望始終顯示在最上面,而在之后的元素都顯示在它之下,當(dāng)時設(shè)置了 z-index 也沒有效果,不知道什么原因,因此找了一下 CSS 相關(guān)資料,解決了這個問題的同時,也學(xué)習(xí)了很多知識,特此和大家分享一下。
屏幕是一個二維平面,然而 HTML 元素卻是排列在三維坐標(biāo)系中, x 為水平方向, y 為垂直方向, z為屏幕由內(nèi)向外方向,我們在看屏幕的時候是沿著 z 軸方向從外向內(nèi)的。由此,元素在用戶視角就形成了層疊的關(guān)系,某個元素可能覆蓋了其他元素也可能被其他元素覆蓋;
這里有幾個重要的概念:層疊上下文 (堆疊上下文, Stacking Context)、層疊等級 (層疊水平, Stacking Level)、層疊順序 (層疊次序, 堆疊順序, Stacking Order)、z-index、BFC(塊級格式化上下文,Block Formatting Context),這些概念共同決定了你看到元素的位置,下面我們就圍繞著這幾個概念來一起學(xué)習(xí)一下。
聲明:
1. 層疊上下文 (Stacking Context)
層疊上下文 (堆疊上下文, Stacking Context),是 HTML 中一個三維的概念。在 CSS2.1 規(guī)范中,每個元素的位置是三維的,當(dāng)元素發(fā)生層疊,這時它可能覆蓋了其他元素或者被其他元素覆蓋;排在 z 軸越靠上的位置,距離屏幕觀察者越近。
文章 <關(guān)于z-index 那些你不知道的事> 有一個很好的比喻,這里引用一下;
可以想象一張桌子,上面有一堆物品,這張桌子就代表著一個層疊上下文。如果在第一張桌子旁還有第二張桌子,那第二張桌子就代表著另一個層疊上下文。現(xiàn)在想象在第一張桌子上有四個小方塊,他們都直接放在桌子上。在這四個小方塊之上有一片玻璃,而在玻璃片上有一盤水果。這些方塊、玻璃片、水果盤,各自都代表著層疊上下文中一個不同的層疊層,而這個層疊上下文就是桌子。
每一個網(wǎng)頁都像一個房間,這個房間就是 <html></html>,其他層疊上下文就像這個房間里的桌子,HTML 標(biāo)簽中的一切都被置于這個房間中。
當(dāng)給一個元素的 position 值賦為 fixed 或 sticky 值時,你就創(chuàng)建了一個新的層疊上下文,其中有著獨立于頁面上其他層疊上下文和層疊層的層疊層,這就相當(dāng)于你把另一張桌子帶到了房間里。
層疊上下文 1 (Stacking Context 1)是由文檔根元素形成的, 層疊上下文 2 和 3 (Stacking Context 2, 3) 都是層疊上下文 1 (Stacking Context 1) 上的層疊層。他們各自也都形成了新的層疊上下文,其中包含著新的層疊上下文。
在層疊上下文中,其子元素按照上面解釋的規(guī)則進行層疊。形成層疊上下文的方法有:
總結(jié):
2. 層疊等級 (Stacking Level)
層疊等級 (層疊水平, Stacking Level) 決定了在同一個層疊上下文中,元素在 z 軸上的顯示的順序;
對于普通元素的層疊水平探討只局限于在當(dāng)前層疊上下文中:
層疊上下文本身是一個強力的「層疊結(jié)界」,普通的元素水平是無法突破這個結(jié)界和結(jié)界外的元素去較量層疊水平的。
— CSS 世界
另外,層疊等級并不一定由 z-index 決定,只有定位元素的層疊等級才由 z-index 決定,其他類型元素的層疊等級由層疊順序、他們在 HTML 中出現(xiàn)的順序、他們的祖先元素的層疊等級一同決定,詳細(xì)的規(guī)則見下面層疊順序的介紹。
3. z-index
在 CSS 2.1 中, 所有的盒模型元素都處于三維坐標(biāo)系中。除了我們常用的橫坐標(biāo)和縱坐標(biāo), 盒模型元素還可以沿著「z 軸」層疊擺放,當(dāng)他們相互覆蓋時,z 軸順序就變得十分重要。
-- CSS 2.1 Section 9.9.1 - Layered presentation
z-index 只適用于定位的元素,對非定位元素?zé)o效,它可以被設(shè)置為正整數(shù)、負(fù)整數(shù)、 0、 auto,如果一個定位元素沒有設(shè)置 z-index,那么默認(rèn)為 auto;
元素的 z-index 值只在同一個層疊上下文中有意義。如果父級層疊上下文的層疊等級低于另一個層疊上下文的,那么它 z-index 設(shè)的再高也沒用。所以如果你遇到 z-index 值設(shè)了很大,但是不起作用的話,就去看看它的父級層疊上下文是否被其他層疊上下文蓋住了。
4. 層疊順序 (Stacking Order)
層疊順序 (層疊次序, 堆疊順序, Stacking Order) 描述的是元素在同一個層疊上下文中的順序規(guī)則(之前的層疊上下文和層疊等級是概念),從層疊的底部開始,共有七種層疊順序:
第 7 級順序的元素會顯示在之前順序元素的上方,也就是看起來覆蓋了更低級的元素:
除層疊順序優(yōu)先級規(guī)則之外,還有一條后來居上規(guī)則:同一個層疊順序的元素按照在 HTML 里出現(xiàn)的順序依次層疊。這兩個規(guī)則共同決定瀏覽器元素在文檔中是如何層疊的。
5. 文檔流 (Document Flow)
5.1 常規(guī)流 (Normal flow)
5.2 浮動 (Floats)
5.3 絕對定位 (Absolute positioning)
6. BFC (Block Formatting Context)
6.1 什么是 BFC
BFC (Block Formatting Context) 塊級格式化上下文,是用于布局塊級盒子的一塊渲染區(qū)域,相對應(yīng)的還有 IFC(Inline Formatting Context)內(nèi)聯(lián)格式化上下文,不是本文重點,讀者可以自行查閱相關(guān)知識。
BFC 是 Web 頁面 CSS 視覺渲染的一部分,用于決定塊盒子的布局及浮動相互影響范圍的一個區(qū)域。
— MDN - 塊格式化上下文
一個 BFC 的范圍包含創(chuàng)建該上下文元素的所有子元素,但不包括創(chuàng)建了新 BFC 的子元素的內(nèi)部元素。這從另一方角度說明,一個元素不能同時存在于兩個 BFC 中。因為如果一個元素能夠同時處于兩個 BFC 中,那么就意味著這個元素能與兩個 BFC 中的元素發(fā)生作用,就違反了 BFC 的隔離作用。
觸發(fā) BFC 的方式有:
注意: display:table 也可以生成 BFC 的原因在于 Table 會默認(rèn)生成一個匿名的 table-cell,是這個匿名的 table-cell 生成了 BFC。
6.2 用法
1. 阻止相鄰元素的 margin 合并
屬于同一個 BFC 的兩個相鄰塊級子元素的上下 margin 會發(fā)生重疊,(設(shè)置 writing-mode:tb-rl時,水平 margin 會發(fā)生重疊)。所以當(dāng)兩個相鄰塊級子元素分屬于不同的 BFC 時可以阻止 margin 重疊。可以給任一個相鄰塊級盒子的外面包一個 div,通過改變此 div 的屬性使兩個原盒子分屬于兩個不同的 BFC,以此來阻止 margin 重疊。
代碼和預(yù)覽參見:Codepen - 使用BFC阻止margin合并:https://codepen.io/SHERlocked93/pen/eVOevN
2. 阻止元素被浮動元素覆蓋
一個正常文檔流的塊級元素可能被一個 float 元素覆蓋,擠占正常文檔流,因此可以設(shè)置一個元素的 float、 display、 position 值等方式觸發(fā) BFC,以阻止被浮動盒子覆蓋。
代碼和預(yù)覽參見:Codepen - 使用BFC阻止元素被浮動元素覆蓋:https://codepen.io/SHERlocked93/pen/pazdzB
3. 包含浮動元素
通過改變包含浮動子元素的父盒子的屬性值,觸發(fā) BFC,以此來包含子元素的浮動盒子。
代碼和預(yù)覽參見:Codepen - 使用BFC包含浮動元素:https://codepen.io/SHERlocked93/pen/OQLOqG
7. 實戰(zhàn)
下面一起來看幾個例子實戰(zhàn)一下,幫助理解。
7.1 普通情況
三個 relative 定位的 div 塊中各有 absolute 的不同顏色的 span.red、 span.green、 span.blue,它們都設(shè)置了 position:absolute;
代碼和預(yù)覽參見:Codepen - 普通情況:https://codepen.io/SHERlocked93/pen/aaPord
那么當(dāng)沒有元素包含 z-index 屬性時,這個例子中的元素按照如下順序?qū)盈B(從底到頂順序):
紅綠藍(lán)都屬于 z-index 為 auto 的定位元素,因此按照 7 層層疊順序規(guī)則來說同屬于層疊順序第 6 級,所以按 HTML 中的出現(xiàn)順序?qū)盈B:紅->綠->藍(lán)
7.2 在相同層疊上下文的父元素內(nèi)的情況
紅綠位于一個 div.first-box 下,藍(lán)位于 div.second-box 下,紅綠藍(lán)都設(shè)置了 position:absolute, first-box 與 second-box 都設(shè)置了 position:relative;
代碼和預(yù)覽參見:Codepen - 父元素不同但都位于根元素下:https://codepen.io/SHERlocked93/pen/RYENBw
這個例子中,紅藍(lán)綠元素的父元素 first-box 與 second-box 都沒有生成新的層疊上下文,都屬于根層疊上下文中的元素,且都是層疊順序第 6 級,所以按 HTML 中的出現(xiàn)順序?qū)盈B:紅->綠->藍(lán)
7.3 給子元素增加 z-index
紅綠位于一個 div.first-box 下,藍(lán)黃位于 div.second-box 下,紅綠藍(lán)都設(shè)置了 position:absolute,如果這時給綠加一個屬性 z-index:1,那么此時 .green 位于最上面;
如果再在 .second-box 下 .green 后加一個絕對定位的 span.gold,設(shè)置 z-index:-1,那么它將位于紅綠藍(lán)的下面;
代碼和預(yù)覽參見:Codepen - 設(shè)置了z-index:https://codepen.io/SHERlocked93/pen/gdZOrK
這個例子中,紅藍(lán)綠黃元素的父元素中都沒有生成新的層疊上下文,都屬于根層疊上下文中的元素
所以這個例子中的從底到高顯示的順序就是:黃->紅->藍(lán)->綠
7.4 在不同層疊上下文的父元素內(nèi)的情況
紅綠位于一個 div.first-box 下,藍(lán)位于 div.second-box 下,紅綠藍(lán)都設(shè)置了 position:absolute,如果 first-box 的 z-index 設(shè)置的比 second-box 的大,那么此時無論藍(lán)的 z-index 設(shè)置的多大 z-index:999,藍(lán)都位于紅綠的下面;如果我們只更改紅綠的 z-index 值,由于這兩個元素都在父元素 first-box 產(chǎn)生的層疊上下文中,此時誰的 z-index 值大,誰在上面;
代碼和預(yù)覽參見:Codepen - 不同層疊上下文的父元素:https://codepen.io/SHERlocked93/pen/gdZbOJ
這個例子中,紅綠藍(lán)都屬于設(shè)置了 z-index 的定位元素,不過他們的父元素創(chuàng)建了新的層疊上下文;
所以這個例子中從低到到顯示的順序:藍(lán)->紅->綠
(我遇到的的情況就屬于這個例子類似情形)
7.5 給子元素設(shè)置 opacity
紅綠位于 div.first-box 下,藍(lán)位于 div.second-box 下,紅綠藍(lán)都設(shè)置了 position:absolute,綠設(shè)置了 z-index:1,那么此時綠位于紅藍(lán)的最上面;
如果此時給 first-box 設(shè)置 opacity:.99,這時無論紅綠的 z-index 設(shè)置的多大 z-index:999,藍(lán)都位于紅綠的上面;
如果再在 .second-box 下 .green 后加一個 span.gold,設(shè)置 z-index:-1,那么它將位于紅綠藍(lán)的下面;
代碼和預(yù)覽參見:Codepen - opacity的影響:https://codepen.io/SHERlocked93/pen/GXPRWB
之前已經(jīng)介紹了,設(shè)置 opacity 也可以形成層疊上下文,因此:
所以這個例子中從低到到顯示的順序:黃->紅->綠->藍(lán)
關(guān)注微信公眾號:安徽思恒信息科技有限公司,了解更多技術(shù)內(nèi)容……
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。