刪除內聯元素之間的空隙
當內聯元素在一行顯示的時候,元素之間有時候會出現間隙。
這是一種很怪異的現象,會對一些初學者造成不小的困擾。
如果您瞭解其中的原理,自然感覺此現象合情合理,消除此問題自然也手到擒來。
首先看一段程式碼例項:
[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>
通過設定負外邊距同樣可以消除元素之間的空隙。
每一種方式各有利弊,可以根據自身程式碼所處的上下文情形選擇更為合適的方式。
相關文章
- 如何處理內聯元素中的空隙(譯)
- HashMap 之元素刪除HashMap
- oracle級聯刪除使用者,刪除表空間Oracle
- 建立元素和刪除元素
- jQuery刪除元素jQuery
- jQuery 刪除元素jQuery
- 塊狀元素、內聯元素和內聯塊狀元素
- 死磕 java集合之ConcurrentHashMap原始碼分析(三)——刪除元素全解析(內含彩蛋)JavaHashMap原始碼
- JavaScript刪除陣列元素JavaScript陣列
- HTML行內級元素之間的空格問題HTML
- laravel 多對多關聯刪除中間表Laravel
- 級聯刪除
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- jQuery刪除具有指定文字的li元素jQuery
- Python列表刪除元素的方法有哪些?Python
- Array · 刪除陣列中指定的元素陣列
- ArrayList元素的刪除(4種函式)函式
- 根據陣列的值刪除元素陣列
- PHP 刪除陣列中元素的方式PHP陣列
- JavaScript 刪除陣列指定元素JavaScript陣列
- JavaScript刪除array陣列元素JavaScript陣列
- STL.vector容器刪除單個元素、部分元素、全部元素
- H5-13 塊元素與行內元素(內聯元素)H5
- CSS 技巧篇(六):display設定元素為行內元素時,元素之間存在間隙問題CSS
- 內聯元素與流
- HTML 塊級元素和內聯元素HTML
- PHP從陣列中刪除元素的方法PHP陣列
- Python 中刪除列表元素的三種方法Python
- 深入理解-CSS內聯元素之vertical-alignCSS
- 深入理解-CSS內聯元素之line-heightCSS
- 深入理解-CSS內聯元素之font-sizeCSS
- 刪除內容了
- JavaScript 陣列新增或者刪除元素JavaScript陣列
- JavaScript陣列刪除重複元素JavaScript陣列
- jQuery為元素新增和刪除classjQuery
- JavaScript 刪除陣列重複元素JavaScript陣列
- JavaScript 動態新增與刪除元素JavaScript
- Remove Duplicate Letters 刪除重複元素REM