我在这个网站上看到了很多答案,主张使用表格进行设计,因为使用CSS和Divs无法完成...实际上它可以完成有点聪明才智。
真正无法做到的事情的例子是什么?
我遇到的唯一一个是在另一个盒子里垂直对齐一个盒子。
*编辑:我想我最感兴趣的是使用CSS2无法实现的布局
答案 0 :(得分:4)
这个问题的答案取决于许多方面:
并排内容是CSS的问题。您可以使用浮动,但如果宽度的总和超过容器的宽度,尾端浮动将下降到下方。在这方面,表格更有能力,因为它们会在可能的情况下挤压色谱柱,使细胞不会分裂成新的行。
你提到的垂直居中。在纯CSS中,它很简单,有表格,硬盘或不可能(取决于容器和物品的兼容性和固定或可变高度)。
您可能也指悬停内容。 IE6仅支持锚点上的:hover伪元素。该浏览器需要Javascript:类似悬停的行为。
基本上,如果您需要做的事情可以用纯CSS完成,那就去做吧。如果没有,如果你不得不使用桌子,尽管所有的反桌狂热分子(他们都是狂热分子)惊恐地跳来跳去,也不要感到难过。
如果你想要一个相对简单的例子检查Can you do this HTML layout without using tables?。这是一个概念上简单的布局问题,对表格来说是微不足道的,而且还没有人发布满足纯CSS要求的解决方案。
答案 1 :(得分:4)
块或文本的垂直对齐。
弹性容器伸展到其内容的宽度。
有几个“行”具有相同的结构,其中“单元格”在所有行的宽度上同步。
让几个“列”同步它们的高度(最长文本块的长度)。
这些是甚至基本设计概念中出现的非常基本的设计师需求。
如果考虑到IE8,可以用CSS解决单元格/列问题,但是直到它的广泛传播(即使IE7在2 - 3年内没有达到预期的市场份额)也需要很多年。
至于“聪明才智”,在软件开发中并不是那么好。几个月后你的同事和你自己的伎俩将无法理解,通常会建立起每个人都害怕接触或决心完全重构/重写的代码库。
记住KISS原则。这样做最简单的方法就是越可靠。
答案 2 :(得分:2)
“......实际上可以做到 有点聪明才智。“
在CSS中很难做到“避免需要聪明才智”。
)
答案 3 :(得分:2)
表应该用于表格数据!我们应该总是尝试使用正确的HTML来标记给定的内容。所以不仅仅是div(span,ul,li,dl,strong,em ......等)这样可以确保内容不仅正确,而且正确(适用于SEO和accessibile原因)
通过不使用表格,我们可以将内容从一种外观转换为下一种内容,而无需更改HTML,请参阅Zen Garden
目前虽然使用当前浏览器可以完成类似布局的CSS表,但是很棘手。有一些技术可以解决许多问题,天气虽然global wrappers通过背景图像完成,或positioning fixes ...其中两篇文章也指使用Javascript逐步增强页面以获取这些您可能需要的其他课程。
当然,您可以使用一些XSL作为中间件,以帮助在CMS处理时进行格式化。
答案 4 :(得分:1)
表中的备用行颜色,无需手动(或借助脚本)为每行指定备用样式。
确定一个元素相对于另一个元素的位置。例如,你不能使用CSS来确定一个盒子在一堆使用相同类的浮动盒子中的位置。例如,知道一个盒子是第一个浮动的盒子,还是第二个盒子,或者最后一个盒子。
处理寡妇。寡妇是一个在段落末尾悬挂的单词,即单个单词开始一个段落的最后一行。这是印刷设计的一个重要原因,但在网络世界中很难控制。
答案 5 :(得分:1)
浮动多个列中的元素,其中每个单元格中的文本可以扩展元素的高度,但如果发生这种情况,则必须按下整行。
--- --- ---
|AAA| |BBB| |CCC|
--- --- ---
--- --- ---
|AAA| |BBB| |CCC|
| | |BBB| | |
--- --- ---
--- --- ---
|AAA| |BBB| |CCC|
--- --- ---
答案 6 :(得分:0)
图像无法放置在具有对齐属性的单元格的正中心。可以通过一些强力来完成。
答案 7 :(得分:0)
听起来很明显但你不能用CSS改变内容,它只能用于造型。
答案 8 :(得分:0)
仍然使用表格进行设计的人应该按照现行标准进行处理。
继续讨论主题,随着CSS3的出现,很难想到CSS无法做到的事情。图像处理,内容操作,高级选择器,这一切都是可能的。但是,如果我必须说出一件事,那就是使用CSS,你不能(也不会)能够旋转元素。
答案 9 :(得分:0)
我无法使用透明度在所有页面上创建可变高度的文本区域。我相信这是不可能的。我最终只是写了一个快速的javascript函数来重置页面加载后的高度,以使布局工作。请参阅http://peterchristopher.com,了解文本区域透明度的含义。
答案 10 :(得分:-3)
CSS绝对没有表可以做到。
似乎有一种常见的误解,即HTML& CSS应该很简单。事实并非如此。如果您发现自己想要使用表格,那么您的CSS技能需要改进而不是技术(尽管该技术显然有很多漏洞可以改善)。