前天要做一个简单的效果,并列不定数个li。但就这样一个效果,弄了半天搞不定,最后不得不用hack,依然搞不定。如果大家对CSS感兴趣,可以看看效果图自己先试着做一次,然后看看兼容性。
最终效果图如下:
(我写两个ul的原因是li只有一排和多排效果会不一样)
首先看我的写法,HTML很简单,就不贴了,只贴CSS代码,DEMO:
ul{overflow:hidden;zoom:1;background:#ddd;width:440px;margin-bottom:50px;margin-left:auto;margin-right:auto}
li{float:left;display:inline;width:100px;height:100px;line-height:100px;text-align:center;margin:0 5px 10px;background:#aaa;}
大家可以打开上面的DEMO看效果,IE8、Chrome、FF都没问题,IE6效果如下:
这里就可以看出来,一排li和多排li效果不一样的,一个有底部一个没底部。
IE7效果如下:
IE7直接都没底部了。
在CSS群里讨论了大半天的时间,网友提出各种各样的方法,最后一位叫朵斯提的朋友,他的方法可以说是完美解决吧。DEMO
他的解决方法是在ul外面加div,然后把一直习惯li左右下边距改为上左右边距。上面多出来的边距用div隐藏,然后ul向上负边距,把上面多余的彻底盖住。基本思路就是这样,听不懂我说的可以看看核心CSS代码:
div{overflow:hidden;zoom:1;}
ul{overflow:hidden;zoom:1;margin-top:-10px;padding-bottom:10px;background:#ddd;width:440px;margin-bottom:50px;margin-left:auto;margin-right:auto;}
li{float:left;display:inline;width:100px;height:100px;line-height:100px;text-align:center;margin:10px 5px 0;background:#aaa;}
隐藏和负边距也一直在用,但结合起来用还是第一次,只能说自己用得还不够熟练啊!
主要在ul的负margin…
没写高度.这里的overflow不是拿来隐藏的…
我就觉得是隐藏的,不信你去掉overflow看看
不懂 纯打酱油的~~
我也是打酱油- –
我是来做俯卧撑的!
太高科技了 😕
❓ 不懂啊~
不错~
算是看懂了~先收了。
ie6、ie7可以抛弃了,实在是蛋疼。
看到这些头都大了
写东西的时候经常要用hack,很不爽……希望ie6、7、8能早点被kill吧。。。
你太狠了,IE7,IE8都不放过。
😯 CSS3么。。。
其实只要不是BUG的,都不需要hack,证明你写的代码有问题。
弄不明白是哪里有问题……学而不精啊啊啊啊
FUCK IE 啊,不过对于你这些 还不懂,我们最近开始学flex,似乎就可以避免兼容浏览器的问题
这种情况我都用ie hack配合inline-block搞定
欢迎更好的方法实现这个效果!
干的不错,加油
什么时候把IE都干掉就好了。。。
还不是太懂这个。。 😳
CSS不是很了解啊,我正遇到想把博客 首页及单页,index.php 及 single.php排版,左右各距离屏幕边20px;然后,index.php及single.php下,在其与sidebar.php间歇留30px的样子,请教西门兄该怎么写css?想把滚动按钮置于这30px之间。
你把Prower主题改得乱七八糟……我的建议,不要用百分比宽度,还是用固定宽度吧。
游过,遇到才会去搞~~~
对代码这方面并未深入研究,也只是会修改一下而已
❓ 没看明白,装作打酱油的算了……
有人交流讨论还是好的,最怕的就是没人啊。
始终是没有看懂你说的什么意思,ul中的li并列效果很好实现阿?为什么还需要加一个DIV呢?
你试试兼容性就知道了。
有时候用负边距对齐对象真的是很方便的事情
这个没必要这么麻烦吧?
那麻烦你写个简单的DEMO我看看
真不懂。打酱油的飘过 😮
嗯 这个不错,有时间弄弄看
实现效果就好吧。。虽然经常有太多的说不通和搞不懂。。
————-
置百丈玄冰而崩裂,掷须臾池水而漂摇。