2013-01-16 228 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