我有一个带def f(n):
if n>0:
print(1/n)
else:
raise Exception
try:
f(0)
except Exception:
print("Error!")
的正文和导航栏。导航栏有一个max-width: 1200px;
。向下滚动时导航栏本身消失,向上滚动时再次出现。我刚被要求让顶部边框延伸到完整视口宽度,从而覆盖其包含div的border-top: 1em solid blue;
。如果我向主体添加顶部边框并调整导航栏填充以覆盖顶部导航栏,则向上滚动时会因添加的填充而产生间隙。该网站已经上线,我不想打破所有其他样式。有没有办法扩展导航栏的顶部边框而不必更改任何其他内容?
答案 0 :(得分:2)
正如@Hungerstar所提到的,伪元素在这里是最佳的。
我更喜欢一个涉及100vw宽度伪元素的CSS3解决方案,然后用transform
翻译回来。
这消除了身体上overflow
的需要。
ul, li {
margin: 0;
padding: 0;
display: inline-block;
}
body {
margin: 5px 0 0;
}
header {
position: relative;
margin: 0 auto;
max-width: 400px;
border: 1px dashed #6DA76D;
}
header:after {
content: ' ';
position: absolute;
top: 0;
left: 50%;
height: 5px;
transform:translate(-50%,-100%);
width:100vw;
background: pink;
}
<header>
<nav>
<ul>
<li>Nav One</li>
<li>Nav Two</li>
</ul>
</nav>
</header>
答案 1 :(得分:0)
您可以使用伪元素并将其拉伸到父元素之外。
<header>
<nav>
<ul>
<li>Nav One</li>
<li>Nav Two</li>
</ul>
</nav>
</header>
ul, li {
margin: 0;
padding: 0;
display: inline-block;
}
body {
margin: 5px 0 0;
overflow: hidden;
}
header {
position: relative;
margin: 0 auto;
max-width: 400px;
border: 1px dashed #6DA76D;
}
header:after {
content: ' ';
position: absolute;
top: -5px;
right: -99em;
left: -99em;
border-top: 5px solid skyblue;
}
这里我们将伪元素绝对定位到父元素。我们通过应用负边距将其拉出父母之外。这些负边距非常大,会导致水平滚动条。你必须使用overflow: hidden;
来摆脱它。我在我的示例中的<body>
上执行了此操作。
演示JSFiddle。