绝对定位才是WEB的精髓

所属分类: 网页制作 / CSS 阅读数: 1287
收藏 0 赞 0 分享
若是你从未碰到过此问题,并且非得用纯CSS来实现,我想你一时半了也是束手无策吧。这里不讨论如何实现的细节,网上关于此问题的解决方法也是层出不穷,但都有共同点:复杂取巧

      且不论纯CSS的实现是否有意义,光是其CSS的代码就违背的HTML的思想:用简单的方法实现复杂的效果。这里的简单不仅仅是指代码上的简短,更重要的是体现一种容易实现的解决方案。显然,先前提到的方案里,用纯CSS是最不容易实现的。当然,你已有现成的例子或许更加简单,但更多的时候面对的是一些从未经历过的问题,如果非得用纯XXX实现的话,岂不是事倍功半。事实上,HTML里包含的每个特征都是为了简化开发者的工作量而设计的。CSS,JS,Flash。。。以至于未来的HTML5,新的特征不仅仅是为了丰富内容,更多的是为了简化原先的实现!

      仍旧是垂直居中的问题,我们抛弃纯CSS,用JS辅助CSS实现,会发现总体代码并没有增加多少;相反,每条每句都是那么容易的理解,完全可以抛弃那一堆hack,以及一些晦涩的,没有注释根本没法琢磨的CSS代码。最终呈现在用户眼里的都是一样的效果,又何不选择一条实现简单容易的方法,而要走崎岖不平的山路呢?

      有些人认为纯XXX的实现是一种水平的体现,我认为是完全错误的观点。你用纯css制作了各种各样的特效,说明这方面积累的比较多,你需要了解每个浏览器的怪异特征,并逐一测试,还需不时的关心浏览器升级过后这些特征是否发生了变化。然而,配合利用JS来实现,其解决方法就要简单明了的多。

      且不论渲染效率谁快谁慢,光是开发效率后者要高的多,即便是渲染要慢些,那也仅仅是忽略不计的那一丁点(事实上是不会比纯CSS的慢)。此前也常常在网上看见不少人发帖提问,XXX效果用纯CSS怎么实现。大家于是开始琢磨,但不是这个浏览器有问题,就是那个浏览器不兼容。最后终于出现正确答案,一大堆乱七八糟的CSS,甚至还加了无用的元素,仅仅是为了影响周围一些变化。大家看了也是一知半解,但测试了下的确可以,于是纷纷发帖佩服,表示高深,很强大。

      然而,回过头仔细想想,把各种浏览器的怪异现象利用的淋漓尽致,究竟是一种高明呢,还是一种退步?在过去,IE独占天下的时候,WEB的开发时一件很轻快的事,因为即使我们不按标准去做,但只要IE里运行正常就可以了。那个时候应该有不少和我一样,连document.getElementById这样基础的东西都不知道,因为IE里不需要。与其说是WEB开发,不如说是IE开发。然而,随着各种浏览器的不断冒出,WEB开发已不再像过去那样轻快了,相反是件头疼的事,我们需要花大量的时间在与内容毫不相干的事上,甚至连总结差异也成了WEB开发的一部分。每个浏览器虽然大致相同,但细节方面却各有所异。过去IE的页面在其他浏览器里或许变得支离破碎,原因也很简单,无非两个:1.我们本来就没有按照标准去做,2.其他的浏览器没有严格按标准去实现。

      说到底,WEB的最终释义无非就是“标准” 二字。若是所有的的浏览器都遵循标准所有的开发者也都按照标准开发,那么就能实现“一次开发,到处浏览”。虽然后者可以做到,但是前者是几乎是不可能的,至少在近几年里。更何况如今为了制作与众不同的效果,几乎是挖遍了每个浏览器私有的特效,这对WEB一统就更困难了。正因为出现了如此的局面,也成就了如今大红大紫的Flash,以至于越来越强大。因为它的确是做到了“一次编译,到处运行”的理念。

       用最简单的办法,让各个浏览器表现出一致的布局特性,无疑就是用绝对定位。曾有人说过,用绝对定位做网页的不是最菜的就是最高的。新手不了解CSS复杂的布局特征,于是把所有的都变成了绝对定位,方便在编辑器里拖来拖去,想放哪就放哪。当然这样出来的HTML是极度臃肿的,灵活性也是相当的差,但是惟独有一个优点:所有的浏览器里都是一致的布局。随着新手慢慢成长,也开始熟悉使用CSS主流的布局,以至到了跨浏览器里测试的那天,才发现要兼容所有的浏览器是何等的麻烦。然而绝对定位也是最高端的,因为它配合脚本可以实现丰富的效果,Google的个性化首页,QQ空间的可拖动项目栏。。。越来越多的创意布局展现出来,无不用到了绝对定位。我也曾经考虑过,通过脚本让整个网站都是由绝对定位元素构成,这样显然是可以大量减少累赘的布局代码,服务器仅需提供脚本文件和内容数据,让客户端自己来生成,甚至是一个门户网站。当然,这个想法似乎是夸张到了极点。

       不过即便是用经典的DIV/CSS做网页,也不代表绝对定位的不可行。对于局部的一些效果,用了绝对定位就会比纯CSS实现的简单多了,兼容性也更好了,就是用到了脚本,但这算是一个不完美吗?为何非得为了一个纯理念而在一棵树上吊死呢? HTML的本质就是:最简单的方法实现它。(2011/3/13)

更多精彩内容其他人还在看

2013年五大主流浏览器 HTML5 与 CSS3 兼容性大比拼

这篇文章主要介绍了2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼,需要的朋友可以参考下
收藏 0 赞 0 分享

前端设计师需要了解的9个问题

这篇文章主要介绍了前端设计师需要了解的9个问题以及注意事项,非常的实用,是篇非常不错的文章,这里推荐给大家
收藏 0 赞 0 分享

CSS强制性换行的方法区别详解

自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行
收藏 0 赞 0 分享

CSS语义化命名方式及常用命名规则

本文搜集了一些CSS语义化命名方式以及命名规则。如有错误或不妥之处,敬请指出,欢迎你提出更好的建议,加插更多的命名规范。
收藏 0 赞 0 分享

ul li内容宽度的问题的解决方案

在IE6下只要我设置LI的宽度为auto,不论LI里面的内容多长,LI的宽度始终是100%,即UL的宽度(这里我已经写死了UL的宽度)。设置max-width也没用。高手们,在IE系列浏览器中如何使LI的宽度真正的随着内容增长而增长呢?像FF那样。
收藏 0 赞 0 分享

html5+css3气泡组件的实现

本文是html5+css3系列教程的第一篇,给大家讲述html5+css3实现气泡组件,讲解的十分的详细,这里推荐给大家,希望对大家能有所帮助
收藏 0 赞 0 分享

html5+css3之CSS中的布局与Header的实现

本文从CSS3的布局(CSS的布局的演化、CSS3盒模型-box-sizing、float布局中的bfc、Flexbox简介)Header布局的实现(float实现布局、Header js的实现)向我们展示了HTML5与CSS3的魅力。
收藏 0 赞 0 分享

一款恶搞头像特效的制作过程 利用css3和jquery

今天给大家介绍一款恶搞头像特效的制作过程,你可以把任意一张照片放到跳舞的漫画中,为他带上不同的帽子,让他翩翩起舞,下面我们一起来看一下制作过程和效果
收藏 0 赞 0 分享

大图片根据分辨率自适应宽度仍居中显示

一个1920*900的大图,在1024*768的分辨率下仍居中显示,如何做到这一点,下面是一个可行的解决方案
收藏 0 赞 0 分享

CSS3提交意见输入框样式代码

这个提交意见输入框,结构使用到了table,样式用的css3,包含了多方面的知识,比较适合新手朋友们
收藏 0 赞 0 分享
查看更多