我最近遇到了这段代码,它使用一种我以前从未使用过的方式在页面上定位 3 列。我已在下面的 GROUP 2 代码中包含此方法。我自己使用 GROUP 1 来完成相同的任务。现在我知道编写诸如 CSS 和 HTML 之类的标记,就像编程一样,主要取决于程序员 - 只要效率等不是一个因素。但是在这种情况下,你们认为 GROUP 1 与 GROUP 2 的优缺点是什么?
例如,由于 GROUP 2 使用负边距技术,如果 #Left2 div 位于 #Middle2 和 #Right2 之前,它将位于 #Header2 之后,甚至在页面上不可见。就个人而言,我认为 GROUP 2 方法较弱且不太健壮,因为某些浏览器可能由于负边距而无法正确定位 div。那么,你们怎么看?
GROUP 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; }
它们最后看起来都一样: