我在谷歌搜索网上找到了这个
并在此处查看文章:http://www.thatcssguy.com/limit-your-divs/
在这里查看他的最终布局:http://www.nodivs.com/
文章
中的一些引用1
当我限制使用我的所有div 主要浏览器包括IE6 和IE7将几乎渲染网站 完美。或者只需要很少的修复 需要的。
2
它很神奇,但证明了div和表格 布局
是必要的
我们应该尝试制作这样的网站吗?
答案 0 :(得分:9)
这篇文章就如何避免“divitis”提出了许多好处,即div
元素的使用,其中会有一个语义上更合适的元素。但是这个:
当我限制使用我的div时,包括IE6和IE7在内的所有主要浏览器都会使网站几乎完美呈现。或者只需要很少的修复。
是完全的背叛。 DIV是完全有效的容器元素,在很多情况下都有意义。仅在存在语义上更合适的元素的情况下(例如,在菜单中的无序列表中为ul
,对于标题为h1
h2
h3
,对于有序列表为ol
)使用div
是错误的,因为使用table
进行布局通常是错误的。
您提到的网站作者所做的是公然滥用其他元素,例如dl
(定义列表)作为div
元素的代理人,这些内容与滥用div
s一样愚蠢作为ul
ol
等的代理人。查看the W3C's definition of ul, ol, and dl lists并自己考虑这些元素是否应该像作者使用它们那样进行布局任务。
据我所知,不使用div
以某种方式使网站呈现更好的跨浏览器的暗示完全是骗人的。如果我错了,请纠正我,但我不能想到一个这样的例子。
答案 1 :(得分:3)
他在元素上使用样式而不是自动将它们包装在div中是有意义的:
<ul class="navList">
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
而不是
<div class="navList">
<ul>
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
</div>
当他使用绝对定位用h2覆盖h1来创建他的标题时,他失去了我。
可维护性与清洁代码一样重要。当我看到名为“标题”的div时,我知道那是什么,而不是:
<h1 class="border"><a href="#" id="logo">Welcome to NoDivs.com</a></h1>
<h2 class="border">Contact NoDivs.com <span>1-888-1485</span></h2>
他并没有实践他所宣扬的。任何使用“spacer”div在div之间添加填充的人都不应该谈论divitis的危险。 :)
答案 2 :(得分:1)
你引用了这篇文章,但在评论中,作者自己说:
不使用DIV往往会使网站呈现更可靠的跨浏览器。您正在删除代码中可能是浏览器源无法正确显示的元素。删除变量,你会发现问题较少。
所以:切换标题的div不会改变渲染的可靠性(文章暗示,但作者并不是这个意思),但删除不必要的嵌套divs元素会有所帮助,但作为一个好的HTML布局你应该总是这样做那;)
请记住,您应该尽可能地阻止Divitis,并且使用语义正确的标记有助于您的SEO工作和可访问性以及业力和东西。
修改强>
好的,众所周知,divitis很糟糕。我们来看看文章的标记:
<body>
<div id="page">
<div id="header">
<h1 id=logo">(some stuff)</h1>
<ul id="nav1">navi</ul>
</div>
<div id="columns">
(Content)
</div>
<div class="box6">
<div class="top"></div>
<div class="spacer">
<div class="col3">
</div>
<div class="col3">
</div>
<div class="col3 last">
</div>
<br class="fix">
</div>
<div class="bot"></div>
</div>
<div id="footer">
(Footer Content)
</div>
</div>
(Script tags)
</body>
让我们看一下:<div id="page">
将页面置于margin: 0 auto;
的中心位置。将此样式应用于<body>
,您可以删除一个div。 <div class="box6">
的全部内容并不完全清除div,而且绝对没有必要。剩下的就是:亲自看看。