我正在尝试将
HTML5 / CSS3作为学习过程,但我正在努力创建一个导航栏,用于指向我页面中其他部分的链接.
我从找到的教程中调整了代码并且它可以工作,但只有在1080p的分辨率下查看时,如果宽度较小,则条形图包裹在其他线条上.
我从找到的教程中调整了代码并且它可以工作,但只有在1080p的分辨率下查看时,如果宽度较小,则条形图包裹在其他线条上.
无论用户使用什么分辨率,我如何确保导航栏只占用一行(缩小到适合)?
这是导航栏的CSS代码.请注意,在导航下我已将宽度设置为33.3%并填充相同以使按钮居中.我不知道这是不是原因.
nav { display:block; position: absolute; left:0; white-space:nowrap; margin: 0 auto; width: 33.3%; background-color:#ff6600; padding-left: 33.3%; padding-right: 33.3%; } nav ul { margin: 0 auto; width: 100%; list-style: none; display: inline; white-space:nowrap; } nav ul li { float: left; position: relative; white-space:nowrap; } nav ul li a { display: block; margin: 0 auto; width: 150px; font-size: 16px; font-family: century gothic; line-height: 44px; text-align: center; text-decoration: none; color:#575757; white-space:nowrap; } nav ul ul { width: 200px; position:absolute; top:-99999px; left:0; opacity: 0; -webkit-transition: opacity .4s ease-in-out; -moz-transition: opacity .4s ease-in-out; -o-transition: opacity .4s ease-in-out; transition: opacity .4s ease-in-out; z-index:497; background:#333; padding: 2px; border:1px solid #444; border-top:none; Box-shadow:#111 0 3px 4px; } nav ul ul li a { display: block; width: 200px; text-align: left; padding-left: 3px; font-size: 14px; } nav ul li:hover>ul{ opacity: 1; position:absolute; top:98%; left:0; } nav ul li a:hover { color: #fff; background-color: #cc3300 } nav ul li.selected a { color: #fff; background-color: #cc3300; }
解决方法
你几乎正确地做到了.你的CSS的问题是white-space:nowrap;仅适用于内联元素 – 但您使用的是浮点数.即使你设置display:inline,浮动元素也会变成块级别;属性到这样的元素(它不会被应用).所以 – 如果你用display:inline-block替换你的浮动; – 你的白色空间属性将工作:)
这里可以看到内联块和空白区域的实例:http://jsfiddle.net/skip405/wzgcH/
至于你的定心方法 – 有一个更好的解决方案. (您可以删除填充并设置适当的宽度)特别是如果您使用内联块.只需设置text-align:center;在他们的父母 – 你会让它集中.