html - <nav> 页面左下方

标签 html css

HTML 5 的优势之一是像 <header> 这样的语义标签。 , <nav><main> .

不幸的是,我还没有找到一种方法来设置它们的样式,所以 <nav>在页面左侧向下,并非没有 parent <div> ,无论如何。在我看来,这样一个<div>搞乱了语义,我不确定它在技术上是否有效。

<header>My Page</header>
<div class="nav-main"> <!-- I don't like this -->
    <nav>
        <a href="/foo.html">Foo</a>
        <a href="/bar.html">Bar</a>
    </nav>
    <main>
        <h1>My Main Content</h1>
        <p>Blah.</p>
    </main>
</div>
<footer>ⓒ Not really copyright</footer>

CSS:

div.nav-main {
    display: flex;
}
nav {
    width: 10em;
}
nav a {
    display: block;
}

没有<div> 有没有干净的方法呢? ?

我不认为老派 float: left是一个解决方案,因为我不想要 <main>环绕<nav>如果它更高,我不想添加任意高度或其他技巧。我只想要 <main><nav>既是它们的自然高度又具有一致的宽度,并且对于 <footer>在两者之下。

否则,如果有人可以保证包装 <nav><main><div>没关系,我会感谢你并继续前进......虽然它对我来说仍然不是很优雅。

最佳答案

所以一个<div>是一个非语义元素,所以从技术上讲,你在这里有有效的 html。但我明白不想到处都是 div。您可以将 flex 放在 body 上,将页眉和页脚的宽度设置为 100%,这样它们就会在自己的行上。所以会是

body 
{
 display:flex;
 flex-flow: row wrap;
}
header, footer
{
 width:100%
}

希望对您有所帮助!

关于html - <nav> 页面左下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54281882/

相关文章:

php - "Registration-form"创建多个用户

Javascript 如何在用户尝试退出或刷新页面时触发函数

html - Bokeh 服务器加载静态 CSS 样式表

html - CSS - 显示 : table leaves whitespace

javascript - 使用 CSS 在单选按钮图像上显示覆盖

html - 如何通过CSS防止文本与按钮重叠

javascript - 减小窗口大小时收缩表格以防止滚动条

html - 使用 HTML 标记同级样式嵌套文本

javascript - .replace 在 Firefox 中不起作用?

javascript - 加载 CSS 和/或 JS 的 Django 问题