摘要:先看結構代碼在的元素之間存在的空白如圖第一種就是改變結構結構一這種方法接近標簽換行格式的寫法,也更趨近閱讀。當然有些文章介紹使用來解決,這也是跟元素的字號有極大的關系。如果元素是一個,則查找文檔內容。如果節點是元素節點,則屬性將返回。
早上在博客中有人提了這樣一個問題:“li元素inline-block橫向排列,出現了未知間隙”,我相信大家在寫頁面的時候都遇到過這樣的情況吧。
我一般遇到這情況都會把li浮動起來,這樣就沒有間隙。但是解決這個未知間隙,還是有很多辦法的,在w3cplus上提供了好幾種解決辦法。在這總結一下。
先看結構:
css代碼:
ul { list-style: none outside none; padding: 10px; background: green; text-align: center; } ul li { display: inline-block; *display: inline; zoom: 1; background: orange; padding: 5px; }
在inline-block的元素之間存在“4px”的空白:如圖:
結構二:這種方法接近標簽換行格式的寫法,也更趨近閱讀。
結構三:結構二和結構一幾乎是一樣,結束標簽的“>”成了另一行的起始標簽。
結構四:結構三的方法采用的是html的注釋的方法,這種方法我想大家不太常見,不過同樣能解決我們需要解決的問題。
方法二:負的margin結構四,我想是大家常用來解決這樣的問題的方法吧
很多地方討論使用負的margin來解決,比如說:
ul { font-size: 12px; } ul li { margin-right: -4px; *margin-right: 0; }
這種解決方法并不完美,如果你的父元素設置的字號不一樣,可能你的“-4px”就不能解決問題。況且在Chrome中你需要另外設置一個負的margin值才能實現同等的效果。
當然有些文章介紹使用"-0.25em"來解決,這也是跟元素的字號有極大的關系。所以我個人建議不使用負的margin來解決這樣的問題。
方法三:設置父元素字體為0第三種方法設置父元素的字體為“0”,然后在“inline-block”元素上重置字體需要的大小。
ul { list-style: none outside none; padding: 10px; background: green; text-align: center; font-size: 0px; } ul li { display: inline-block; *display: inline; zoom: 1; background: orange; padding: 5px; font-size: 12px; }
這樣處理在Firexfox,chrome等瀏覽器下是達到了效果,可是在Safari下可問題依然存在:
但是這樣的方法是不推薦的。
方法五:jquery方法html結構:
css代碼:
ul { list-style: none outside none; padding: 10px; background: green; text-align: center; font-size: 12px; } ul li { display: inline-block; *display: inline; zoom: 1; background: orange; padding: 5px; }
jquery代碼:
$(".removeTextNodes").contents().filter(function() { return this.nodeType === 3; }).remove();
其中contents()方法:查找匹配元素內部所有的子節點(包括文本節點)。如果元素是一個iframe,則查找文檔內容。
filter方法:篩選出與指定表達式匹配的元素集合。這個方法用于縮小匹配的范圍。用逗號分隔多個表達式。
nodeType 屬性返回以數字值返回指定節點的節點類型。
如果節點是元素節點,則 nodeType 屬性將返回 1。
如果節點是屬性節點,則 nodeType 屬性將返回 2。
元素或屬性中的文本內容,則nodeType 屬性將返回 3。
使用純CSS還是找到了兼容的方法,就是在父元素中設置font-size:0,用來兼容chrome,而使用letter-space:-N px來兼容safari:
.finally-solve { letter-spacing: -4px;/*根據不同字體字號或許需要做一定的調整*/ word-spacing: -4px; font-size: 0; } .finally-solve li { font-size: 16px; letter-spacing: normal; word-spacing: normal; display:inline-block; *display: inline; zoom:1; }
問題地址:http://segmentfault.com/q/101...
原文地址:http://www.w3cplus.com/css/fi...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/111136.html
摘要:本文默認你已經看過了我的上一篇文章圖片列表布局一,接下來我們來實現復雜一點的圖片列表布局。以下面的樣式為例為了方便,我只列出的布局示例。好了,完美接下來把標題加上圖片標題效果如圖詳細的代碼可以參閱上一篇文章圖片列表布局一 本文默認你已經看過了我的上一篇文章 div+css圖片列表布局(一),接下來我們來實現復雜一點的圖片列表布局。以下面的樣式為例 showImg(https://seg...
摘要:本文默認你已經看過了我的上一篇文章圖片列表布局一,接下來我們來實現復雜一點的圖片列表布局。以下面的樣式為例為了方便,我只列出的布局示例。好了,完美接下來把標題加上圖片標題效果如圖詳細的代碼可以參閱上一篇文章圖片列表布局一 本文默認你已經看過了我的上一篇文章 div+css圖片列表布局(一),接下來我們來實現復雜一點的圖片列表布局。以下面的樣式為例 showImg(https://seg...
閱讀 2423·2021-10-09 09:59
閱讀 2177·2021-09-23 11:30
閱讀 2591·2019-08-30 15:56
閱讀 1145·2019-08-30 14:00
閱讀 2939·2019-08-29 12:37
閱讀 1253·2019-08-28 18:16
閱讀 1655·2019-08-27 10:56
閱讀 1022·2019-08-26 17:23