使图像适应引导导航栏高度

时间:2015-11-26 02:22:05

标签: css twitter-bootstrap-3 responsive-design

我想知道如何使图像适合自举导航栏高度(按比例),这里是一个描述性图像:

navbar

有什么想法吗?

我使用这种结构:

<nav class="navbar navbar-default">
  <divclass="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">
        <img alt="Brand" src="...">
      </a>
    </div>
  </div>
</nav> 

2 个答案:

答案 0 :(得分:3)

如果您只是尝试调整图片的大小以对应默认navbarmin-height: 50px)的高度,请根据您的需要使用以下CSS作为基础适合的形象。

在此示例中,图像将完全覆盖navbar的一部分。

请参阅工作代码段。

body {
  padding-top: 70px;
}
.navbar.navbar-inverse {
  border: none;
}
.navbar .navbar-brand {
  padding-top: 0px;
}
.navbar .navbar-brand img {
  height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>

      </button>
      <a class="navbar-brand" href="#">
        <img src="http://placehold.it/350x150/f00/fff">
      </a>

    </div>
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a>

        </li>
        <li><a href="#">Link </a>

        </li>
        <li><a href="#">Link </a>

        </li>
        <li><a href="#">Link </a>

        </li>
        <li><a href="#">Link </a>

        </li>
      </ul>
    </div>
  </div>
</nav>
<div class="container text-center">
  <img src="http://placehold.it/350x150/f00/fff" />
  <h4>The Same Image At Full Scale</h4>

</div>

答案 1 :(得分:0)

在我之前的一个项目中,我也遇到了一些问题。以下是我解决问题的方法:

HTML:

<nav id="myNavbar" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

            <a class="navbar-brand" href="index.html" class="smoothScroll"><img src="img/logo.png" ondragstart="return false;" alt="logo"/></a>
        </div>

        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav" >
                <li>
                    <a>Menu Item1</a>
                </li>
            </ul>
        </div>            <!-- /.navbar-collapse -->
    </div>        <!-- /.container -->
</nav>

它的CSS:

.navbar-fixed-top {height: 40px;}
.navbar-brand img {height: 40px;}

因此,将导航栏和徽标图像设置为相同的高度(并且不给它宽度,因此它会自动调整),这样就解决了我的问题,并且定位良好。两种可能的情况:

  1. 你想要一个固定的导航栏:

    .navbar-brand img {position:fixed; right:0; top:0}

  2. 你想要一个标题:

    .navbar-brand img {position:absolute; right:0; top:0}

  3. 在这两种情况下,我都将其设置在网站的右上角,但您可以轻松调整。所以关键是:相同高度的导航栏和图像,图像定位良好。 (然后可以在CSS中轻松设置边距填充或图像的准确位置)

    希望它有所帮助, 安德鲁

    编辑:关于固定导航栏,请检查Bootstrap文档(它有内置类,如navbar-fixed-top等)。