所以在过去的几个月里,我自学了网页设计。当然还有很多东西要学,但我觉得我已经牢牢掌握了我目前所知道的。我最近想知道的一件事是 div 的必要性,尤其是当我最终使用绝对定位时。例如,我最近编写了以下代码:
<section id="header-section">
<header class="main-header">
<h1>The Voice of Jeremy Donahue</h1>
<nav class="main-navigation">
<ul>
<li><a href="http://www.thevoiceofjeremydonahue.com/about">About</a></li>
<li><a href="http://www.thevoiceofjeremydonahue.com/contact">Contact</a></li>
</ul>
</nav>
</header>
</section>
当我在很多页面上阅读源代码时,在我看来,事情通常是这样分组的,或者非常相似。当然,我的假设是,作为一名设计师,您拥有艺术许可,并且可以按照您的意愿安排您的页面,同时牢记用户体验并保持您的代码语义。
然而,很多时候我最终使用 {position: absolute} 属性来定位我的元素,而完全忽略了包含的 div。所以我的想法是,如果我有一个 H1,并且我打算按照我所描述的那样定位它,那么为什么还要费心把它放在一个 div 中呢?对于我以这种方式定位的任何其他元素也是如此。为什么不将它们作为独立元素?我想知道出于语义原因这样做是否仍然很好,或者是否只是认为以这种方式对事物进行分组的最佳实践。我希望我已经清楚地描述了这一点。
为了尽可能地进行描述,这里是我迄今为止应用到这个页面的这个特定迭代的 css。它还没有接近完成(显然),但是您可以看到我已应用于此标题部分的一些绝对定位。
/*global*/
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
html {
height: 100%;
}
body {
background: rgb(234, 234, 234);
}
body, .container {
min-height: 100%;
}
.container {
background: white;
margin-top: 6.25em;
}
header {
position: absolute;
top: 0.625rem;
background: transparent;
text-align: center;
}
ul {
list-style-type: none;
}
a {
text-decoration: none;
}
/*typography*/
h1 {
font-family: 'Parisienne', cursive;
font-size: 2.5rem;
color: #2713e7;
position: relative;
top: 1.25rem;
}
/*lists*/
.main-navigation {
position: relative;
top: 2.5rem;
}
.main-navigation li {
position: absolute;
top: 10px;
display: inline-block;
margin-right: 10%;
font-family: 'Atomic Age', cursive;
font-size: 1.5625rem;
}
/*borders*/
.main-navigation {
border: 2px solid black;
}
.main-navigation li {
display: inline-block;
border: 2px solid black;
}