Одним из преимуществ HTML 5 являются семантические теги, такие как <header>
, <nav>
и <main>
.
К сожалению, я не нашел способа их стилизовать, поэтому <nav>
идет вниз по левой части страницы, не без родительского <div>
, во всяком случае. Мне кажется, что такая <div>
портит семантику, и я не уверен, что это технически правильный HTML.
<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>
в порядке, я просто поблагодарю вас и продолжу ... хотя это все еще не выглядит для меня очень элегантно.