专业网页设计师是否喜欢这些方法中的任何一种?
绘制网站时,Web 浏览器是否首选这些方法?
这一切都只是个人喜好吗?
我还缺少其他技术吗?
注意:以上问题与设计多列布局有关
http://jsfiddle.net/CDe6a/
这是我在创建列布局时经常使用的方法,它似乎工作得很好。父母确实会自行崩溃,因此您只需要clear:both;事后记住即可。 我刚刚 发现的另一个问题是无法垂直对齐文本。
clear:both;
这似乎纠正了折叠父项的问题,但增加了空格。
http://jsfiddle.net/CDe6a/1/
从 html 中删除空格似乎是解决此问题的最简单方法,但如果您对 html 真的很挑剔,则不需要。
http://jsfiddle.net/CDe6a/2/
似乎表现得一模一样display:inline;。
display:inline;
http://jsfiddle.net/CDe6a/3/
http://jsfiddle.net/CDe6a/4/
完美运行。
我确定我错过了很多东西,比如某些会破坏布局的异常,但display:table- cell;似乎效果最好,我想我会开始替换float:left;,因为我似乎总是把clear:both;. 我在网上阅读了很多关于这方面的文章和博客,但没有一个给出明确的答案,告诉我在布局我的网站时应该使用什么。
display:table- cell;
float:left;
在您询问的选项中:
float
如果您使用选择器清除浮动,则可能不需要用于清除的附加标记:after,但如果您想支持 IE6 或 IE7,这不是一个选项。
:after
display:inline; 这不应该用于布局,除了 IE6/7,它display:inline; zoom:1是对inline-block.
display:inline; zoom:1
inline-block
display:inline-block; 这是我最喜欢的选择。它在所有浏览器中运行良好且一致,但需要注意的是 IE6/7,它支持某些元素。但是请参阅上面的hacky解决方案来解决这个问题。
display:inline-block;
另一个重要的警告inline- block是,由于内联方面,元素之间的空白被视为与文本单词之间的空白相同,因此您可以在元素之间出现间隙。有解决方法,但没有一个是理想的。(最好的就是元素之间没有任何空格)
inline- block
display:table-cell;
table- cell
table
table-row
您可能错过的其他技术? 是的。
由于您说这是用于多列布局,因此您可能想了解CSS Columns 功能。然而,它不是最受支持的功能(即使在 IE9 中,IE 也不支持,并且所有其他浏览器都需要供应商前缀),因此您可能不想使用它。但这是另一种选择,你确实问过。
还有 CSS FlexBox 功能,旨在让您的文本在框之间流动。这是一个令人兴奋的功能,它允许一些复杂的布局,但这仍然在开发中——参见http://html5please.com/#flexbox
希望有帮助。