如何使用 HTML 和 CSS 将菜单放在页面的整个宽度上?

Posted

技术标签:

【中文标题】如何使用 HTML 和 CSS 将菜单放在页面的整个宽度上?【英文标题】:How to put a menu over the full width of the page using HTML and CSS? 【发布时间】:2016-09-23 00:47:34 【问题描述】:

我刚开始使用网络语言(html、CSS),我正在创建我的第一个页面。我找到了一个模板 html 水平菜单,我想将其应用于我的页面。不幸的是,我没有来修改它,因为他适用于我页面的所有宽度。

我在网上摸索着想知道怎么做,我认为它应该与width = 100%的属性相关联。

我认为解决方案应该很简单,但即使观看 *** 关于类似问题的帖子我也没有发现。当我应用在我的代码中找到的解决方案时,它不起作用。

代码如下:

body

 background-color: black; /* Le fond de la page sera noir */


#nav

padding:0;


#nav li

display:inline;


#nav li a

font-family:Arial;
font-size:12px;
text-decoration: none;
float:left;
padding:10px;
background-color: #333333;
color:#ffffff;
border-bottom:1px;
border-bottom-color:#000000;
border-bottom-style:solid;


#nav li a:hover

background-color:#9B1C26;
padding-bottom:12px;
border-bottom:2px;
border-bottom-color:#000000;
border-bottom-style:solid;
margin:-1px;
<html>
<head>
    <meta charset="utf-8" />
	<link rel="stylesheet" href="menuStyle.css" />
    <title>Antoine</title>
</head>
<body>
   
	<ul id="nav" style="clear:both;">
			<li><a href="#">Home</a></li>
			<li><a href="#">About</a></li>
			<li><a href="#">Services</a></li>
			<li><a href="#">Products</a></li>
			<li><a href="#">Sitemap</a></li>
			<li><a href="#">Help</a></li>
			<li><a href="#">Contact Us</a></li>
	</ul>
</body>
</html>

【问题讨论】:

【参考方案1】:

您可以将您的ul#nav ID)显示为inline-block,然后设置width: 100%. 此外,您应该添加background-color 以查看效果。

body

 background-color: black; /* Le fond de la page sera noir */


#nav

padding:0;
display: inline-block;
width: 100%;
background-color: #333333;


#nav li

display:inline;


#nav li a

font-family:Arial;
font-size:12px;
text-decoration: none;
float:left;
padding:10px;
background-color: #333333;
color:#ffffff;
border-bottom:1px;
border-bottom-color:#000000;
border-bottom-style:solid;


#nav li a:hover

background-color:#9B1C26;
padding-bottom:12px;
border-bottom:2px;
border-bottom-color:#000000;
border-bottom-style:solid;
margin:-1px;
<html>
<head>
    <meta charset="utf-8" />
	<link rel="stylesheet" href="menuStyle.css" />
    <title>Antoine</title>
</head>
<body>
   
	<ul id="nav" style="clear:both;">
			<li><a href="#">Home</a></li>
			<li><a href="#">About</a></li>
			<li><a href="#">Services</a></li>
			<li><a href="#">Products</a></li>
			<li><a href="#">Sitemap</a></li>
			<li><a href="#">Help</a></li>
			<li><a href="#">Contact Us</a></li>
	</ul>
</body>
</html>

【讨论】:

效果很好,也感谢您的回复速度和质量。【参考方案2】:

如果您希望菜单占页面宽度的 100%,我相信您应该添加此内容。

#nav

padding:0;
width: 100%;
float:left;
background-color: #333333;

background-color: #333333 - 添加只是为了让它更明显。

【讨论】:

非常感谢您的回复速度和质量。【参考方案3】:

 body 
   background-color: white;
   /* Le fond de la page sera noir */
 
 #nav 
   /* reset unordered list to not use default list styles */
   list-style: none;
   padding: 0;
   margin: 0;
   /* add display flex with space around and vertical centering...also stop wrap */
   display: flex;
   justify-content: space-around;
   align-items: center;
   flex-wrap: no-wrap;
   /* color needed on background also to look consistent */
   background-color: #333333;
 
 #nav li a 
   font-family: Arial;
   font-size: 12px;
   text-decoration: none;
   float: left;
   padding: 10px;
   color: #ffffff;
   border-bottom: 2px;
   border-bottom-color: transparent;
   border-bottom-style: solid;
 
 #nav li a:hover 
   /* avoid changing size or position of things on hover...this can cause content to jump */
   background-color: #9B1C26;
   border-bottom-color: #000000;
 
<ul id="nav" style="clear:both;">
  <li><a href="#">Home</a>
  </li>
  <li><a href="#">About</a>
  </li>
  <li><a href="#">Services</a>
  </li>
  <li><a href="#">Products</a>
  </li>
  <li><a href="#">Sitemap</a>
  </li>
  <li><a href="#">Help</a>
  </li>
  <li><a href="#">Contact Us</a>
  </li>
</ul>

这只是您可以做的一个示例,当然不是黄金标准,但会让您思考各种可能性。希望这可以帮助。对 CSS 进行了评论并进行了更改。

【讨论】:

谢谢你,你帮助我完成了我接下来想做的事情。【参考方案4】:

尝试将菜单列表放入这样的 DIV 中:

body

 background-color: black; /* Le fond de la page sera noir */

#navdiv

	padding 0;
	background-color: #333333;
	width: 100vw;
	height: 34px;

#navul

padding:0;
width: 100vW;


#navul li

display:inline;


#navul li a

font-family:Arial;
font-size:12px;
text-decoration: none;
float:left;
padding:10px;
background-color: #333333;
color:#ffffff;
border-bottom:1px;
border-bottom-color:#000000;
border-bottom-style:solid;


#navul li a:hover

background-color:#9B1C26;
padding-bottom:12px;
border-bottom:2px;
border-bottom-color:#000000;
border-bottom-style:solid;
margin:-1px;
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="menuStyle.css" />
    <title>Antoine</title>
</head>
<body>

    <div id="navdiv">
	<ul id="navul" style="clear:both;">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Services</a></li>
            <li><a href="#">Products</a></li>
            <li><a href="#">Sitemap</a></li>
            <li><a href="#">Help</a></li>
            <li><a href="#">Contact Us</a></li>
    </ul>
	</div>
</body>
</html>

【讨论】:

【参考方案5】:

我建议您学习和使用 bootstrap,因为它让这一切变得简单。在您的情况下,这非常简单,您将在 navbar 之外创建 2 个 &lt;div&gt; 元素。一个来设置宽度 100% 并应用您的背景,然后另一个来使您的代码居中。

我对你的问题的回答:

<style>
.full_width
    width: 100%;

.centerlize
    width:1024px;
    margin: 20px auto;

</style>
<body>
    <div class="full_width">
        <div class="centerlize">
            <ul id="nav" style="clear:both;">
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Services</a></li>
                <li><a href="#">Products</a></li>
                <li><a href="#">Sitemap</a></li>
                <li><a href="#">Help</a></li>
                <li><a href="#">Contact Us</a></li>
            </ul>
        </div>
    </div>
</body>

【讨论】:

不要建议学习编写 HTML 和 CSS 代码的人使用 Bootstrap - 这只会限制他们的学习。将它用于生产取决于您,用它来学习 HTML 和 CSS 不是

以上是关于如何使用 HTML 和 CSS 将菜单放在页面的整个宽度上?的主要内容,如果未能解决你的问题,请参考以下文章

一旦我使用CSS和HTML设计了导航栏 - 如何将HTML代码放在一个位置,以便在每个窗口中显示? [重复]

如何通过html和css完成下拉菜单的制作

关于css二级菜单显示, 看了一个例子, 鼠标放在一级菜单时候, 二级菜单就显示出来了

如何提高WEB的性能?

使用html和css实现元素下拉框的方法

一个页面中的 HTML 菜单栏以包含在其他页面中