【问题标题】:Nav bar doesn't expand and contract when screen size in changed更改屏幕尺寸时导航栏不会扩展和收缩
【发布时间】:2018-02-23 10:04:37
【问题描述】:

我正在尝试让我的导航栏在我更改屏幕尺寸时折叠和展开。我的代码似乎不起作用,我真的看不出问题。

我希望当屏幕达到平板电脑的屏幕大小时,导航栏折叠成菜单图标。目前,当屏幕尺寸发生变化时,导航链接只是以无意的方式移动。

请看下面的代码:

*{
    margin: 0;
    padding: 0;
    line-height: 1;    
}

body {   
  margin: 0;
  font-family: sans-serif;
  background: #FFFFFF;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
  overflow-x: hidden;
}

nav {
    margin: 0 0 0 0;
    font-family: 'Lato', Sans-serif;
    font-size: 100%;
    width: auto;
 }

.navbar { 
	margin: 0; 
	padding-top: 1.5em; 
    padding-bottom: 1.5em; 
    padding-left: 6em;
    padding-right: 5.06em;

	background-color: #000; 
	} 


.navbar-brand {
	color: #fff; 
	background-color: #000; 
    font-size: 22px;
    display: inline; 
}

.navbar ul li {  
	display: inline; 
	} 
 

.navbar ul li a { 
	color: #fff; 
	background-color: #000; 
    font-size: 18px;
	} 

.nav-link {
    padding-left: 15px;
    padding-right: 15px;
}
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
    <meta name="HandheldFriendly" content="true">

    <link href="graphic-design.css" type="text/css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet">
      
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.bundle.min.js" integrity="sha384-feJI7QwhOS+hwpX2zkaeJQjeiwlhOP+SdQDqhgvvo1DsjtiSQByFdThsxO669S2D" crossorigin="anonymous"></script>
    <script type="text/javascript"></script>
      
  </head>

 <body>   
<nav class="navbar navbar-expand-md navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
      <a class="logo"><img src="9haus-logo-white.png" alt="9haus logo" width="63px" height="19px"></a>   
      <a class="navbar-brand" href="graphic-design.html">Graphic design</a>
  <div class="navs">
    <ul class="navbar-brand">
      <li class="active"><a class="nav-link" href="graphic-design.html">Work</a></li>
      <li><a class="nav-link" href="graphic-studio.html">Studio</a></li>
      <li><a class="nav-link" href="#">Services</a></li>
    </ul> 
    </div>  
</div>      
</nav>     
    
</body>

</html>

【问题讨论】:

标签: html css twitter-bootstrap bootstrap-4


【解决方案1】:

您的 Bootstrap 4 导航栏无法按预期工作的原因仅仅是因为您没有正确使用导航栏组件。

这是 Bootstrap 4 导航栏的工作版本。您可以看到所有组件都已就位(并正确定位)它确实可以按预期工作(并且不需要任何不必要的 css hack 或 JS hack):

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-md navbar-light bg-light">
    <a class="navbar-brand" href="graphic-design.html">
        <img src="https://placehold.it/60" width="30" height="30" class="d-inline-block align-top" alt="">
        Graphic design
    </a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="#">Work <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Studio</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Services</a>
            </li>
        </ul>
    </div>
</nav>

还建议您在使用 Bootstrap 4 时避免使用自定义 css hack,因为自定义 css hack 往往需要更多 css hack 来解决原始 css hack 引起的问题。在您的特定情况下,您的大部分自定义 css 都是不必要的,因为 Bootstrap 4 提供了本地类来执行填充、边距等操作。

这是 Bootstrap 4 间距实用程序的参考链接:

https://getbootstrap.com/docs/4.0/utilities/spacing/

请注意,间距类(与大多数 Bootstrap 类一样)实际上是响应式的。因此,您可以根据需要调整每个断点的间距。

【讨论】:

  • 嗨。并为回答问题而努力
  • 已解决。非常感谢。
  • 我删除了我的答案。 @Chidz
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 2016-12-29
  • 1970-01-01
相关资源
最近更新 更多