【发布时间】:2013-04-26 09:48:42
【问题描述】:
我最近遇到了这段代码,它使用一种我以前从未使用过的方式来定位页面上的 3 列。我在下面的 GROUP 2 代码中包含了这个方法。我自己使用 GROUP 1 来完成同样的任务。现在我知道编写诸如 CSS 和 HTML 之类的标记,就像编程一样,主要取决于程序员——只要效率等不是一个因素。但是在这种情况下,你们认为 GROUP 1 与 GROUP 2 的优缺点是什么?
例如,由于 GROUP 2 使用负边距技术,如果 #Left2 div 位于 #Middle2 和 #Right2 之前,它将位于 #Header2 之后,甚至在页面上不可见。就个人而言,我认为 GROUP 2 方法较弱且不太健壮,因为某些浏览器可能由于负边距而无法正确定位 div。那么,你们觉得呢?
第 2 组代码的作者显然使用了 Zoe Mickley Gillenwater 的一本书,名为 Flexible Web Design Creating Liquid and Elastic Layouts with CSS。 所以我想知道 GROUP 2 的编码是否是不好的做法,为什么它会出现在设计书籍中?如果这不是坏习惯,为什么不呢?
<html>
<head>
<title>Layout Test</title>
<link rel="Stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="Header1">GROUP 1</div>
<div id="Left1">
Left
</div>
<div id="Middle1">
Middle
<br />
Middle
<br />
Middle
<br />
Middle
<br />
Middle
</div>
<div id="Right1">
Right
</div>
<br class="Clear" />
<div id="Footer1">Footer</div>
<br /><br /><br />
<div id="Header2">GROUP 2</div>
<div id="Wrapper">
<div id="Middle2">
Middle
<br />
Middle
<br />
Middle
<br />
Middle
<br />
Middle
</div>
</div>
<div id="Right2">
Right
</div>
<div id="Left2">
Left
</div>
<br class="Clear" />
<div id="Footer2">Footer</div>
</body>
</html>
还有 CSS:
body { background-color: Gray; }
#Header1 { background-color: Lime; }
#Left1 { background-color: Fuchsia; width: 25%; float: left; }
#Middle1 { background-color: Orange; width: 50%; float: left; }
#Right1 { background-color: Purple; width: 25%; float: left; }
#Footer1 { background-color: Yellow; }
.Clear { clear: both; }
#Header2 { background-color: Lime; }
#Left2 { background-color: Fuchsia; width: 25%; float: left; margin-left: -100%; }
#Middle2 { background-color: Orange; margin: 0 25%; }
#Right2 { background-color: Purple; width: 25%; float: left; margin-left: -25%; }
#Footer2 { background-color: Yellow; }
#Wrapper { width: 100%; float: left; }
它们最后看起来都一样:
【问题讨论】:
标签: css html stylesheet