2013-01-16 226 views
2

我有這樣的HTML:Safari瀏覽器VS Firefox的:奇怪的UL 「填充」

<article class="images"> 
    <ul class="cf"> 
    <li> 
     <a href="#"> 
     <img src="http://www.placehold.it/800x600" alt="" /> 
     </a> 
    </li> 
    </ul> 
</article> 

而這個CSS:

* { 
    margin: 0; 
    padding: 0; 
} 

.images ul { 
    margin-left: -3%; 
    width: 100%; 
    background: red; 
} 
.images li { 
    list-style-type: none; 
} 
.images li img { 
    width: 17%; 
    margin-left: 3%; 
    margin-bottom: 3%; 
    float: left; 
} 

儘管如此,在Safari中ul似乎有某種填充上對。
在Firefox中,ul顯示正確。

看到它自己:http://jsfiddle.net/EdCXx/

有沒有辦法解決呢?

編輯:隨着OS X 10.8.2的Safari 6.0.2,它看起來像這樣:
enter image description here

+0

似乎沒什麼問題。 Safari 5.1.7 for Windows –

+0

@Diodeus我附上了問題的圖片,請參閱我的編輯。 – Sven

+0

您是否嘗試過檢查[Safari開發人員工具](https://developer.apple.com/technologies/safari/developer-tools.html)中的元素以查看正在應用哪些屬性? – pwdst

回答

1

我假設的問題是,你正在使用負margin,這是造成問題(我目前無法訪問Mac,所以無法驗證)。

嘗試將您的CSS更改爲以下內容。我還將您的clearfix更改爲我之前選擇的具有出色的跨瀏覽器結果的一個。

http://jsfiddle.net/EdCXx/4/

CSS:

/* Reset */ 
* { 
    margin: 0; 
    padding: 0; 
} 

/* Clearfix */ 
.clear:after { 
    clear: both; 
    content: "."; 
    display: block; 
    height: 0; 
    line-height: 0; 
    visibility: hidden; 
} 

/* Images */ 
.images ul { 
    width: 100%; 
    background: red; 
} 
.images li { 
    list-style: none; 
    overflow: hidden; 
    margin-right: 3%; 
    margin-bottom: 3%; 
    float: left; 
    width: 17%; 
    height: 17%; 
} 
.images li img { 
    float: left; 
    max-width: 100%; 
    max-height: 100%; 
} 

,並擰緊你的HTML(不是必須的,但它的漂亮):

<article class="images"> 
    <ul class="clear"> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li><a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
     <li> <a href="#"><img src="http://www.placehold.it/800x600" alt="" /></a></li> 
    </ul> 
</article> 
+0

感謝您的回覆!關於HTML:你是完全正確的,我只是這樣寫的,因爲我認爲它會使更多的元素在那裏。關於Clearfix:很酷!關於CSS:我明白你的意思,但是我應該如何將每行的第一個圖像與'ul'的左邊緣對齊?我認爲沒有別的辦法。 – Sven

+0

你想要它看起來如何?你甚至不想在所有的圖像周圍放置空間? – matthewpavkov

+0

我甚至希望在所有圖像周圍都有空格,每行中的第一個圖像需要將'margin-left'移除以與'ul'對齊,並因此與所有其他元素對齊。現在,它看起來像圖像縮進,但我希望'img'排成一行。看到這兩個小提琴:http://jsfiddle.net/EdCXx/2/ vs http://jsfiddle.net/EdCXx/3/ – Sven