我正在创建一个网站,并且遇到一些标题/导航问题。我已将网站居中(工作正常),并且标题从页面应在页面的起始位置开始,但是当我在标题中添加边框底部时,标题应从页面的起始位置开始,但继续到页面右侧。我的导航栏(它是一个浮点数:右)也从网页的最右侧开始。 HTML和CSS。我知道这可能很明显,但是我很茫然。
html,
body {
padding: 0;
margin: 0;
}
html {
background-color: #FFF;
max-width: 100%;
}
body {
margin-left: auto;
margin-right: auto;
width: 1024px;
background-color: #FFF;
font-family: 'Merriweather', serif;
font-family: 'Playfair Display', serif;
}
header {
height: 6em;
border-bottom: 1px solid #00529C;
position: fixed;
display: block;
overflow: hidden;
width: 100% !important;
z-index: 1;
}
nav {
max-width: 50%;
}
.hdrmenu ul {
margin-right: 1em;
padding-top: 1.5em;
}
.hdrmenu li {
float: left;
list-style: none;
/*margin: auto;*/
}
.hdrmenu li a {
text-align: center;
text-decoration: none;
padding: 0em 2em;
/*list-style: none;*/
overflow: hidden;
color: #00529C;
}
<header class="bg transition">
<nav class="hdrmenu">
<a href="index.html"><img src="_images/1280_AcYxdW7KNtA0.png" class="logo"></a>
<ul style="float: right;">
<li><a href="ardvark.html" class="slide-left-right">Ardvark</a></li>
<li><a href="beaver.html" class="slide-left-right">Beaver</a></li>
<li><a href="cougar.html" class="slide-left-right">Cougar</a></li>
<li><a href="dinosaur.html" class="slide-left-right">Dinosaur</a></li>
<li><a href="elephant.html" class="slide-left-right">Elephant</a></li>
</ul>
</nav>
</header>
<section class="mainContent">
<h1>Animals</h1>
<p>Blah, Blah</p>
</section>
答案 0 :(得分:0)
您在这里:
html,
body {
padding: 0;
margin: 0;
}
body {
font-family: 'Merriweather', serif;
font-family: 'Playfair Display', serif;
}
header,
.mainContent {
width: 1024px;
}
.mainContent {
margin: 120px auto 0;
}
header {
height: 6em;
border-bottom: 1px solid #00529C;
position: fixed;
z-index: 1;
background-color: #FFFFFF;
margin: 0 50%;
transform: translateX(-50%);
top: 0;
left: 0;
}
.hdrmenu ul {
margin-right: 1em;
padding-top: 1.5em;
}
.hdrmenu li {
float: left;
list-style: none;
}
.hdrmenu li a {
text-align: center;
text-decoration: none;
padding: 0em 2em;
overflow: hidden;
color: #00529C;
}
答案 1 :(得分:0)
要修复边框,您需要确保<header>
元素不会占用太多空间。问题在于它具有position: fixed
,因此width
将相对于其当前position
适用。我假设您希望它集中在页面的三分之二处。这可以通过简单地从元素中减去右侧空间(使用width: calc(100% / 3 * 2)
)来实现。并且不要像您的示例中那样为此设置!important
规则; !important
通常被认为是不良做法。您应该改为阅读specificity。
您还将希望删除在<html>
和<body>
上设置的规则,并使用名为.container
的类或类似的类。这些是文档标签,实际上不应应用定位规则。将规则转移到.container
之后,不要使用硬编码的width: 1024px
,而应使用 max-width
允许元素在必要时缩小。>
然后,如果要将导航栏链接到float
到right
,则需要从max-width: 50%
中删除nav
。
这可以在下面看到:
html,
body {
padding: 0;
margin: 0;
}
.container {
margin-left: auto;
margin-right: auto;
max-width: calc(100% / 3 * 2);
background-color: #FFF;
font-family: 'Merriweather', serif;
font-family: 'Playfair Display', serif;
}
header {
height: 6em;
border-bottom: 1px solid #00529C;
position: fixed;
display: block;
overflow: hidden;
width: calc(100% / 3 * 2);
z-index: 1;
}
.hdrmenu ul {
margin-right: 1em;
padding-top: 1.5em;
}
.hdrmenu li {
float: left;
list-style: none;
/*margin: auto;*/
}
.hdrmenu li a {
text-align: center;
text-decoration: none;
padding: 0em 2em;
/*list-style: none;*/
overflow: hidden;
color: #00529C;
}
<div class="container">
<header class="bg transition">
<nav class="hdrmenu">
<a href="index.html"><img src="_images/1280_AcYxdW7KNtA0.png" class="logo"></a>
<ul style="float: right;">
<li><a href="ardvark.html" class="slide-left-right">Ardvark</a></li>
<li><a href="beaver.html" class="slide-left-right">Beaver</a></li>
<li><a href="cougar.html" class="slide-left-right">Cougar</a></li>
<li><a href="dinosaur.html" class="slide-left-right">Dinosaur</a></li>
<li><a href="elephant.html" class="slide-left-right">Elephant</a></li>
</ul>
</nav>
</header>
<section class="mainContent">
<h1>Animals</h1>
<p>Blah, Blah</p>
</section>
</div>
请注意,您可能还希望media query切换到移动设备上的“更宽广”的视图。
答案 2 :(得分:0)
如果要的话,您可以在此处检查代码段
https://jsfiddle.net/qu9hg84o/7/
正如@ obsidian-age所说,问题是position: fixed
。 position:fixed
将使内容从正常流中移出,因此主体不能包含标题,因此边界将一直流到结尾。因为对于position: fixed
,容器将是viewport
。检查position和containing_block的位置和包含的块。
此外,您可能要删除导航上的width: 50%
,它将导航项笨拙地定位在页面中间。
而且,如果这也是您所期望的,那么删除列表项float: left
上的li
会堆积在您右边的列表项。