作者derekhsu (华丽的天下无双)
看板Soft_Job
标题Re: [闲聊] 环境令人无力orz
时间Mon Mar 29 13:48:07 2010
※ 引述《wa120 (哇120)》之铭言:
: 不好意思... 我想问个问题
: 所谓的纯css排版是全部都用<div>包住,然後用css改变<div>标签的位置吗?
: 那允不允许
: <div><table></table><div> (table是纯排版用的)
: 这样的排版方式以及
: <div><table><table></table></table></div> (巢状table排版)
: 我知道一般的css排版是用巢状<div>像是
: <div>
: <div></div>
: <div></div>
: ...
: </div>
: 但是我知道他不能解决所有的问题,在文字显示版面要求严谨的时候
: <div>底下还是要用巢状<table>来做版面调整
: 其实我对css排版还是有些意见,也许是自己功力及认知不够
: 像是说看到别人position设到absolute我都会干瞧
: 因为在不同的解析度,以及浏览器,非常有机会会跑掉
: 而table虽然会降低易读性,但是他在设定width以及height使用百分比非常有效率
: 而且css在IE 6/7/8 有些小细节 每个长相都不太一样 (害我debug超久)
: 提出个人浅见,其实我看现在很多网页都还是在用table排版
: 而table乱中有序的排版方式,其实也没有那麽难以接受吧...
: 其实很多程式语言的GUI介面感觉表达的比table还抽象...
: 对此提出一些个人看法...
你这个问题其实已经有一点离题了。
对於网页设计,第一个要有的概念叫做Layout。
Layout目的是,将一个完整的页面因为不同的需要切割成不同的版块。
例如Header、Sidebar、Footer、Content、NavigationBar等等的。
你会希望Layout达到以下的几个目的:
1.便於调整。
2.跨越浏览器。
3.可以各自独立不至於影响其他block。
W3C中,Table是用来作资料的显示整理用,而不是用来Layout,Layout经常会出现
多层次的巢状结构,而<table>标签非常因为这样的巢状结构,使得在调整得时候
造成版面混乱。
另外,跨越浏览器也是一个大问题,基本上<div>在不同浏览器上面的行为可以用
css来控制,但是<table>标签在不同浏览器上,本身就存在着差异,光是换行的
状况,在不同浏览器就会有不同的样子。
因为用<table>标签切版,所以当上层或下层的table属性改变得时候,经常会影响到
其他的部份。要知道一件事,版面设计的时候,设计师可以用<table>很爽快,但是
交到程式设计师手上,在套入不同data的时候,<table>的layout会是设计师的恶梦。
当设计师用dreamweaver或frontpage的<table>作Layout做得很愉快的时候,却没有想
到对Programmer而言,这些<table>的Layout在写程式时却是恶梦。
不能只动CSS改变版型,一堆烂烂的<tr><td></td></tr>...甚至是colspan, rowspan,
在做Template时都是恶梦,要知道,设计师交给程式设计师的,只是样板,也就是说,
程式设计师还是必须要切割成不同的block分别储存,不管你是用Smarty或是Tiles.
不懂CSS Layout的Designer在我们的眼中,没有资格称得上Web Designer。
不了解按照标准去定义CSS Styles档案的Web Designer,只能算是不入流的Web Designer。
这样的人只是给Programmer造成负担而已。Programmer不应该浪费这些宝贵的时间帮
不入流的Web Designer擦屁股。
说难听一点,若我是Programmer,我不想跟这种会降低我的生产力,连Layout都要我
来写CSS的设计师合作,最近遇到一位外包的设计师,水准相当不错,CSS档案看起来
很有国外Wordpress theme的风格,跟这样的设计师合作,不但彼此都很愉快,工作
也能更快完成。
要解决跨浏览器的问题?不难,请爱用CSS Framework如Blueprint,作为一个进阶的Web
Designer,不能只靠着工具,Blueprint等得CSS Framework已经是对Designer跟Programmer
最友善的Tools。
有心的话去看一下Facebook跟Plurk的页面,有几个<table>标签。
以现代的技术,用<table>来作Browser Layout是「错」的。在任何的情况下,都是错的。
当然每个人能力不同,不是每个人都可以搞到像Facebook那麽威,只是错多错少而已。
--
所有我的作品,请到.....
~四十八个德瑞克~
http://blog.derekhsu.homeip.net
马皇本纪:
http://blog.derekhsu.homeip.net/2009/08/821
上官先生传:
http://blog.derekhsu.homeip.net/2009/08/825
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.64.191.30
※ 编辑: derekhsu 来自: 61.64.191.30 (03/29 13:54)
1F:推 superpai:推 03/29 13:58
2F:推 lovepc:分析的不错 推一个~ 03/29 14:09
3F:→ ppaass:ㄟ...一点小意见,个人觉得要用 <div> 还是要用 <table> 应 03/29 16:24
4F:→ ppaass:该要看网页设计的目标是要「适应」甚麽程度的萤幕解析度差 03/29 16:25
5F:→ ppaass:异啦,有些版型还真的得用 <table> 才能达到需求的。 :p 03/29 16:26
6F:→ ppaass:比起 div/table,我比较怕的是滥用阴影和羽化的设计师 Orz 03/29 16:27
7F:推 superpai:什麽需求这麽困难?提出来给我解解看当娱乐 03/29 16:28
8F:→ ppaass:比如说版型要可以随画面伸展,但是左右或上下又要留固定距 03/29 16:53
9F:→ ppaass:离,或是里面某些栏位依定要保留相当宽度,所以我不但用了 03/29 16:54
10F:→ ppaass:table 还塞了好几张透明的 gif 来撑住格子。 :p 03/29 16:54
11F:→ netburst:等等看css3.... 03/29 16:55
12F:推 xmimicx:有遇过p大的情况需要适量的TABLE来称画面 03/29 16:58
14F:推 superpai:听起来px和%交互运用就好了 晚点写一下 03/29 17:00
15F:推 JYHuang:上面xmimicx说的撑画面..我就在写後台遇到过... 03/29 17:03
16F:→ JYHuang:不过IE6下的table width=100%..他是照萤幕,而不是父元件 03/29 17:04
17F:→ JYHuang:最後..我叫提示不要用IE6 XD 03/29 17:04
18F:→ xmimicx:DIV和TABLE二种我都试过 似乎TABLE比较方便快速 03/29 17:05
19F:→ xmimicx:table width应该可以用inherit 03/29 17:09
20F:→ ppaass:还有一种情况是客户会指定说文字到达边缘以後是要换行还是 03/29 17:12
21F:→ ppaass:要把格子撑开。 Orz 03/29 17:12
22F:→ xmimicx:那就要用word-break了 03/29 17:20
23F:→ xmimicx:但FX没用 03/29 17:23
25F:→ xmimicx:s大重点好像不是左右固定 重点在於三栏高度要一致@@ 03/29 17:56
26F:推 luciferii:我一直在怀疑,只用table但没法改用CSS的"模组",是不是 03/29 18:00
27F:→ luciferii:都用 Word 在写网页? XD 03/29 18:00
28F:推 superpai:我加上三栏等高了 等内容最多的那个 03/29 18:05
29F:推 xmimicx:那如果下面又有一个DIV clear:both 不就定位到1000px去了? 03/29 18:09
30F:推 superpai:问题是你为什麽需要clear:both 03/29 18:13
31F:→ superpai:我下面加了 footer有clear:both在最下面 03/29 18:13
32F:推 xmimicx:就是我可能要一个footer 03/29 18:13
33F:→ superpai:加罗 03/29 18:14
34F:推 xmimicx:高手 但好像还要HACK IE 03/29 18:16
35F:推 superpai:现在没IE 不过这基本上不是问题就是 03/29 18:17
36F:→ xmimicx:问题是这种padding:1000的方法真的比TABLE来的好? 03/29 18:19
37F:推 superpai:我也很少用到padding1000 因为用背景图案有到效果就够了 03/29 18:20
38F:→ netburst:超过padding还是会炸掉 设个十亿好了 03/29 18:22
40F:→ TsaiCF:且符合万恶的 2A 标准的话,可以提供参考吗!? >< 03/29 20:49
42F:→ petertc:好不好看就不一定了xd 03/30 12:16
43F:推 TsaiCF:<div style="width:340px;clear:both;"> 它让你过!?? 03/30 18:08
44F:→ TsaiCF:没有被 规范三 3.5:H203004 驳回吗!? :( 03/30 18:09
45F:→ TsaiCF:可能我们在不同的时间点碰上不同的审查人员吧.. (叹) 03/30 18:21
46F:推 petertc:这样应该合法吧,T大也是这样用 03/30 18:26
47F:→ petertc:<div class="spotlighttext" align=left style="width:358 03/30 18:26
49F:→ petertc:可能是table之类的不行 03/30 18:27
50F:推 superpai:我猜 CSS设定的程式扫不到 审查人员也很难去看到 03/30 18:49
51F:→ derekhsu:无障碍这东西真是.....神经病 03/30 20:36
52F:→ yauhh:你说得很奇怪,一下子table造成设计师的恶梦,一下子table造成 03/30 23:13
53F:→ yauhh:programmer的恶梦... 而且programmer会写点CSS控制就代表 03/30 23:14
54F:→ yauhh:很会设计了,很会排版了? 真怪 03/30 23:14
55F:→ yauhh:真厉害的programmer是会写简便的排版控制框架给设计师使用, 03/30 23:16
56F:→ yauhh:而不是明明不懂设计却抱怨设计师不懂程式效率. 03/30 23:17
57F:→ TonyQ:根据我做网站的经验,table对programmer的负担在於对source 03/31 08:55
58F:→ TonyQ:的复杂化,设计是在画面的设计,不过程式因为需要了解资料的 03/31 08:56
59F:→ TonyQ:位置跟一些条列资料的部份需要找出来套回圈。就算有全职设计 03/31 08:57
60F:→ TonyQ:pg不可避免还是会需要对页面结构做一些操作。 03/31 08:57
61F:→ derekhsu:y连我的文章都看不懂,没什麽好讨论的... 03/31 22:23
62F:→ derekhsu:table的版形很容易因为实际Data套进去以後,就乱掉了 03/31 22:24
63F:→ derekhsu:巢状Table会让Dom复杂化,降低调整的弹性与DOM效能 03/31 22:26
64F:推 wa120:不禁想让我修改一下现有的东西Orz 03/31 22:37
65F:推 sorianotw:p大 你说的那些问题css都有办法解决 04/05 10:15