html - 无法摆脱菜单中的列表项高度

标签 html css height html-lists

嗨,我只是想编写一个像 BBC 这样的网站,只是为了练习,同时我在 ulli 项中遇到错误,我不知道这个问题但是当我给它一个 border-right 时,边框比原始菜单的高度更高,我将我的代码粘贴在这里请检查并帮助我?? 简单来说,我希望列表项的边框等于“登录”和“ Logo ”div 的边框

    <html>
    <head>
    <title>BBC</title>
    <style>
    body{
    margin:0;
    font-family:Arial,Helvetica,freesans,sans-serif;

    }

    #top{
    width:100%;
    height:50px;

    }
    .keepcenter{
    width:1100px;
    margin: 0 auto;
    }
    #logo{
    border-right:1px solid #CCCCCC;
    float:left;
    padding-right:5px;
    height:100%;
    }
    #signin{
    font-weight:bold;
    font-size:0.9em;
    border-right:1px solid #CCCCCC;
    width:200px;
    height:100%;
    float:left;
    }
    #signin img{
    position:relative;
    top:5px;
    margin-left:15px;
    }

    #signin p{
        display:inline;
        position:relative;
        top:1px;
        padding-left:5px;
    }
    #menutop{
    float:left; 
    }
    #menutop ul{
    list-style-type:none;
    margin:0;
    padding:0;

    }
    #menutop li{
    padding:15px 20px 10px 20px;
    display:inline;
    font-weight:bold;
    font-size:0.9em;
    float:left;
    border-right:1px solid #CCCCCC;
    height:100%;

    }
    </style>
    </head>

   <body>
   <div id="container">
    <div id="top">

    <div class="keepcenter">

   <div id="logo">
   <img src="images/logo.jpg" />
   </div>
   <div id="signin">
   <img src="images/signicon.png" /><p>Sign In</p>
   </div>
   <div id="menutop">
   <ul>
   <li>Home</li>
   <li>Home</li>
   <li>Home</li>
   <li>Home</li>
   <li>Home</li>
   </ul>
   </div>

   </div>
</div>


</div>

</body>

</html>

最佳答案

只需从列表项中删除顶部和底部的填充。

body {
  margin: 0;
  font-family: Arial, Helvetica, freesans, sans-serif;
}
#top {
  width: 100%;
  height: 50px;
}
.keepcenter {
  width: 1100px;
  margin: 0 auto;
}
#logo {
  border-right: 1px solid #CCCCCC;
  float: left;
  padding-right: 5px;
  height: 100%;
}
#signin {
  font-weight: bold;
  font-size: 0.9em;
  border-right: 1px solid #CCCCCC;
  width: 200px;
  height: 100%;
  float: left;
}
#signin img {
  position: relative;
  top: 5px;
  margin-left: 15px;
}
#signin p {
  display: inline;
  position: relative;
  top: 1px;
  padding-left: 5px;
}
#menutop {
  float: left;
}
#menutop ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
#menutop li {
  padding: 0 20px;
  display: inline;
  font-weight: bold;
  font-size: 0.9em;
  float: left;
  border-right: 1px solid #CCCCCC;
  height: 100%;
}
<div id="container">
  <div id="top">
    <div class="keepcenter">
      <div id="logo">
        <img src="http://lorempixel.com/40/40" alt="BBC" />
      </div>
      <div id="signin">
        <img src="http://lorempixel.com/g/10/10" alt="" />
        <p>Sign In</p>
      </div>
      <div id="menutop">
        <ul>
          <li>Home</li>
          <li>Home</li>
          <li>Home</li>
          <li>Home</li>
          <li>Home</li>
        </ul>
      </div>
    </div>
  </div>
</div>

虽然列表是 float 的,这意味着它的基线不一定与#signin div 相同。在我的代码片段中,div 中的 img 足够小,不会产生任何影响,但根据其大小,div 的基线(以及 p 的位置)将向下移动。您可能需要在 ul 中对此进行补偿。

关于html - 无法摆脱菜单中的列表项高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706081/

相关文章:

javascript - 页面上有多种表单,最少的验证功能

html - css 100 % 高度错误

php - 在 iframe html 标签中使用 php

html - 是否有可能使背景 :cover; effect for <video></video> tag and center it?

css - 仅使用 CSS 将文本分成偶数行长度

列表中 anchor 上的 CSS 背景,由于图像元素符号而无法拉伸(stretch)以覆盖整个 li

html - 外部 div 不能有自己的高度

html - css 中间 div 滚动和 100% 高度

javascript - 如何使特定链接不受其当前默认样式的影响?

css - 插入全显示高度的 bootstrap3 行?