margin负值 – 一个秘密武器

  CSS盒模型中,margin是我们老熟悉的一个属性了, 它的负值你用过吗? 你知道margin负值的秘密武器吗?我们一起看看吧!

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

  传统的分隔符是使用 “|” 来实现的,弊端显而易见,不利于表现与结构的分离,同时增加了后台输出时的判断工作。

  所以我们采用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; }

  }

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

  原理同横向列表相同,需要注意的是 margin 负值在 IE 中的层级bug,详细参见:

  IE6 IE7 IE8(Q) 负边距 (margin) 导致元素溢出 hasLayout 容器时显示异常,得到的最终解决方案是用 zoom:1确保触发hasLayout,然后设置position:relative。

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

  曾经有这样一个经典的需求:

  1)两栏抑或三栏布局,主体自适应宽度;

  2)一个或两个侧边栏固定宽度;

  3)主体部分xhtml结构在最前面(网速慢时可以优先显示,对SEO有利)

  4)自适应高度,且不影响等高;

  5)兼容IE6+,firefox,chrome,opera。

  于是乎margin负值便大放光彩,首先是国外出现的圣杯布局,掀起一股margin负值热潮。

  紧接着在栅格化布局大行其道的淘宝,玉伯大湿进一步利用margin负值,创造了同一种xhtml结构,两栏或三栏位置通过css任意调整的布局,玉伯美其名曰:双飞翼布

  局--比翼双飞,像鸟儿翱翔蓝天一样自由。(双飞翼布局完整demo) 至此,margin负值在布局之路上配合float妹子,已经发挥得淋漓尽致。

  优雅的demo

  4、多栏等高

  正如上面所说,有时候我们还希望多栏等高,使页面看起来更美。于是便有了经典的padding-bottom:9999px;margin-bottom:-9999px;

  先通过padding把盒子扩展到足够高,然后通过margin伪娘把它给拉回来,最后父元素设置overflow:hidden隐藏溢出,这样多栏布局中就会以最高栏为其他栏的视觉高度。

  当然万物没有完美的,这种等高方法的弊端如下:

  1)当高度超过9999px时候失效,当然一般高度不会超过这个,也可以设置为最大值32767px(为啥,因为int的最大值就是32767,超过这个数值会以最大值计算)

  2)无法设置底部边框

  其他的就不多说了,以后会专门写一篇多栏等高的文章,详细介绍各种方法的利弊,大家按需使用。

margin负值 – 一个秘密武器,布布扣,bubuko.com

时间: 2024-10-06 02:18:08

margin负值 – 一个秘密武器的相关文章

有人认为,“中文编程”,是解决中国程序员编程效率的一个秘密武器,请问它是一个“银弹“吗?

银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹.在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人,吸血鬼等超自然怪物的特效武器.后来银色子弹常被用做致命武器的代言词.被比喻为具有极端有效性的解决方法,作为杀手锏.最强杀招.王牌等的代称. IBM大型机之父弗瑞德.布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以<没有银弹:软件工程的本质

7. 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么?

银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹.在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人等超自然怪物的特效武器.后来银色子弹常被用做致命武器的代言词.被比喻为具有极端有效性的解决方法,作为杀手锏.最强杀招.王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以<没有银弹:软件工程的本质性与附属

有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么?

答:“中文编程”并不是提升编程效率的武器. 1.目前并没有成熟的编译环境: 2.反复切换中英文输入容易引起不易察觉的Bug: 3.英语作为目前编程的公认语言,被大家广泛使用,使用中文编程后,大量的开源项目都难以维持,造成交流上的障碍 4.中文语言歧义较多,需要定制一系列的规定才能真正应用起来. 5.源程序的效率与详细设计阶段确定的算法的效率有直接的联系,算法是影响程序效率的重要因素,计算机语言对编程的影响并不大. 6.中文编码比英文编码所占用的存储空间大,代码量大的话会降低程序效率. 7.英文编

7.有人认为,“中文编程”是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么?

初见“银弹”这个词,还不是很确定它的意思,通过搜索,得知银弹这个词常被用做致命武器的代言词,被比喻为具有极端有效性的解决方法,作为杀手锏,最强杀招.王牌等的代称. 那么要回答“中文编程”是否是解决中国程序员编程效率的一个“银弹”这个问题,首先要了解目前阻碍中国程序员编程效率提高的桎梏是什么,然后才能根据“中文编程”是否能够冲破这些桎梏来判断它是否是“银弹”. 下面我来谈谈我认为的目前阻碍编程效率提高的三大桎梏,或说是对于提高编程效率极为重要的但却很难具备的三种能力. 1.编程人员要判断问题在什么

margin负值的应用

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

有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?

一.“银弹” 首先在这里解释一下“银弹”的概念,顾名思义就是银质的子弹(Silver Bullet),是古老的欧洲民间传说中能杀死狼人的利器.当然现实中是没有狼人的,但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段,被比喻为具有极端有效性的解决方法,作为杀手锏 .王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表

“中文编程”会是解决中国程序员编程效率的秘密武器,成为中国软件工程的“银弹”么?

一.“银弹” 首先在这里解释一下“银弹”的概念,顾名思义就是银质的子弹(Silver Bullet),是古老的欧洲民间传说中能杀死狼人的利器.当然现实中是没有狼人的,但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段,被比喻为具有极端有效性的解决方法,作为杀手锏 .王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表

有人认为“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?

有人认为“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?首先,百度给出“银弹”是这样的解释:能杀死狼人的利器 在古老的传说里.狼人是不死的.想要杀死狼人有几种方法: 1.像杀死吸血鬼那样用木桩钉住狼人的心脏. 2.将月光遮住 3.用银子做的子弹射穿狼人的心脏或头 当然现实中是没有狼人的.但现实中确实有银弹这个东西.而其意义也类似于能杀死狼人的最好办法.现实中的狼人可以是一个棘手的项目,或者一件不可能的事.而“银弹”就是指能解决这些事的方法,或者技术手段. 我不认中文编程是

2.有人认为,“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?

银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹.在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人等超自然怪物的特效武器.后来银色子弹常被用做致命武器的代言词.被比喻为具有极端有效性的解决方法,作为杀手锏[1]  .最强杀招.王牌等的代称. IBM大型机之父佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以<没有银弹:软件工程的本