为什么我的按钮忽略了我页面的CSS?

时间:2017-05-16 16:01:33

标签: javascript jquery html css

我正在尝试制作一个屏幕外的菜单,如果我点击某个按钮就会出现。 jQuery代码有效,但我的按钮位于菜单下方而不是旁边。

我尝试将div中的所有元素包装在最大高度为100%视口高度的div中,但这不起作用。

我做错了什么吗? jsfiddle链接中提供的HTML,CSS和jQuery:https://jsfiddle.net/u9bq5v2g/

乍一看,该按钮不可见,因为您必须先向下滚动才能看到它。

HTML:                                            家                 轮廓                 轮廓                      

    <button type="submit" class="btn btn-danger" id="menubutton">Menu</button>
</div>

<script type="text/javascript">
    $(document).ready(function(){
        $("#menubutton").click(function(){
            $("#list").css("margin-left", "0vw");
        });
    });
</script>

CSS:

* {
    padding: 0;
    margin: 0;
}

#wrapper {
    min-height: 100vh;
    max-height: 100vh;
}

#list {
    margin-left: -15vw;
    max-width: 15vw;
    min-height: 100vh;
    background-color: rgb(40, 35, 35);
}

.nav-pills>li>a {
    border-radius: 0px;
    color: white;
    font-size: 16px;
}

.nav-pills>li>a:hover {
    background-color: rgb(66, 57, 57);
}

3 个答案:

答案 0 :(得分:0)

使用float left to list和btn。

$(document).ready(function(){
    		$("#menubutton").click(function(){
    			$("#list").css("margin-left", "0vw");
    		});
    	});
* {
	padding: 0;
	margin: 0;
}

#wrapper {
	min-height: 100vh;
	max-height: 100vh;
}

#list {
	margin-left: -15vw;
	max-width: 15vw;
	min-height: 100vh;
	background-color: rgb(40, 35, 35);
  float:left;
}

.nav-pills>li>a {
	border-radius: 0px;
	color: white;
	font-size: 16px;
}

.nav-pills>li>a:hover {
	background-color: rgb(66, 57, 57);
}
.btn{
  float:left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
    
	<div id="wrapper">

	    <nav id="list">
	    	<ul class="nav nav-pills nav-stacked">
	    		<li role="presentation"><a href="#">Home</a></li>
	    		<li role="presentation"><a href="#">Profile</a></li>
	    		<li role="presentation"><a href="#">Profile</a></li>
	    	</ul>
	    </nav>

	    <button type="submit" class="btn btn-danger" id="menubutton">Menu</button>

	</div>
    
</body>

答案 1 :(得分:0)

如果您希望按钮位于菜单左侧,则需要

nav {
  display:inline-block; 
}

因为nav是一个块元素。在列表前移动按钮

<button type="submit" class="btn btn-danger" id="menubutton">Menu</button>
<nav id="list">

并将列表进一步向左移动以构成

的宽度
#list {
        margin-left: -30vw;

https://jsfiddle.net/auqhysr1/

在菜单中看到你关于滑动的评论之后,我已经更新了我的jsfiddle以便在CSS中做到这一点,尽管它不会在点击上而且依赖于CSS3。

答案 2 :(得分:0)

也许这是一种更好的方法,这是从教程中获得的。如果您发现它有用,请使用它。它是一个类似的逻辑,除了它使用绝对定位。

&#13;
&#13;
$("#open").click(function(){
  $("#mySidenav").css("width","250px");
  $("#main").css("margin-left","250px");
});

$(".closebtn").click(function(){
  $("#mySidenav").css("width","0");
  $("#main").css("margin-left","0");
});
&#13;
body {
    font-family: "Lato", sans-serif;
}

.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;
}

.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s;
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    transition: margin-left .5s;
    padding: 16px;
}

@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}

.closebtn{cursor:pointer;}
#open{
font-size:15px;
background-color: #ff0000;
padding: 10px 5px;
cursor:pointer;
color: #ffffff;
border-radius:5px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mySidenav" class="sidenav">
  <a class="closebtn">&times;</a>
  <a href="#">About</a>
  <a href="#">Services</a>
  <a href="#">Clients</a>
  <a href="#">Contact</a>
</div>

<div id="main">
  <span id="open">MENU</span>
</div>
&#13;
&#13;
&#13;