【发布时间】:2019-04-30 21:21:08
【问题描述】:
更新:页面 URL 是 https://nuclearterrortoday.org/test/pledge.php - 如果您在移动设备上检查,您会注意到导航栏没有占据页面的整个宽度,尽管检查员说宽度是 100vw
样式表(按层叠顺序 - 某些元素可能会在 forms.css 中被覆盖):
https://nuclearterrortoday.org/test/style.css
https://nuclearterrortoday.org/test/forms.css
我有一个网站,其中包含整个网站的标准导航栏。在一页上,导航栏只覆盖了大约 90% 的屏幕宽度,在右侧留下了一个空隙。有一个额外的样式表对受影响的页面进行样式设置,但不会影响任何导航元素或页面本身(即更改正文的宽度)。重置 HTML、body、topnav 和 .pledge-bg(自定义 body 类)无效。
也就是说当使用js为移动菜单更改.topnav的子元素的显示时,.topnav的宽度会按预期更改为屏幕的宽度。
在每隔一个页面上,.topnav 占据屏幕宽度的 100%。包含标头的 HTML 结构是相同的。
CSS:
/*left:0 and right: 0 per @Magnus Eriksson*/
var myLinks = document.getElementById("myLinks");
if (myLinks.style.display !== "block") {
myLinks.style.display = "block";
} else if (myLinks.style.display == "block") {
myLinks.style.display = "none";
}
html {
left: 0;
right: 0;
width: 100%;
width: 100vw;
}
body {
left: 0;
right: 0;
width: 100%;
width: 100vw;
}
.topnav {
left: 0;
right: 0;
position: fixed;
top: 0;
width: 100%;
width: 100vw;
height: 10%;
height: 10vh;
background-color: rgba(169, 169, 169, 0.75);
color: white;
font-size: 5rem;
padding-bottom: 0;
margin-bottom: 0;
overflow: hidden;
}
#topnav {
left: 0;
right: 0;
width: 100%;
width: 100vw;
}
.topnav #myLinks {
left: 0;
right: 0;
z-index: 999;
display: none;
height: 100%;
height: 100vh;
width: 100%;
width: 100vw;
z-index: 11;
background-color: rgba(148, 181, 201, 0.9);
color: white;
}
.pledge-bg {
left: 0;
right: 0;
background: url(img/ocean-nuke.jpg) no-repeat center center fixed;
background-color: rgba(0, 0, 0, 0.5);
z-index: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
width: 100%;
width: 100vw;
}
<script src="https://nuclearterrortoday.org/test/swap.js"></script>
<body>
<!-- <?php include "../../inc/header.php" ?>
-->
<!-- Top Navigation Menu (header.php:)-->
<div class="topnav" id="topnav">
<div id="myLinks">
menu
</div>
</div>
<div class="main">
<div class="main-header">
<h1 id="vision">Miracles Have Been Created in The Past</h1>
<p id="main1">10/10/1963 - We no longer test nukes in the ocean or atmosphere!</p>
<img onclick="animateSlide('left')" class="control" id="lControl" src="img/leftArrow.png">
<img onclick="animateSlide('right') " class="control" id="rControl" src="img/rightArrow.png">
</div>
</div>
</body>
【问题讨论】:
-
尝试设置
left: 0;和right: 0;而不是width,看看是否有任何改变。 -
只需删除宽度:100vw 它还包括滚动条宽度,因此问题
-
您的 HTML 表明您已将
.topnav包裹在<aside>中,您能告诉我们.aside的 CSS 样式吗?答案可能隐藏在那里。 -
aside 在这种情况下没有样式 - 我只是将它用作分隔代码的一种方式。也就是说,我删除了它,因为它不能帮助任何人回答这个问题。此外,还有很多未包含的 CSS 可能会影响页面上的某些内容,但不知道它是什么,我不想用 1,000 行来淹没这篇文章 - 我包括指向样式表也是如此
-
我假设您已经解决了这个问题,但我无法使用 Google Chrome 在我的 Mac 上复制您所描述的内容。我查看了您链接的网站,问题似乎不再存在