当前位置:编程学习 > C#/ASP.NET >>

div + css 和 table布局的优缺点

昨天面试考官问我最新流行的div + css 和 table布局的优缺点? --------------------编程问答-------------------- div + css
兼容性好
扩展好 
缺点:开发成本高 --------------------编程问答-------------------- div 好~ --------------------编程问答-------------------- div+css:很多标记都可以和css配合布局的。比如span转为块级就相当与div了,table也可以配css啊  不过这么多标记中,就数div最方便最好用。所以综合后就是div+css了
table 快,简单
--------------------编程问答-------------------- 用table搞布局本来就是一种误用.....就像你用纸箱当卫生纸....如果你真用那也可以,不过除非你有嗜好否者你感觉一定不爽......... --------------------编程问答-------------------- 这个似乎应该考前台吧。。。虽然这年头做过web的程序员什么都知道点 --------------------编程问答-------------------- 布局用div+css
罗列数据和设置查询条件什么的还是用table --------------------编程问答-------------------- div+css利于搜索引擎收录 --------------------编程问答-------------------- div+css 美观些
--------------------编程问答-------------------- 有些地方也不一不必须要用DIV+CSS..
片面的说哪个好哪个不好..汗.. --------------------编程问答-------------------- div+css能实现的,table+css都能实现,虽然div+css便于搜索引擎搜索,加载速度快,但是设计调试太麻烦了,而且目前的高速发达的硬件配置加上带宽越来越大网速,div+css我觉得优势真的不大,而且说到扩展性,很多新的浏览器对div+css支持的相当差!不信你就用稍微复杂一点的样式测试一下,随便找个除ie火狐之外的浏览器看看 --------------------编程问答-------------------- DIV无序
table有序
各有各的好处 --------------------编程问答-------------------- 就是各有各得好处,div+css页面美观,开发成本高。
                  table 简单 有时候解决不了问题  --------------------编程问答-------------------- div 所需的html脚本比table少,页面文件大小要小,扩展好,有利于搜索引擎
table 开发起来快

总体来说,div要好 --------------------编程问答-------------------- div + css布局比较多变,table 便于罗列数据,各有优劣吧。 --------------------编程问答--------------------
引用 1 楼 wangjun8868 的回复:
div + css
兼容性好
扩展好
缺点:开发成本高

既然兼容性好,何来开发成本高?

总之,不排斥任何一种布局方法。根据情况吧。

对于做后台系统的来说,讲究的是功能的实现。追求代码的时髦是次要的。 --------------------编程问答-------------------- table用来布局的唯一好处是兼容版本陈旧浏览器 --------------------编程问答-------------------- div 是一边加载一边显示,而且开发成本相对高,花费时间比较多,有些浏览器兼容上有问题
table 加载完成再显示
一般table用来显示数据


--------------------编程问答-------------------- 说div有些浏览器兼容上有问题那是因为你功夫不过关....功夫差table也会有问题...... --------------------编程问答--------------------  顶,还是支持DIV+CSS   毕竞灵活性能好........... --------------------编程问答-------------------- div +CSS 显示效果强。。。效率稍高。。。。但无序
Table 显示效果差。。。。但有序。 --------------------编程问答-------------------- 各有所长,个人观点,DIV+css要好 --------------------编程问答-------------------- 正在看这个东西,真的没兴趣 --------------------编程问答-------------------- 如果要你切一个腾讯的首页的版,8小时之内要的话,你用什么方法 --------------------编程问答-------------------- 有时我想,PHOTOSHOP所切成的HTML真的不能用吗,其实有时为了效率是可以考虑的
--------------------编程问答-------------------- 一、 TABLE方式
优点:
1、简单易用:比较适合入门级的用户操作,用户可直接利用Dreamweaver(以下简写为“DW”)工具栏插入表格,设置长宽、对齐方式、属性等。
2、所见即所得:当用户插入一个TABLE的时候就可立即看到效果。
3、可读性好:语句编写较为简便,主要代码就是<TABLE></TABLE>、<TR></TR>、<TD></TD>等语句。
4.开发速度较快:新建网站时,从DW中直接拖入TABLE比编写DIV要快速很多。
5.兼容性较强:TABLE设计由来已久,得到浏览器的广泛支持,故显示效果很好,不会出现错位情况。
缺点:
1、代码冗余,<TABLE><TR><TD><TD></TR></TABLE>这是构成一个表格的最基本元素(此为一行一列的表格),相对<DIV></DIV>编写来说,代码繁多。
2、网页打开速度较慢:后台代码太多,导致网站打开速度慢。

二、 DIV+CSS方式
优点:
1. 标准化的页面结构:DIV+CSS是行业标准,是WEB发展的趋势。
2、代码简洁:<DIV></DIV>较TABLE来说代码精简许多。
3、页面浏览速度较快: 对于同一个页面视觉效果,采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。
4、页面布局灵活:DIV+CSS使得页面布局方便操作灵活,改版时只需改CSS样式即可实现页面重新布局,而不用改动程序,从而降低了网站改版的成本。页面效果丰富,包括视觉效果和用户体验比如拖拉。
缺点:
1、可观性差:用户在编辑的时候并不能立即看到编辑效果,需要预览才可看到。
2、操作繁琐:相对于入门级的用户或是对代码不是很了解的人来说,操作起来很是麻烦。
3、兼容性较差:DIV+CSS设计的网站在IE浏览器里面正常显示,到火狐浏览器(FireFox )中有可能面目全非,故设计时需要把不同浏览器样式都考虑进去。
--------------------编程问答-------------------- table用来显示数据很方便的,像这图不是说用div+css不能实现,而是实现的成本有点高。 --------------------编程问答-------------------- table是用来做数据呈现而不是页面布局
div+css才是页面布局 --------------------编程问答-------------------- 各有各的好处 --------------------编程问答--------------------
引用楼主 zhongyuanxincheng 的回复:
昨天面试考官问我最新流行的div + css 和 table布局的优缺点?

有一种流行说法是DIV +CSS有利用引擎搜索,理由是标签代码少.
这都是一种自我安慰,google/百度从来没这样说过.谁看到过大牌搜索引擎的有这样的说明?请共享一下.

个人觉得:DIV+CSS在有些场合下会显得比较灵活.至于兼容性,相对于TABLE来说是较差,而不是兼容性好.
大家常常被CSS的不同浏览器兼容性搞得焦头乱额的.
table实用可靠,界面说一就是一.会忠实地表现出你的意图.
一般不会出现用DIV导致的界面支离破碎情况.
只是table不流行了,不够潮流.
就好比现在 "学习雷锋"没人响应,"超男超女"人气爆高
你说是雷锋好还是超女好

当然,DIV也有自身的优点.两者的应用场合有交集,但并不完全重合.

--------------------编程问答--------------------
引用 1 楼 wangjun8868 的回复:
div + css
兼容性好
扩展好 
缺点:开发成本高


不太赞同第一点 --------------------编程问答-------------------- 个人感觉用CSS+div布局美观,时尚,容易修改,也就是 可扩展性强. --------------------编程问答--------------------
引用 28 楼 wwfgu00ing 的回复:
各有各的好处

还真是这样的,不同的角度去看待两者的使用 --------------------编程问答-------------------- 叫你考官去百度搜下,呵呵。 --------------------编程问答-------------------- div+css在布局上占优势,而taable在数据呈现上占优势;
div+css运用起来较table灵活;
div+css代码量较table少,毕竟table中含<tr><td>等标签,一旦添加表格,有得添加很多代码,繁琐;
对于统计方面,table更直观,一目了然;
当然也可以用table于页面布局上,但是很大一个不方便就是要写很大块类似重复的代码;
具体情况具体分析吧,只要目的可以达到,效率够得上,一切就ok啦! --------------------编程问答--------------------
引用 27 楼 ltcszk 的回复:
table是用来做数据呈现而不是页面布局
div+css才是页面布局


最莫名其妙的就是这个了。“数据呈现”不是“布局”,那么也就是说如果给你TABLE你就不能布局了?咄咄怪事。

随便引用一篇文章(我并没有对其内容有特别的偏好!):http://www.cnblogs.com/cathsfz/archive/2007/04/09/706336.html

TABLE就是表格,因此它就是专业用来表达表格的!而DIV只是表达数据,真正的布局是CSS而不是DIV。

TABLE中也能很好地使用CSS,比如你可以先加载内容,然后才动态设置其css class,这样就能让TABLE内容迅速显示出来。

另外,以前的IE浏览器有个令人诟病的毛病,当它无法决定TD的宽、高的绝对数之前它不会显示TD,于是TABLE的加载虽然很快但是显示内容的速度反而会延迟(因此我们往往需要通过写死TD的宽度和高度来优化TABLE)。不知道现在有没有了,因为现在的网络、浏览器都太快了,真正影响显示的还是整体的技术,这就好像一些人一个劲地想让c#程序员都放弃它而重新使用c++一样。 --------------------编程问答-------------------- 或者我们能说白了,一种是表格自动排版布局,一种是随手涂鸦(用计算出来的坐标来手动安排位置),说不上哪一种就算是布局而另外的就不是布局。就是方便程度不同而已。

绝对坐标,对于喜欢编程序的人有时候更低级,也就更灵活一些。然后相反地,这个能力被js框架包装,于是用户直接调用js框架的布局描述语句而不是手写死坐标位置,这个时候就不要奢谈什么TABLE与CSS布局的区别,因为用户使直接使用TABLE与直接使用js框架布局的区别。比如说这样
   <ul id="navlist">
        <li><a href="#">One</a></li>
        <li><a href="#">Two</a></li>
        <li><a href="#">Three</a></li>
        <li><a href="#">Four</a></li>
        <li><a href="#">Five</a></li>
        <li><a href="#">Six</a></li>
    </ul>
       $(document).ready(function () {
            $('#navlist').css({ 'display': 'inline', 'list-style': 'none' });
            $('#navlist > li').css({ 'float': 'left', 'width': '60px', 'height': '60px' });
            function SetA() {
                $('#navlist > li > a').css({ 'width': '50px', 'height': '50px', 'padding': '5px', 'display': 'block', 'color': '#fff', 'text-decoration': 'none',
                    'font-size': '8.5pt', 'line-height': '50px', 'text-align': 'center', 'border-right': '1px solid #fff', 'border-left': '1px solid #fff',
                    'border-top': '5px solid #fff', 'border-bottom': '5px solid #fff', 'background': '#003663'
                });
            }
            SetA();
            $('#navlist > li > a').hover(function () {
                $(this).css({ 'font-size': '10.5pt', 'border-top': '5px solid #004a80',
                    'border-bottom': '5px solid #004a80', 'background': '#004a80', 'font-size': '9pt', 'font-weight': 'bold'
                })
            }, SetA);
        });
不用仔细看这个代码,它只是说明一种用代码来动态进行布局的编程风格而已,它不具有很好的说明性,但是喜欢炫耀编程技术或者赶最近2年时髦的人肯定喜爱这种写法。 --------------------编程问答-------------------- 学习,我刚上班,是说为什么美工给我的页面都没table呢,很多地方都不能很好把握样式 --------------------编程问答-------------------- 实际上,css甚至动态css代码用多了,用不了2、3年也很快就腻歪了。

这种东西理应在10年前就可以很完备地开发出来,但是只有最近2年才时髦,因为种东西维护困难,不是真正地高效地用ide、借助鼠标、所见即所得地来开发界面的,它也不支持控件式地迅速拼装界面,它也就是填补当前web前端开发技术的贫乏的空白期而已。 --------------------编程问答-------------------- 如果想做出来的网站在各大浏览器上很好的兼容,最好用table --------------------编程问答-------------------- TABLE布局方式是专门以表格自动排版形式来布局的,给你画好了格子,你必须把内容放在TD内部。而CSS布局方式就好象只是一张白纸,你自己去涂鸦。我们可以用vb.net跟纯c(不依赖于mfc更不依赖于.net)做个对比,哪一个好?如果你不从结果出发,如果单纯比较谁计算小学生算术题更快,那么很容易得到错误答案。 --------------------编程问答-------------------- 各有所长,看需求啦 --------------------编程问答-------------------- 声明我不是高手,这两个星期学div布局,感觉div可以很好的把一个页面分成很多部分,这样结构就很清晰,当然SP1234大哥说的不是没有道理,分割之后还是靠css来控制样式。但是这就好比分层架构,最终还是靠那些代码来实现功能,为什么还要叫分层?还有感觉就是div比table更注重整体,但也是结合使用,至少登录那一块,还是div里面嵌套一个table。 --------------------编程问答--------------------   都是css在作怪
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,