[英]fixed div not taking full width on one page only
更新:页面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(自定义正文类)无效。
也就是说,当使用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>
而不是使用的width: 100vw
上#topnav
只需使用width: 100%
此外,如果为一个属性定义两个值,则最后一个属性将覆盖第一个属性,因此不要这样做。
删除width: 100vw
和width: 100%
来自.topnav
因为id topnav已经优先于类topnav,因此.topnav
应用的宽度将永远不会应用。
此外,从身体中删除所有样式。 左侧和右侧不适用于body
标签,因为它的位置是静态的。 此外,默认情况下,正文需要100%宽度,您只需要删除浏览器在body
标签上应用的默认边距:
body {
margin: 0;
}
另外,从HTML
标签中删除所有样式的原因与上面提到的body
标签相同。
图像幻灯片显示的右箭头会导致导航菜单的位置被抛出。 右箭头当前编码为在iPhone屏幕上显示为-5%
)并且css包括position:absolute
。 目前还没有媒体查询来处理iPad大小的设备调整大小,因此在手机上,包含幻灯片+箭头的main
div正在影响导航菜单; 这导致了负面的“转变”。
通过使用媒体查询在移动设备上进一步向下移动包含箭头的div,可以解决该问题。
希望这可以帮助
在导航栏错误的页面上有一个很大的间隙,在2 <head>
标签内添加一些带有<style>
标签的内联样式并尝试margin-top: -150px;
如果它工作但不足以增加负像素数量。
实际上这个问题是因为带有类 .top-bar
的元素。
因为.topnav
有
.topnav {
position: fixed;
}
你需要为你的.top-bar
提供一些position
风格
.top-bar {
position: fixed;
}
要么
.top-bar {
position: absolute;
}
然后你可以处理你的文本的display
属性,我认为这是网站的标题或标志 。
这是我修改的屏幕截图。 带有所需更改的屏幕截图
我希望这可以帮助您解决问题。
要使用宽度,您需要创建元素块或内联块例如:
.topnav {
display: inline-block !important;
left: 0;
right: 0;
position: fixed;
top: 0;
width: 100vw !important;
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;
}
你可以通过两种方式固定第一种方式是技巧方式而第二种方式是正确方式。 第一种方式,
第二种方式,
第二种方式解决方案::
.main-header{
min-width: 95%;
}
.form{
width:95%;
}
这不足以调试此问题。 您提供的代码在Codepen中工作正常(topnav是全宽)。 还有一些影响您的布局的额外样式表或标记,如果没有,则无法回答此问题。
我注意到的唯一一件事就是topnav没有left: 0;
样式,导致左侧有一个小的空格,但我不确定这是否是你所指的问题,因为它比10%的差距要小得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.