【问题标题】:Bootstrap Responsive Image Attempts Behave Differently In Safari, Chrome, FFBootstrap 响应式图像尝试在 Safari、Chrome、FF 中的行为不同
【发布时间】:2018-01-06 10:56:00
【问题描述】:

我正在尝试设计一个应该适合网站导航栏并用作徽标的图像。我遇到的问题是它在三个主要浏览器中的显示方式不同。

明确地说,当我使用 height 属性并使图像在 FF 中显示得很好时,它对于 Safari 来说变得太大了,反之亦然。谈到 Chrome,这种行为就更奇怪了。出于某种原因,它甚至拒绝承认相关类的存在。当我签入Page Source Code 并导航到有问题的 CSS 时,该类不存在。缺少的类在下面的代码中称为.logo-img

HTML:

<nav class="navbar navbar-default">
            <div class="container">
                <div class="navbar-header">
                    <a href="index.html" class="navbar-brand"><img src="{% static "tshirt-theme/img/logo-kindbook.png" %}" class="logo-img" alt="Shirt Store"></a>
                    <div class="navbar-buttons">
                        <button type="button" data-toggle="collapse" data-target=".navbar-collapse" class="navbar-toggle navbar-btn">Menu<i class="fa fa-align-justify"></i></button>
                    </div>
                </div>

为简洁起见省略其余部分

CSS:

.navbar-default {
  background-color: #ffffff;
  border-bottom-color: transparent;
}
.navbar-default .navbar-brand {
  color: #333333;
}

img.logo-img {
    height: 300%; !important
}

.logo-img > img {
    height: 300%; !important
}

请原谅!important,因为我正在使用它来尝试解决问题并一起破解某些东西。

火狐:

Safari:

铬: 图片放大到全分辨率并占据整个页面。

问题是为什么会发生这种情况(尤其是 Chrome 没有注册 CSS 类),我怎么能想出跨浏览器兼容的东西?

【问题讨论】:

  • 您希望在导航栏中的哪个位置显示您的徽标,尺寸是多少?
  • 原图约为2000x1500px。我希望它留在左侧区域并占据&lt;div class=container&gt;高度的约90%
  • 缩小尺寸再试试。
  • 这不是问题。我试过了。

标签: html css twitter-bootstrap google-chrome safari


【解决方案1】:

如果您使用的是引导程序 3,那么您应该减小图像大小,然后删除 navbar-brand 填充。

更多详情bootstrap navbar

.navbar-brand {
  padding: 0px !important;
}
.largeImg .navbar{
 min-height:151px;
}
.largeImg .navbar-nav>li>a{
padding-top:65px;
padding-bottom:65px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class=container>
  <nav class="navbar navbar-default">
    <div class="container-fluid">
      <!-- Brand and toggle get grouped for better mobile display -->
      <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://www.placehold.it/70x50"></a>
      </div>

      <!-- Collect the nav links, forms, and other content for toggling -->
      <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 class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="#">Action</a></li>
              <li><a href="#">Another action</a></li>
              <li><a href="#">Something else here</a></li>
              <li role="separator" class="divider"></li>
              <li><a href="#">Separated link</a></li>
              <li role="separator" class="divider"></li>
              <li><a href="#">One more separated link</a></li>
            </ul>
          </li>
        </ul>

      </div>
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
  </nav>
  <div class="largeImg">
    <nav class="navbar navbar-default">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <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://www.placehold.it/150x150"></a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <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 class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li role="separator" class="divider"></li>
                <li><a href="#">Separated link</a></li>
                <li role="separator" class="divider"></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>

        </div>
        <!-- /.navbar-collapse -->
      </div>
      <!-- /.container-fluid -->
    </nav>
  </div>
</div>

【讨论】:

  • @MadPhysicist 将容器 div 移到导航之外并减小徽标的大小。
  • 删除什么在哪里?
  • 这仍然不能解决 Chrome 问题。 Chrome 拒绝看到这些样式。
  • 我正在使用 chrome,它在 FF、Safari、IE 10+ 和 Chrome 中非常好。
  • 那么你也需要增加导航栏的高度。让我编辑上面的答案。带有大图。
猜你喜欢
  • 1970-01-01
  • 2017-06-15
  • 2018-11-13
  • 2011-11-05
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
相关资源
最近更新 更多