技術等級】初級
【承接文章】《CSS文本屬性,讓你的段落更加美觀,前端之路更進一步》
本文重點講解CSS技術中文本樣式的text-align屬性以及”塊級元素”和“內聯元素”的使用。本文屬于前端開發的初級教程,適合于剛剛開始接觸CSS技術的學習者。
一、設置對齊方式:
CSS技術利用text-align屬性來設置對齊方式
首先,在使用該屬性的同時,要明確這是誰相對于誰的對齊方式。讓我們一起來看下列代碼。
<div>
<p style=”text-align:center”></p>
</div>
上述代碼中使用了text-align屬性的標記對是<p></p>標記對。那么,是誰相對于誰垂直居中了呢?下面列舉了兩種可能的情況:
<p>標記對相對于它的容器<div>標記對垂直居中
<p>標記對的內容(即“”文字)相對于<p>標記對本身垂直居中。
請大家仔細想一想,應該是上述那種情況?
正確答案是第二種。也就是說:使用了text-align屬性的標記對,是這個標記對的內容在該標記對內部實現了對齊效果,而不是這個標記對在其容器內部實現了對齊效果。
其次,要想實現文本相對于自身的對齊方式,那么自身的標記對必須具備一定的寬度和高度。以上述代碼來說,<p>標記對默認情況下的寬度為整個頁面的寬度,也就是說這個標記對自身是有一定的寬度的,同時內部的文本數量又比較少,所以text-align在使用的過程中是可以看到效果的。
綜合上述的內容,可以說text-align屬性在使用時要注意以下兩點:
對齊效果是自身內部的文本內容相對于自身這個容器的對齊方式。
標記對自身必須具備一定的寬度。
text-align屬性可以有多種取值:
left,左對齊。內部文本在自身容器中左對齊
center,居中對齊。內部文本在自身容器中居中對齊。
right,右對齊。內部文本在自身容器中右對齊。
justify,兩端對齊。內部文本在自身容器中兩端對齊,即整個段落的左側是整齊的,右側也是整齊的。這種對齊方式和左對齊是有區別的。左對齊可以明顯的觀察出段落的右側是不整齊的。
左對齊和兩端對齊的區別
從上圖中可以看出,兩端的最右側,也就是深色直線比對的位置。采用的左對齊的段落這條線附近的段落文本是沒有對齊的;而采用了兩端對齊的這條線附近的段落文本是對齊的。
二、塊級元素與內聯元素
我們將HTML的各個標記,根據在頁面中展示內容的外觀,分為兩類:一類叫做“塊級元素”,另一類叫做“內聯元素”。
典型的“塊級元素”是<div></div>標記對。
典型的“內聯元素”是<span></span>標記對。
這兩個標記對本身沒有任何外觀效果,內部可以盛放任何HTML標記對,是網頁布局時常用的兩個容器。 默認情況下,<div></div>標記的寬度為頁面的整寬,即一個<div></div>標記占一行,被稱為“塊級元素”。<span></span>標記的寬度為內部內容的寬度,多個<span></span>標記的內容可以在一行內顯示,被稱為“行內元素”或“內聯元素”。
常用的塊級元素標記還包括:<p></p> <ul></ul> <ol></ol> <li></li> <table></table> <form></form>
常用的內聯元素標記還包括:<a></a> <img /> <input /> <select></select> <textarea></textarea>
三、塊級元素與內聯元素的區別:
塊級元素和內聯元素的的區別可以從下圖中看到。
“塊級元素”和“內聯元素”的區別
四、學習兩個新的CSS屬性
我們這里學習兩個簡單的CSS屬性,分別為width和height屬性。
width,為塊級元素設置寬度。
height,為塊級元素設置高度。
這兩個屬性的取值必須是帶有單位的數值。
例:div{width:200px; height:30px;}
上述代碼將頁面中所有的<div></div>標記對都設置為了寬度200像素、高度30像素的矩形。也就是說這樣一來,<div></div>標記對再也不占有整個頁面的整寬了,但是仍然為獨占一行的情況。
這兩個屬性是用來設置元素的寬度和高度的,但是只能適用于塊級元素。這也是內聯元素沒有寬度的一個重要原因:因為利用width屬性為內聯元素設置寬度是沒有效果的。
下一篇文章中,小海老師會為大家從細節上深入剖析line-height屬性以及該屬性的用法。對于渴望在前端開發道路上前進的你一定不能錯過!
如果大家希望得到更加全面的關于HTML和CSS技術講解的內容,可以私信我,我會免費將小海老師自己編寫的HTML和CSS的PDF教材發給你,幫助你在前端開發的道路上闊步前行。
在頭條上也已經寫了有十篇文章了。這些文章都是從前端開發的基礎開始一步一步講起的。我非常希望能有更多的前端開發初學者通過我寫的文章,逐步學到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學過程中的經驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設計版面,讓版面更加豐富,激發閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。
希望收藏了我寫的文章的你同時可以關注一下“小海前端”,因為這些文章都是連載的,并且是經過我系統的歸納過的。關注“小海前端”,我會繼續為大家奉上更加深入的前端開發文章,也希望更多的初學者跟著學下去,我們共同將前端開發的路努力堅持的走下去。
眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java(100G) Python(80G) 大數據 區塊鏈 測試 PPT JS(40g+300教程) HTML 簡歷 領取相關學習資料!
一、HTML
1、<image>標簽上title屬性與alt屬性的區別是什么?
alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明的。且長度必須少于100個英文字符或者用戶必須保證替換文字盡可能的短。
這包括那些使用本來就不支持圖像顯示或者圖像顯示被關閉的瀏覽器的用戶,視覺障礙的用戶和使用屏幕閱讀器的用戶等。
title屬性為設置該屬性的元素提供建議性的信息。使用title屬性提供非本質的額外信息。參考《alt和title屬性的區別及應用》
2、分別寫出以下幾個HTML標簽:文字加粗、下標、居中、字體
加粗:<b>、<strong>
下標:<sub>
居中:<center>
字體:<font>、<basefont>、參考《HTML標簽列表》
3、請寫出至少5個html5新增的標簽,并說明其語義和應用場景
section:定義文檔中的一個章節
nav:定義只包含導航鏈接的章節
header:定義頁面或章節的頭部。它經常包含 logo、頁面標題和導航性的目錄。
footer:定義頁面或章節的尾部。它經常包含版權信息、法律信息鏈接和反饋建議用的地址。
aside:定義和頁面內容關聯度較低的內容——如果被刪除,剩下的內容仍然很合理。
參考《HTML5 標簽列表》
4、請說說你對標簽語義化的理解?
a. 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構
b. 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;
c. 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
d. 便于團隊開發和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。
5、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器以何種模式來渲染文檔。
嚴格模式的排版和 JS 運作模式是,以該瀏覽器支持的最高標準運行。
在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
6、你知道多少種Doctype文檔類型?
標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。
HTML 4.01 規定了三種文檔類型:Strict、Transitional 以及 Frameset。
XHTML 1.0 規定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。
Standards (標準)模式(也就是嚴格呈現模式)用于呈現遵循最新標準的網頁,
Quirks(包容)模式(也就是松散呈現模式或者兼容模式)用于呈現為傳統瀏覽器而設計的網頁。
7、HTML與XHTML——二者有什么區別
a. XHTML 元素必須被正確地嵌套。
b. XHTML 元素必須被關閉。
c. 標簽名必須用小寫字母。
d. XHTML 文檔必須擁有根元素。
參考《XHTML 與 HTML 之間的差異》
8、html5有哪些新特性、移除了那些元素?
a. HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。
b. 拖拽釋放(Drag and drop) API
c. 語義化更好的內容標簽(header,nav,footer,aside,article,section)
d. 音頻、視頻API(audio,video)
e. 畫布(Canvas) API
f. 地理(Geolocation) API
g. 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失
h. sessionStorage 的數據在頁面會話結束時會被清除
i. 表單控件,calendar、date、time、email、url、search
j. 新的技術webworker, websocket等
移除的元素:
a. 純表現的元素:basefont,big,center, s,strike,tt,u;
b. 對可用性產生負面影響的元素:frame,frameset,noframes;
9、iframe的優缺點?
優點:
a. 解決加載緩慢的第三方內容如圖標和廣告等的加載問題
b. iframe無刷新文件上傳
c. iframe跨域通信
缺點:
a. iframe會阻塞主頁面的Onload事件
b. 無法被一些搜索引擎索引到
c. 頁面會增加服務器的http請求
d. 會產生很多頁面,不容易管理。
參考《iframe的一些記錄》
10、Quirks模式是什么?它和Standards模式有什么區別?
在寫程序時我們也會經常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。IE6以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。
區別:總體會有布局、樣式解析和腳本執行三個方面的區別。
a. 盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。
b. 設置行內元素的高寬:在Standards模式下,給等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。
c. 設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的用
d. 設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。
11、請闡述table的缺點
a. 太深的嵌套,比如table>tr>td>h3,會導致搜索引擎讀取困難,而且,最直接的損失就是大大增加了冗余代碼量。
b. 靈活性差,比如要將tr設置border等屬性,是不行的,得通過td
c. 代碼臃腫,當在table中套用table的時候,閱讀代碼會顯得異?;靵y
d. 混亂的colspan與rowspan,用來布局時,頻繁使用他們會造成整個文檔順序混亂。
e. 不夠語義
參考《為什么說table表格布局不好?》
12、簡述一下src與href的區別
src用于替換當前元素;href用于在當前文檔和引用資源之間確立聯系。
src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置
href是Hypertext Reference的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接
公眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java Python 大數據 區塊鏈 測試 PPT JS HTML 簡歷 領取相關學習資料!
eb前端基礎,Web前端教程
塊元素又名塊級元素(blockelement),和其對應的是內聯元素(inlineelement),都是html規范中的概念。大多數HTML元素被定義為塊級元素或內聯元素。塊級元素在瀏覽器顯示時,通常會以新行來開始(和結束)。
如果介紹HTML網頁基本標簽的嵌套規則,首先要說的就是元素的分類。元素可以劃分為塊級元素和行級元素,塊級元素是什么?它可以獨占一行,可以設置寬高度,默認是100%;行級元素與之相反,它的內容決定它的寬高度,至于特殊字符就當成是文字來看
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="viewport"content="width=device-width,initial-scale=1.0">
<title>HTML塊級、行級元素,特殊字符,嵌套規則</title>
</head>
<body>
<!--塊元素:獨占一行,可以設置寬高、默認寬度100%-->
塊元素分為文字類和容器類
文字類塊元素:p、h1——h6
容器類塊元素:div、table、tr、td、frame、ul>li、ol、dl、dt、dd(序列)
<!--行元素:不獨占一行,寬高度取決于內容-->
行元素:aimginputstrongemdelspan
特殊字符:文字br hr
</body>
</html>
嵌套規則總結如下幾點:
1.塊元素可以嵌套行元素2.行元素可以嵌套行元素3.行元素不可以嵌套塊元素4.文字類塊元素不可以嵌套塊元素5.容器類塊元素可以嵌套塊元素
塊元素和內聯元素的基本差異是塊元素一般都從新行開始,相鄰的塊級元素將會在不同行顯示。而當加入了css控制以后,塊元素和內聯元素的這種屬性差異就不成為差異了。比如,我們完全可以把內聯元素加上display:block這樣的屬性,讓它也有每次都從新行開始的屬性,即成為塊元素同樣我們可以把塊元素加上display:inline這樣的屬性,讓它也在一行上排列。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。