刪除內聯元素之間的空隙
當內聯元素在一行顯示的時候,元素之間有時候會出現間隙。
這是一種很怪異的現象,會對一些初學者造成不小的困擾。
如果您瞭解其中的原理,自然感覺此現象合情合理,消除此問題自然也手到擒來。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> span{ background-color:#ccc; } </style> </head> <body> <span>螞蟻部落</span> <span>螞蟻部落</span> </body> </html>
程式碼執行效果截圖如下:
兩個span元素顯示在一行,它們之間出現了空隙。
這是因為在標準瀏覽器中,空格和換行會被瀏覽器解讀為文字節點。
知道了產生的原因,那麼可以有如下措施刪除它們之間的空隙。
一.將標籤在一行排列:
既然空格和換行會被解讀為文字節點。
那麼不出現空格和換行即可,程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> span{ background-color:#ccc; } </style> </head> <body> <span>螞蟻部落</span><span>螞蟻部落</span> </body> </html>
程式碼執行效果截圖如下:
span元素在一行排列,由此元素間的空隙被刪除。
此方式缺點也很明顯,如果佈局元素很多,勢必會造成一行程式碼過長,不利於閱讀。
二.將字型大小設定為0:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body{font-size:0;} span{ background-color:#ccc; font-size:16px; } </style> </head> <body> <span>螞蟻部落</span> <span>螞蟻部落</span> </body> </html>
既然被解讀為文字節點,那麼將其字型大小設定為0,那麼文字就不再佔據空間。
上述程式碼設定body字型大小為0,為了保持span中文字字型大小的正常,將span字型大小設定為16px。
三.將元素浮動起來:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> span{ background-color:#ccc; float:left; } </style> </head> <body> <span>螞蟻部落</span> <span>螞蟻部落</span> </body> </html>
將span元素設定為左浮動,那麼span元素就會脫離文件流。
脫離文件流的元素雖然不再佔據文件流中元素的空間,但是依然佔據文字的空間。
所以空格和換行生成的文字節點會被浮動元素擠到後面,自然之間的空隙被消除。
為了演示方便,將空格和換行換為"antzone",程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> span{ background-color:#ccc; float:left; } </style> </head> <body> <span>螞蟻部落</span>antzone<span>螞蟻部落</span> </body> </html>
程式碼執行效果截圖如下:
三.設定負外邊距:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> span{ background-color:#ccc; margin-left:-5px; } </style> </head> <body> <span>螞蟻部落</span> <span>螞蟻部落</span> </body> </html>
通過設定負外邊距同樣可以消除元素之間的空隙。
每一種方式各有利弊,可以根據自身程式碼所處的上下文情形選擇更為合適的方式。
相關文章
- 如何處理內聯元素中的空隙(譯)
- display:inline-block元素之間存在空隙inlineBloC
- HashMap 之元素刪除HashMap
- 刪除display:inline-block元素之間的縫隙inlineBloC
- javascript刪除具有指定文字內容的li元素JavaScript
- oracle級聯刪除使用者,刪除表空間Oracle
- JS] JS 之刪除陣列中的元素JS陣列
- 塊狀元素、內聯元素和內聯塊狀元素
- 建立元素和刪除元素
- jQuery刪除元素jQuery
- jQuery 刪除元素jQuery
- Html 內聯元素和外聯元素HTML
- removeChild()刪除li元素REM
- JavaScript 刪除指定的li元素JavaScript
- html之標籤內聯塊元素的那些事HTML
- HTML內聯元素HTML
- 塊元素包裹img空隙問題
- STL關聯式容器中刪除元素的方法和陷阱 四 (轉)
- 級聯刪除
- 解決相鄰圖片之間的空隙問題
- HTML行內級元素之間的空格問題HTML
- JavaScript刪除陣列元素JavaScript陣列
- JavaScript 建立和刪除元素JavaScript
- jQuery刪除指定子元素jQuery
- jQuery刪除指定li元素jQuery
- c++ map刪除元素C++
- c++ vector刪除元素C++
- Java ArrayList刪除特定元素的方法Java
- 內聯元素與流
- 死磕 java集合之ConcurrentHashMap原始碼分析(三)——刪除元素全解析(內含彩蛋)JavaHashMap原始碼
- HTML 塊級元素和內聯元素HTML
- 常見塊元素和內聯元素
- CSS塊狀元素和內聯元素CSS
- 深入理解-CSS內聯元素之font-sizeCSS
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- Array · 刪除陣列中指定的元素陣列
- PHP 刪除陣列中元素的方式PHP陣列
- 根據陣列的值刪除元素陣列