html - 页面缩放时如何避免logo div和menu div重叠?

标签 html css flexbox

我在 header-bottom 类 div 中有两个名为 .logo 和 .menu 类的 div 类。

<header class="header-bottom">
<div class="logo">
<a href="#"><img src="images/logo.png" alt="REVELATION" /></a>
</div>
<nav class="menu">
    <ul>
        <li class="current"><a href="#">homepage</a></li>
        <li><a href="#">site demo</a></li>
        <li><a href="#">full width</a></li>
        <li><a href="#">portfolio</a></li>
        <li><a href="#">gallery</a></li>
        <li><a href="#">dropdown</a></li>
    </ul>
</nav>

现在的问题是,当我更改浏览器窗口或缩放时,.logo 和 .menu 类的内容相互重叠。如果我在 Logo 中设置宽度,那么问题就解决了,但我想要另一种简单的方法来打洞整个 .logo 类 div,即使没有内容。 box-sizing, positioning 可以解决问题,但如何解决?我不知道。 enter image description here

enter image description here

*{
    margin:0 ;
    padding:0;
}

/* hedaer bottom*/
.header-bottom 
{
    padding-top:40px;
    overflow:hidden;
}
.header-bottom .logo
{
    width:15%;
    float:left;
    display: inline-block;
}

.header-bottom .menu
{
    width:85%;
    float:left;     
}
.header-bottom .menu ul
{
    list-style:none;
    float:right;
    margin-top:15px;
    padding-right:12px;
}
.header-bottom .menu ul li
{
    float:left; 
    padding-bottom:10px;
    padding-right:10px;
    border-bottom:1px solid #ededed;
}
.header-bottom .menu ul li:last-child
{
    padding-right:0px;
}

.header-bottom .menu ul li a
{
    text-decoration:none;
    font-family:Georgia Regular;
    font-size:13px;
    font-weight:normal;
    color:#55415f;
    text-transform:uppercase;
    /* border-bottom:2px solid transparent;*/
}
.header-bottom .menu ul li a:hover
{
    padding-bottom:10px;
    border-bottom:2px solid #55415f;
}
.header-bottom .menu .current a
{
    border-bottom:2px solid #55415f;
    padding-bottom:10px;
}

最佳答案

这里是使用 Flexbox 的开始。

.header-bottom 上设置display: flex 将使.logo.menu保持并排,如表格单元格.menu 上的flex-grow: 1 设置使。 menu 取左边没有被.logo

占用的空间

最后,通过在 .header-bottom 上设置 align-items: center,您不需要顶部/底部填充来使 .logo 居中.menualign-items 为您完成,类似于 vertical-align: middle内联元素。

* {
  margin: 0;
  padding: 0;
}


/* hedaer bottom*/

.header-bottom {
  padding-top: 40px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.header-bottom .logo {
  padding-right:10px;
}

.header-bottom .menu {
  flex-grow: 1;
}

.header-bottom .menu ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
}

.header-bottom .menu ul li {
  border-bottom: 1px solid #ededed;
  padding-right:10px;
}

.header-bottom .menu ul li:last-child {
}

.header-bottom .menu ul li a {
  text-decoration: none;
  font-family: Georgia Regular;
  font-size: 13px;
  font-weight: normal;
  color: #55415f;
  text-transform: uppercase;
  /* border-bottom:2px solid transparent;*/
}

.header-bottom .menu ul li a:hover {
  border-bottom: 2px solid #55415f;
}

.header-bottom .menu .current a {
  border-bottom: 2px solid #55415f;
}
<header class="header-bottom">
  <div class="logo">
    <a href="#"><img src="images/logo.png" alt="REVELATION" /></a>
  </div>
  <nav class="menu">
    <ul>
      <li class="current"><a href="#">homepage</a></li>
      <li><a href="#">site demo</a></li>
      <li><a href="#">full width</a></li>
      <li><a href="#">portfolio</a></li>
      <li><a href="#">gallery</a></li>
      <li><a href="#">dropdown</a></li>
    </ul>
  </nav>

关于html - 页面缩放时如何避免logo div和menu div重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45821496/

相关文章:

html - 在段落中间创建一段动态文本

java - 我如何在 java 中使用 swing 在 jeditorpane 中的超链接上添加悬停效果

html - <table> 中的 Flex CSS 属性在 IE 和 Firefox 上不起作用

html - 调整 Flex div 图像的大小而不是裁剪

javascript - jquery - 所有复选框值的总和*它们唯一的文本框值

jquery - 找到子图像宽度并将其应用于包含父div jquery

php - 获取图像包含不再下载

html - 网站容器不会包装?

javascript - 当鼠标悬停在可拖动的父级上时,如何使文本选择在子级中可见?

html - 嵌套的 flexbox 网格不扩展