html – 点击下拉菜单按下内容

html – 点击下拉菜单按下内容,第1张

概述每当用户选择带有下拉菜单的链接时,我都会尝试下载我的内容.但是,单击时,下拉菜单会覆盖内容而不是将其向下推. 我尝试过使用position:relatives / position:absolute等来实现某种期望的结果,但没有这样的运气.我已经看到了与此问题相关的其他类似问题,但它仍然没有帮助我. 任何帮助解决这个问题将不胜感激. HTML <body> <nav class="navbar 每当用户选择带有下拉菜单的链接时,我都会尝试下载我的内容.但是,单击时,下拉菜单会覆盖内容而不是将其向下推.

我尝试过使用position:relatives / position:absolute等来实现某种期望的结果,但没有这样的运气.我已经看到了与此问题相关的其他类似问题,但它仍然没有帮助我.

任何帮助解决这个问题将不胜感激.

HTML

<body> <nav >    <div >        <div >            <button type="button"  data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">                <span >Toggle Navigation</span>                <span ></span>                <span ></span>                <span ></span>            </button>            <a  href="#">            </a>        </div>        <div  ID="bs-example-navbar-collapse-1">            <ul  ID="nav">                <li ><a href="#">link</a></li>                <li ><a href="#">link</a></li>                <li ><a href="#">link</a></li>                <li >                    <a href="#"  data-toggle="dropdown" ID="menu-trigger">Drop-Down Menu<i ></i></a>                    <ul  ID="menu">                        <li >                            <a href="#" ><i ></i>Option</a>                        </li>                        <li >                            <a href="" ><i ></i>Option</a>                        </li>                    </ul>                </li>                <li ><a href="#">link</a></li>                <li ><a href="#">link</a></li>            </ul>        </div>    </div></nav><div  ></div>

CSS

body {          margin: 0;          padding: 0;          Font-family: "Helvetica","Arial",sans-serif;          Font-weight: 500;          Font-style: normal;          Font-size: 12px;          line-height: 1.5;        }        .navbar-default {          background-color: #ffffff;        }        .navbar {          min-height: 65px;          padding-top: 5px;          margin-bottom: 0px;          border-bottom: solID 2px #eee;        }        .navbar-header {          margin-top: -12px;        }        .navbar-brand {          padding-top: 0px !important;        }        /* for button placement*/        .navbar-toggle {          margin-top: 26px;        }        /*for collapsed navbar*/        .navbar-collapse {          margin-top: 12px;        }        .site-logo {          max-wIDth: 135px;          min-wIDth: 120px;        }        .navbar-default .navbar-nav > li > a {          text-transform: uppercase;          background-color: #ffffff !important;          color: #333333;        }        .navbar-default .navbar-nav > li > a:hover {          color: #3381d0;        }        .navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover {          background-color: #ffffff;          border-bottom: 2px solID #ff5d1c;          color: #ff5d1c;          bottom: -2px;        }        .nav>li {          position: static !important;        }        /* For navbar dropdown*/        .navbar .dropdown-menu {          min-wIDth:1349px;          wIDth: 100%;          height: 120px;          margin-top: 51px;          z-index:1;          left: 0;          text-align: center;          padding-right:10px;          position: absolute;          List-style-type:none;          border-top: 2px solID #ff5d1c;          border-bottom: 2px solID #333333;          border-right: #ffffff;          border-radius: 0;          Box-shadow: 0px 2px 8px rgba(0,0.1);          border-left: 0;          background-color: #337ab7;        }        .dropdown-menu {          padding-left:10px;          padding-right:10px;          position:relative;          List-style-type:none;        }        .navbar .dropdown-menu li {          margin:0;          padding:0;          display: inline-block;        }        .dropdown-menu > li > a {          color: #ffffff;          line-height: 75px;          padding: 3px;        }        .dropdown-menu > li > a:hover {          color: #333333 !important;        }        .dropdown-menu > li > a:hover {          color: #ffffff;          background-color: #337ab7;        }        .m-pub {          display: inline-block;          margin: 3px 40px 0;          Font-size: 13px;          Font-weight: 400;          text-transform: uppercase;          letter-spacing: .14em;          color: white;          -webkit-Transition: none;          -moz-Transition: none;          -ms-Transition: none;          -o-Transition: none;          Transition: none;           position: relative;        }        .m-pub:after,.m-pub:focus{          color: #ffffff;          background-color: #337ab7;        }        .dropdown-menu li .m-pub:hover:after {          content: '';          position: absolute;          left: 50%;          margin-left: -10px;          margin-top: 55px;          border-left: 0;          border-bottom: 17px solID transparent;          border-top: 17px solID transparent;          border-left: 14px solID #333333;          transform: rotate(-90deg);          background: none;        }

我提供了一个Jsfiddle:
JSFiddle

解决方法 你怀疑,你的问题是定位.不幸的是,如果您使用position:absolute,则会从文档流中删除.dropdown-menu,将其放在其下方的任何内容上,而不是将其移开.如果您使用position:relative它会强制它的父级调整菜单的大小.据我所知,纯CSS没有解决这个问题的方法.但是,有一些使用JavaScript的解决方案,并且由于Jquery已经被bootstrap使用,我们可以使用它.

要在单击下拉菜单时向下移动内容,您需要更改.container,内容,本身或下拉菜单相对的父/祖父项元素.我选择添加margin-bottom祖父母,在这种情况下,是nav元素.您可以轻松地将margin-top添加到.container.无论哪种方式,您都需要将边距设置为等于.dropdown-menu的高度,该设置为120px.我创建了以下规则来实现此目的:

nav.navbar.open {  margin-bottom: 120px;}

点击li.dropdown时,Jquery将添加额外的类.open.我只是用这个快速的Jquery来完成这个:

$("li.dropdown").click(function() {  $("nav.navbar" ).toggleClass( "open");});

这就是所需要的.单击li.dropdown时,会向nav元素添加.open,这会将其底部边距增加到.dropdown-menu的相同高度.边距不会影响.dropdown-menu,因为它绝对定位,而只是按下.container,就好像.dropdown-menu没有从文档流中删除.使用li.dropdown而非#menu-trigger(链接本身)的原因是因为如果您使用链接,然后单击.dropdown-menu,则菜单将被取消,但保证金仍然存在.通过使用下拉菜单的父级,只要单击父级的子级,就会注册click事件.如果使用兄弟,那么触发器不会发生.

$("li.dropdown").click(function() {  $("nav.navbar").toggleClass("open");});
body {  margin: 0;  padding: 0;  Font-family: "Helvetica",sans-serif;  Font-weight: 500;  Font-style: normal;  Font-size: 12px;  line-height: 1.5;}.navbar-default {  background-color: #ffffff;}.navbar {  min-height: 65px;  padding-top: 5px;  margin-bottom: 0px;  border-bottom: solID 2px #eee;}.navbar-header {  margin-top: -12px;}.navbar-brand {  padding-top: 0px !important;}/* for button placement*/.navbar-toggle {  margin-top: 26px;}/*for collapsed navbar*/.navbar-collapse {  margin-top: 12px;}.site-logo {  max-wIDth: 135px;  min-wIDth: 120px;}.navbar-default .navbar-nav > li > a {  text-transform: uppercase;  background-color: #ffffff !important;  color: #333333;}.navbar-default .navbar-nav > li > a:hover {  color: #3381d0;}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>.active>a:hover {  background-color: #ffffff;  border-bottom: 2px solID #ff5d1c;  color: #ff5d1c;  bottom: -2px;}.nav>li {  position: static !important;}/* For navbar dropdown*/.navbar .dropdown-menu {  min-wIDth: 1349px;  wIDth: 100%;  height: 120px;  margin-top: 51px;  z-index: 1;  left: 0;  text-align: center;  padding-right: 10px;  position: absolute;  List-style-type: none;  border-top: 2px solID #ff5d1c;  border-bottom: 2px solID #333333;  border-right: #ffffff;  border-radius: 0;  Box-shadow: 0px 2px 8px rgba(0,0.1);  border-left: 0;  background-color: #337ab7;}.dropdown-menu {  padding-left: 10px;  padding-right: 10px;  position: relative;  List-style-type: none;}.navbar .dropdown-menu li {  margin: 0;  padding: 0;  display: inline-block;}.dropdown-menu > li > a {  color: #ffffff;  line-height: 75px;  padding: 3px;}.dropdown-menu > li > a:hover {  color: #333333 !important;}.dropdown-menu > li > a:hover {  color: #ffffff;  background-color: #337ab7;}.m-pub {  display: inline-block;  margin: 3px 40px 0;  Font-size: 13px;  Font-weight: 400;  text-transform: uppercase;  letter-spacing: .14em;  color: white;  -webkit-Transition: none;  -moz-Transition: none;  -ms-Transition: none;  -o-Transition: none;  Transition: none;  position: relative;}.m-pub:after,.m-pub:focus {  color: #ffffff;  background-color: #337ab7;}.dropdown-menu li .m-pub:hover:after {  content: '';  position: absolute;  left: 50%;  margin-left: -10px;  margin-top: 55px;  border-left: 0;  border-bottom: 17px solID transparent;  border-top: 17px solID transparent;  border-left: 14px solID #333333;  transform: rotate(-90deg);  background: none;}nav.navbar.open {  margin-bottom: 120px;}
<head>  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/CSS/bootstrap.min.CSS" rel="stylesheet" /></head><body>  <nav >    <div >      <div >        <button type="button"  data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">          <span >Toggle Navigation</span>          <span ></span>          <span ></span>          <span ></span>        </button>        <a  href="#"></a>      </div>      <div  ID="bs-example-navbar-collapse-1">        <ul  ID="nav">          <li ><a href="#">link</a>          </li>          <li ><a href="#">link</a>          </li>          <li ><a href="#">link</a>          </li>          <li >            <a href="#"  data-toggle="dropdown" ID="menu-trigger">Drop-Down Menu<i ></i></a>            <ul  ID="menu">              <li >                <a href="#" ><i ></i>Option</a>              </li>              <li >                <a href="" ><i ></i>Option</a>              </li>            </ul>          </li>          <li ><a href="#">link</a>          </li>          <li ><a href="#">link</a>          </li>        </ul>      </div>    </div>  </nav>  <div  >  </div>  <script src="https://AJAX.GoogleAPIs.com/AJAX/libs/jquery/2.1.1/jquery.min.Js"></script>  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/Js/bootstrap.min.Js"></script></body>

该代码段足够小,可以与移动视图相关联,因此您需要全屏查看.或者你可以查看codepen.

需要注意的是,您为.dropdown-menu添加的一些样式会破坏移动版本,因此您可能需要查看它们,或者添加一些媒体查询来修复它们.

总结

以上是内存溢出为你收集整理的html – 点击下拉菜单按下内容全部内容,希望文章能够帮你解决html – 点击下拉菜单按下内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1086310.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存