Web前端學習筆記_塊元素、內聯元素和內聯塊元素

      網友投稿 1482 2022-05-30

      HTML中的元素從顯示的角度,一般可以分為三種類型:塊元素(block)、內聯元素(inline)、行內塊元素(inline-block),display屬性可以實現三者的相互轉換,本文以一個簡單的HTML入手,介紹了這三種類型元素在具體頁面渲染中的效果和特點,最后對內聯元素水平放置時之間產生的空隙進行了原因分析,并給出了具體消除的方法。在實際應用中,可根據布局需要作出適當的轉換。

      這是一個簡單的HTML

      ???? ???? ????塊元素和內聯元素 ????

      了解華為云

      ????

      華為云用在線的方式將華為30多年在ICT基礎設施領域的技術積累和產品解決方案開放給客戶,致力于提供穩定可靠、安全可信、可持續創新的云服務,做智能世界的“黑土地”,推進實現“用得起、用得好、用得放心”的普惠AI。華為云作為底座,為華為全棧全場景AI戰略提供強大的算力平臺和更易用的開發平臺。

      ?? ????
      點擊了解更多

      在不加任何CSS樣式的情況下,瀏覽器渲染頁面如下

      一、塊元素 block

      可以看到body由三大部分組成:

      ,這三個部分有一個特點:每個元素都會占滿它的父元素(此處父元素是body)內容的整個寬度,任憑瀏覽器窗口大小如何變化,如

      h1元素(有默認的margin-top和margin-bottom)

      p元素(有默認的margin-top和margin-bottom)

      div元素

      以上三個元素都是塊元素,每個塊元素會按它在HTML標記中出現的順序依次流入頁面,瀏覽器會自動在每個新的塊元素的前后加入一個換行。

      若沒有設置width,默認寬度為父元素的100%。

      當然,塊元素可以設置寬高和內外邊距,如

      p{width:800px;?height:100px;?padding:5px;?margin:20px;}

      效果如下,

      從盒模型原理我們知道,width設置的只是塊元素內容區的width,塊元素的margin-right默認為auto,會根據內容區的width自動調整,使盒子水平方向上始終平鋪整個頁面。

      常見的塊元素有:

      普通元素:div、p、table、form

      標題元素:h1~h6

      列表元素:ul、ol、li、dl、dt、dd

      二、內聯元素 inline

      除了h1、p和div之外,p中還包含,div中包含,如這些稱為內聯元素。以p中包含的元素為例

      內聯元素特點是不會自動換行,而是和父元素的文本一起按HTML中的順序,從左上方流入右下方,p里面的文本可以看做是一種特殊的內聯元素(如text1和text2),和其他內聯元素(如span)在水平方向上挨著擺放,如果瀏覽器窗口變窄或設置了width屬性,一行放不下,后面的內容就會自動流入下一行,直到所有的子元素都顯示在頁面上為止。如果父元素p沒有設置height,它的height會隨瀏覽器變窄而增高,以保證能放得下所有的內容。

      可以設置一下內聯元素span的寬和高,看是否有效?

      p?span{width:?100px;?height:?100px;padding:?5px;margin:?10px;}

      渲染效果

      可以看到,對內聯元素span設置width和height無效,margin僅僅左右方向有效,上下無效;padding上、右、下、左都有效,會撐大span所占空間,后面緊跟著的內容依次后移。細看文本"土"被擠到了下一行。

      注意:內聯元素img和input是個例外,可以設置width和height,padding和margin,且四個方向均有效

      Web前端學習筆記_塊元素、內聯元素和內聯塊元素

      如在div標簽中插入img標簽和input標簽

      同時給img和input設置寬高和內外邊距,驗證一下

      是否有效,

      如下,給設置了一樣的寬高和內外邊距

      div?img,div?input{width:?50px;height:?40px;margin:?20px;padding:?5px;}

      發現,以上這些屬性確實對內聯元素img和input有效

      三、內聯塊元素 inlne-block

      以上是頁面中塊級元素和內聯元素的簡單介紹,還有第三種類型,行內塊元素(inline-block),它結合了塊元素和行內元素的特性,但又各有取舍。

      display屬性用于控制元素如何顯示,如設置h1,p,div的display屬性為inline-block,加個border便于識別

      h1,p,div{display:?inline-block;width:?400px;border:?1px?solid?red;}

      可以看到,原來的三個塊級元素display設置為inline-block之后,可以在一行上顯示了,不會自動換行,依然可以識別寬高,按順序從左至右排列,除非瀏覽器寬度變窄,一行放不下,就會像內聯元素一樣被擠到第二行。

      但這里有個小問題:

      三個元素display設置為inline-block之后,雖然在一行顯示,但它們之間有一個小間隙,影響布局效果,那么如何去掉這個小間隙呢?

      分析:之所以出現小間隙,是由于HTML文檔中標簽之間的換行符和空格被瀏覽器解析為內容,若把空格和換行去掉,間隙自然就會消失了。

      去掉元素標簽之間空格主要有兩種方法:

      (一)手動去掉HTML標簽之間的空格或者將其注釋掉

      ...

      ...

      ...

      效果如上,內聯元素之間的空隙消失了,以上方法雖然可行,但代碼可讀性降低,有一定局限性,不推薦!

      (二)先在body中將文字大小font-size設置為0,這樣,瀏覽器之間的空隙就消失了。

      但元素內的文字也因為設置為0,從頁面上不可見了,所以還需要再在各個元素內重新恢復font-size的大小,如此便可以實現和上面方法一樣的效果

      以上兩種方法,均可清除內聯元素之間的空隙,推薦使用第二種

      實質上,通過設置display屬性,block、inline和inline-block這三者能進行相互轉換。塊元素可以內聯元素方式顯示,內聯元素可變塊元素方式顯示,塊元素和內聯元素也可以內聯塊級元素顯示,在實際應用中,可靈活使用。

      注:以上為個人在學習過程中的一點總結,難免有疏漏之處,歡迎指正,我們一起學習成長快樂。

      軟件開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel2003表格中制作下拉列表的方法是什么
      下一篇:昇騰CANN開發&運行環境搭建

      相關文章
      亚洲成a人片77777kkkk| 亚洲午夜在线播放| 在线观看亚洲AV日韩A∨| 久久久亚洲裙底偷窥综合| 在线a亚洲v天堂网2019无码| 亚洲不卡AV影片在线播放| 久久亚洲精品无码gv| 久久久久久亚洲精品无码| 亚洲字幕AV一区二区三区四区| 亚洲AV成人无码天堂| 亚洲国产精品综合久久20| 亚洲一区在线免费观看| 亚洲av乱码一区二区三区| 亚洲色图激情文学| 国产精品亚洲综合久久| 亚洲精品无码中文久久字幕| 亚洲一区二区三区丝袜| 亚洲av永久无码| 亚洲?V乱码久久精品蜜桃| 亚洲人成人网站在线观看| 亚洲中久无码永久在线观看同 | 国产亚洲精品成人久久网站| 亚洲国产精品毛片av不卡在线| 亚洲精品无码av天堂| 亚洲国模精品一区| 亚洲午夜无码AV毛片久久| 在线日韩日本国产亚洲| 亚洲精品在线视频| 国产亚洲日韩在线三区| 国产亚洲av片在线观看播放| 亚洲AV日韩AV永久无码绿巨人| 亚洲国产精品久久久久| 亚洲国产日韩在线人成下载| 亚洲午夜无码久久| 国产亚洲综合久久| 国产精品亚洲аv无码播放| 麻豆亚洲AV永久无码精品久久| 亚洲人成网站18禁止久久影院| 亚洲kkk4444在线观看| 国产在亚洲线视频观看| a级亚洲片精品久久久久久久|