html - 允许基于 "overflow: hidden"的导航中的图像溢出

标签 html css overflow hidden

我正在尝试重建 Batman Nav从左对齐到居中的 Logo 图像。我添加了一个额外的 li 类:

            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
            <li class="logo_nav"><a href="/"><img src="image-url" /></a></li>
            <li><a href="#">Link 3</a></li>
            <li><a href="#">Link 4</a></li>

如果屏幕尺寸减小,还有第二个 Logo 类,用于在左侧对齐 Logo :

            <div class="logo_left"><a href="/"><img src="image-url" /></a></div>

我的问题:主类中的 overflow: hidden; 不允许在居中图像上溢出。当我从主类中删除 overflow: hidden; 并将异常添加到导航类时,整个设计在较小的屏幕上会爆炸。

有没有人对我的方法有想法或知道获得我需要的结果的更好方法?

在这里查看我的笔:http://codepen.io/akoba/pen/qqEZdX

// Sticky Header
$(window).scroll(function() {

  if ($(window).scrollTop() > 100) {
    $('.main').addClass('sticky');
  } else {
    $('.main').removeClass('sticky');
  }
});

// Mobile Navigation
$('.mobile-toggle').click(function() {
  if ($('.main').hasClass('open-nav')) {
    $('.main').removeClass('open-nav');
  } else {
    $('.main').addClass('open-nav');
  }
});

$('.main li a').click(function() {
  if ($('.main').hasClass('open-nav')) {
    $('.navigation').removeClass('open-nav');
    $('.main').removeClass('open-nav');
  }
});

// Navigation Scroll - ljepo radi materem
$('nav a').click(function(event) {
  var id = $(this).attr("href");
  var offset = 70;
  var target = $(id).offset().top - offset;
  $('html, body').animate({
    scrollTop: target
  }, 500);
  event.preventDefault();
});
.main {
  position: fixed;
  max-height: 85px;
  z-index: 999;
  width: 100%;
  padding-top: 17px;
  background: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  opacity: 0;
  top: -100px;
  padding-bottom: 6px;
  overflow: hidden;
}
@media only screen and (max-width: 766px) {
  .main {
    padding-top: 25px;
  }
}
.open-nav {
  max-height: 400px !important;
}
.open-nav .mobile-toggle {
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.sticky {
  background-color: rgba(255, 255, 255, 0.93);
  opacity: 1;
  top: 0;
  border-bottom: 1px solid gainsboro;
}
.logo_left img {
  max-width: 100px;
  vertical-align: middle;
  overflow: visible;
  margin-left: 20px;
  display: none;
  float: left;
}
.logo_nav img {
  max-width: 130px;
  vertical-align: top;
  overflow: visible !important;
  margin-top: -10px;
}
@media only screen and (max-width: 766px) {
  .logo_left img {
    display: block;
    overflow: visible;
  }
  .logo_nav {
    display: none;
  }
}
nav {
  width: 100%;
}
@media only screen and (max-width: 766px) {
  nav {
    width: 100%;
  }
}
nav ul {
  list-style: none;
  text-align: center;
}
@media only screen and (max-width: 766px) {
  nav ul {
    padding-top: 10px;
    margin-bottom: 22px;
    float: left;
    text-align: center;
    width: 100%;
  }
}
nav ul li {
  display: inline-block;
  margin-left: 35px;
  margin-top: 10px;
  line-height: 1.5;
}
@media only screen and (max-width: 766px) {
  nav ul li {
    width: 100%;
    padding: 7px 0;
    margin: 0;
  }
}
nav ul a {
  font-size: 12px;
}
.mobile-toggle {
  display: none;
  cursor: pointer;
  font-size: 20px;
  right: 22px;
  position: absolute;
  top: -10px;
  width: 30px;
  -webkit-transition: all 200ms ease-in;
  -moz-transition: all 200ms ease-in;
  transition: all 200ms ease-in;
}
@media only screen and (max-width: 766px) {
  .mobile-toggle {
    display: block;
  }
}
.mobile-toggle span {
  width: 30px;
  height: 4px;
  margin-bottom: 6px;
  border-radius: 1000px;
  display: block;
}
.row {
  width: 100%;
  max-width: 940px;
  margin: 0 auto;
  position: relative;
  padding: 0 2%;
}
@-webkit-keyframes scroll {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
  }
}
* {
  box-sizing: border-box;
}
@keyframes scroll {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<header class="main">
  <div class="logo_left">
    <a href="/">
      <img src="https://c.marketingtechblog.com/wp-content/uploads/2010/06/example-logo-660x330.png" />
    </a>
  </div>
  <div class="row">
    <div class="mobile-toggle">
      <span></span>
      <span></span>
      <span></span>
    </div>

    <nav>
      <ul>
        <li><a href="#">Link 1</a>
        </li>
        <li><a href="#">Link 2</a>
        </li>
        <li class="logo_nav">
          <a href="/">
            <img src="https://c.marketingtechblog.com/wp-content/uploads/2010/06/example-logo-660x330.png" />
          </a>
        </li>
        <li><a href="#">Link 3</a>
        </li>
        <li><a href="#">Link 4</a>
        </li>
      </ul>
    </nav>
  </div>
</header>
<div>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
  sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
  Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos
  et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
  <br />
  <br />Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
  nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
  <br />
  <br />Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla
  facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
  <br />
  <br />Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
  erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
  <br />
  <br />Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
  <br />
  <br />At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
  dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam
  aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
  amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
  <br />
  <br />Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
  dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
  no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
  et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus.
  <br />
  <br />Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
  sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
  Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos
  et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
  <br />
  <br />Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
  nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
  ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril
  delenit augue duis dolore te feugait nulla facilisi.
  <br />
  <br />Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
  erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo.
</div>

最佳答案

不要在 .main 上添加 overflow: hidden,而是将其添加到媒体查询中。

.main {
  position: fixed;
  max-height: 85px;
  z-index: 999;
  width: 100%;
  padding-top: 17px;
  background: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  opacity: 0;
  top: -100px;
  padding-bottom: 6px;
  overflow: hidden; /*remove from here*/
}

@media only screen and (max-width: 766px) {
  .main {
    padding-top: 25px;
    overflow: hidden; /*add here*/
  }
}

关于html - 允许基于 "overflow: hidden"的导航中的图像溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443382/

相关文章:

html - 动态宽度元素上的文本溢出省略号

html - 在容器外放置一个页脚 div

html - 修复菜单中的像素

html - 跨度底部的文本

html - 'transform3d' 不适用于位置 : fixed children

css - Bootstrap 3 CSS 表格半宽

jquery - 表格内的目标复选框

javascript - 更改标签值时如何更改标签的背景颜色

overflow - 全宽页面中的窗口溢出

css - 溢出时保持div彼此相邻 float