margin负值,一个秘密武器

标签: 解决方案 margin负值 | 发表时间:2012-06-30 14:29 | 作者:小魁天下
出处:http://www.csscoo.com
CSS盒模型中,margin是我们老熟悉的一个属性了, 它的负值你用过吗? 你知道margin负值的秘密武器吗?

1、带竖线分隔的横向列表(例如:网站底部栏目)

横向列表.jpg 传统的分隔符是使用 “|” 来实现的,弊端显而易见,不利于表现与结构的分离,同时增加了后台输出时的判断工作。所以我们采用border-left 左边框来模拟分割线,然后通过margin-left:-1px隐藏掉第一个列表项的边框,父元素设置 overflow:hidden 来隐藏溢出部分,这样完美达到首尾无分割线的要求。 实际测试中发现 iphone safari 设置margin负值=border-widht 并不能很好的隐藏,还有约0.5px的细线,iPad没测不知道如何?修复方法如下: /*  修复iphone safari 不能完全隐藏边框的bug  */ @media  screen and (max-device-width: 480px){ .nav-list-item { margin-left:-2px; } .ui-tab-trigger-item { margin-bottom:-2px; } } iphone-safari-bug.jpg  

2、带底部分割线的竖向列表(例如:新闻列表)

纵向列表.jpg 纵向列表.jpg 原理同横向列表相同,需要注意的是 margin 负值在 IE 中的层级bug,详细参见: IE6 IE7 IE8(Q) 负边距 (margin) 导致元素溢出 hasLayout 容器时显示异常,得到的最终解决方案是用 zoom:1确保触发hasLayout,然后设置position:relative。

3、两栏、三栏自适应布局

自适应布局.jpg 自适应布局.jpg曾经有这样一个经典的需求: 1)两栏抑或三栏布局,主体自适应宽度; 2)一个或两个侧边栏固定宽度; 3)主体部分xhtml结构在最前面(网速慢时可以优先显示,对SEO有利) 4)自适应高度,且不影响等高; 5)兼容IE6+,firefox,chrome,opera。 于是乎margin负值便大放光彩,首先是国外出现的圣杯布局,掀起一股margin负值热潮。紧接着在栅格化布局大行其道的淘宝,玉伯大湿进一步利用margin负值,创造了同一种xhtml结构,两栏或三栏位置通过css任意调整的布局,玉伯美其名曰:双飞翼布局--比翼双飞,像鸟儿翱翔蓝天一样自由。( 双飞翼布局完整demo) 至此,margin负值在布局之路上配合float妹子,已经发挥得淋漓尽致。 优雅的demo

4、多栏等高

多栏等高.jpg 多栏等高.jpg正如上面所说,有时候我们还希望多栏等高,使页面看起来更美。于是便有了经典的 padding-bottom:9999px;margin-bottom:-9999px;先通过padding把盒子扩展到足够高,然后通过margin伪娘把它给拉回来,最后父元素设置overflow:hidden隐藏溢出,这样多栏布局中就会以最高栏为其他栏的视觉高度。 当然万物没有完美的,这种等高方法的弊端如下: 1)当高度超过9999px时候失效,当然一般高度不会超过这个,也可以设置为最大值 32767px(为啥,因为int的最大值就是32767,超过这个数值会以最大值计算) 2)无法设置底部边框 其他的就不多说了,以后会专门写一篇多栏等高的文章,详细介绍各种方法的利弊,大家按需使用。

5、产品列表

多栏等高.jpg 有时候会要求一行产品列表左右两边是没有空隙的,中间有一定的间距;比如我们设置了li { margin-right:20px;} 那么最后一个肯定也是有20px的间距的,怎么办?我们可以通过设置父元素(比如ul)margin-right:-20px; 来扩展容器的宽度,然后把整体的宽度加在最外层的元素上, 此处如果把宽度加在了父元素上(比如ul)会导致此方法失效,因为宽度定死了,margin负值便无法扩展容器的宽度了。

6、已知高宽元素水平垂直居中

居中.jpg 对于水平居中当然我们有更好的方法,块级元素设置 margin-left:auto; margin-right:auto; 行内元素可以使用 text-align:center 。垂直居中就不多说了,深入研究又是一篇文章了!

7、模拟表格线

表格线.jpg 上面的布局通过表格当然很好实现,但是前几天  点点 老兄说这个结构要用 ul无序列表来写,第一时间便想到了用 inline-block 和margin负值来做了。实际中问题还是挺多的,遇到了IE宽度奇偶BUG。国外大神的解决方法是 body{margin-left:1px; },但是发现治标不治本,IE6和7还是坑爹。于是想到了把li的宽度设置为小数 width:49.99%; 虽然IE6-7右边框还是有一点点错位,但是视觉上基本可以了,无需刻意追求1px的差异。 然后  点点 老兄又说了:如果用CSS3 如何写呢?那么自然想到了 columns 属性,研究发现这爷们居然也有IE的奇偶癖好了,两列的时候,li 如果是奇数除了chrome,其他现代浏览器都越好似的,一起错位了。 这个问题我们下回分解,margin负值能很好的解决这样的需求了,兼容性也不错。

8、tab选项卡

最后说说demo中的整体结构选项卡中同样用到了 margin 负值,选中状态下,我们需要隐藏掉底部边框。 在选项卡中,遇到了 firefox box-shadow 导致 outline 扩展的bug,解决方案见 demo。   文章来源: http://iyunlu.com/view/css-xhtml/52.html

相关 [margin 负值 秘密] 推荐:

margin负值,一个秘密武器

- - CSS库
CSS盒模型中,margin是我们老熟悉的一个属性了, 它的负值你用过吗. 你知道margin负值的秘密武器吗. 1、带竖线分隔的横向列表(例如:网站底部栏目). 传统的分隔符是使用 “|” 来实现的,弊端显而易见,不利于表现与结构的分离,同时增加了后台输出时的判断工作. 所以我们采用border-left 左边框来模拟分割线,然后通过margin-left:-1px隐藏掉第一个列表项的边框,父元素设置 overflow:hidden 来隐藏溢出部分,这样完美达到首尾无分割线的要求.

CSS 的 margin 很困難

- - Web前端 - ITeye博客
原文本來是有圖的,但我懶得把圖拖過來漢化了,欲配圖看文者請移師到原文博客內參詳. toggle()及變數、calc、:match 之類,直至現在都沒有的 CSS 屬性、選擇器被提出・實行起來,CSS3、4都變得有趣起來了. 在老舊的 Android 瀏覽器以外,沒有 prefix 下使用  border-radius、 box-shadow 等等的情況也逐漸增多了.

秘密

- Ahlon - 2SIMPLE
五个人,一个半月,两大平台,五种语言,五万用户——秘密.

存放秘密

- Shiming - 牛博山寨头条
38岁的陈昱回到国内发现在国外流行多年的自助式仓储服务,国内竟然没有,他决定自己弄一个. 文 _ 陈晨   摄影 _ 肖南. 2010年春天,在国外生活了20年的陈昱,买了一张单程机票,从美国辞职回到上海. 在随行的15件行李中,有一份砖头厚的创业计划书. 自助式小仓库,在香港、新加坡又被称为“迷你仓”、“储物仓”,1960年代兴起于美国,后流行于欧洲和日本等发达国家.

Bitmap的秘密

- - 博客园_知识库
  之前已经参加过几次QCon峰会,不过今年QCon 2014 上海峰会对我来说比较特别,不再只是一名听众,而是第一次登台演讲. 感觉的确不太一样,一来是身份从听众变成了讲师,二来是因为成了讲师,让我接触到更多的业内朋友,也遇到了更多的提问、咨询. 会后已经有一段时间了,还有朋友提出想了解更多的技术知识.

(2011.10.25)商业秘密

- 貝殼 - 张五常Steven N.S. Cheung
(五常按:本文是《知识资产需要保护吗. 好奇心或金钱之外的兴趣可以解释不少研究发明的行为. 然而,为了金钱或职位而研究总要有一点知识的保护,即是要有权利选择拒绝某些要使用这知识的人. 在不同程度上,这拒绝权利可以源自一些特殊情况,或紧守秘密,或依靠风俗或法律. 好些情况,自我保护不需要用上守秘的途径.

电费翻倍的秘密

- lhb - 阮一峰的网络日志
前几天,我收到上个月的电费单,大吃一惊. 虽然今年冬天很冷,但是我家的电器没有多用啊. ......网上一搜,我发现这是普遍现象,新闻媒体也有报道. "上海一家网站发起的网民调查显示,有超过80%的网友发现家中1月份的电费翻倍了. 无论是微博还是上海本地各大论坛,关于1月份电费陡增的帖子被频繁转发,不少网友更是将自家电费单拍照上传'晒电价'.

她那儿的小秘密

- 阿德 - 果壳网 guokr.com - 果壳网
图中内容节选自 15 Crazy Things About Vaginas.

揭开水的秘密

- Johnson - Solidot
水是地球生命不可缺少的物质,人类身体大部分由水组成. 然而,虽然我们天天喝水,但水还有许多秘密尚未揭开. 例如,其它物质受冷会收缩,而水受冷变冰会膨胀. 现在,MIT博士生Yang Zhang和他的团队在PNAS上发表了一篇论文,揭示了部分水的秘密. 在一个视频(Youtube)中,Yang Zhang演示了超冷水.

她那儿的小秘密

- 希奇 - 嫣牛博 - 没有政治内容的牛博 (测试版)
花瓣、芳草地这类美好的词常被用来形容女性的私密之处,可你是否知道,那里还与鲨鱼、剑鞘这类不那么温柔的词语沾边呢. 图中内容节选自 15 Crazy Things About Vaginas. 本文已发表于果壳网,在那里参与Geek们的讨论,请点击:她那儿的小秘密.  了解 性情 主题站更多内容:.