twitter-bootstrap Twitter Bootstrap 轮播箭头不垂直居中取决于字形

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21588819/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-21 19:57:47  来源:igfitidea点击:

Twitter Bootstrap carousel arrows not centered vertically depending on glyphicon

htmlcsstwitter-bootstrap

提问by Tohnmeister

I created a Twitter Bootstrap carousel with the default arrows (glyphicon-chevron-left and glyphicon-chevron-right). These are nicely centered vertically in the carousel.

我创建了一个带有默认箭头(glyphicon-chevron-left 和 glyphicon-chevron-right)的 Twitter Bootstrap 轮播。这些在旋转木马中很好地垂直居中。

I though about replacing these icons with two different icons, namely glyphicon-circle-arrow-left and glyphicon-circle-arrow-right. But for some reason, when only replacing the icons, they are suddenly not centered vertically anymore. I can't find out why.

我想用两个不同的图标替换这些图标,即 glyphicon-circle-arrow-left 和 glyphicon-circle-arrow-right。但是由于某种原因,当只替换图标时,它们突然不再垂直居中了。我不知道为什么。

This is the nicely centered version (http://jsfiddle.net/AdF6b):

这是很好的居中版本(http://jsfiddle.net/AdF6b):

    <div class="row">
      <div  id="foto-carousel" class="carousel slide">
        <ol class="carousel-indicators">
          <li data-target="#foto-carousel" data-slide-to="0" class="active"></li>
          <li data-target="#foto-carousel" data-slide-to="1"></li>
          <li data-target="#foto-carousel" data-slide-to="2"></li>
        </ol>
        <!-- Carousel items -->
        <div class="carousel-inner">
          <div class="active item">
            <img src="http://lorempixel.com/g/1600/800/city/1">
            <div class="carousel-caption">
              <h4>Slide 1</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
          <div class="item">
            <img src="http://lorempixel.com/g/1600/800/city/3">
            <div class="carousel-caption">
              <h4>Slide 2</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
          <div class="item">
            <img src="http://lorempixel.com/g/1600/800/city/5">
            <div class="carousel-caption">
              <h4>Slide 3</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
        </div>
        <a class="left carousel-control" href="#foto-carousel" data-slide="prev">
          <span class="glyphicon glyphicon-chevron-left"></span> -->
        </a>
        <a class="right carousel-control" href="#foto-carousel" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right"></span>
        </a>
      </div>

The non centered version (http://jsfiddle.net/AdF6b/1/):

非居中版本(http://jsfiddle.net/AdF6b/1/):

<div class="row">
      <div  id="foto-carousel" class="carousel slide">
        <ol class="carousel-indicators">
          <li data-target="#foto-carousel" data-slide-to="0" class="active"></li>
          <li data-target="#foto-carousel" data-slide-to="1"></li>
          <li data-target="#foto-carousel" data-slide-to="2"></li>
        </ol>
        <!-- Carousel items -->
        <div class="carousel-inner">
          <div class="active item">
            <img src="http://lorempixel.com/g/1600/800/city/1">
            <div class="carousel-caption">
              <h4>Slide 1</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
          <div class="item">
            <img src="http://lorempixel.com/g/1600/800/city/3">
            <div class="carousel-caption">
              <h4>Slide 2</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
          <div class="item">
            <img src="http://lorempixel.com/g/1600/800/city/5">
            <div class="carousel-caption">
              <h4>Slide 3</h4>
              <p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</p>
            </div>
          </div>
        </div>
        <a class="left carousel-control" href="#foto-carousel" data-slide="prev">
          <span class="glyphicon glyphicon-circle-arrow-left"></span>
        </a>
        <a class="right carousel-control" href="#foto-carousel" data-slide="next">
          <span class="glyphicon glyphicon-circle-arrow-right"></span>
        </a>
      </div>

Why are the arrows in the second version not centered? The only difference is the glyphicon classes.

为什么第二个版本中的箭头没有居中?唯一的区别是字形类。

回答by Flixer

I have to admit, this issue is a bit strange. In Twitter Bootstrap, there are this particular lines:

不得不承认,这个问题有点奇怪。在 Twitter Bootstrap 中,有以下几行:

.carousel-control .icon-prev, .carousel-control .icon-next, 
.carousel-control .glyphicon-chevron-left, .carousel-control 
.glyphicon-chevron-right, .glyphicon-circle-arrow-left {
    display: inline-block;
    position: absolute;
    top: 50%;
    z-index: 5;
}

Like you see, there is no .glyphicon-circle-arrow-leftand no .glyphicon-circle-arrow-rightclass specified. So you can simply add it and everything should work fine:

如您所见,没有.glyphicon-circle-arrow-left也没有.glyphicon-circle-arrow-right指定类。所以你可以简单地添加它,一切都应该正常工作:

.carousel-control .icon-prev, .carousel-control .icon-next, 
.carousel-control .glyphicon-chevron-left, .carousel-control 
.glyphicon-chevron-right, .glyphicon-circle-arrow-left, 
.carousel-control .glyphicon-circle-arrow-left, 
.carousel-control .glyphicon-circle-arrow-right {
    display: inline-block;
    position: absolute;
    top: 50%;
    z-index: 5;
}

回答by Baxny

I'm using Bootstrap 3.3.4 and you can use what ever glyphicon you like if you add the class icon-prev(left arrow) and icon-nextto your (glyphicon).

我正在使用 Bootstrap 3.3.4,如果您在您的(字形)旁边添加类icon-prev(左箭头)和icon-next,您可以使用任何您喜欢的字形。

I changed my glyphicon from the default .glyphicon-chevron-left to use .glyphicon-menu-left and right.

我将我的字形从默认的 .glyphicon-chevron-left 更改为使用 .glyphicon-menu-left 和 right。

<a class='left carousel-control' href='#carousel-custom' data-slide='prev'>
  <span class='glyphicon glyphicon-menu-left icon-prev'></span>
</a>
<a class='right carousel-control' href='#carousel-custom' data-slide='next'>
  <span class='glyphicon glyphicon-menu-right icon-next'></span>
</a>

回答by HoTseChu

I agree with Flixer, but perhaps it would be better not to edit the original Bootstrap css files. Instead, you can put that lines:

我同意 Flixer,但也许最好不要编辑原始的 Bootstrap css 文件。相反,您可以放置​​以下几行:

/* Bootstrap: Center carousel arrow icons   */
.carousel-control .glyphicon-arrow-left, 
.carousel-control .glyphicon-arrow-right {
    display: inline-block;
    position: absolute;
    top: 50%;
    z-index: 5;
}

in your own project css file. This may avoid problems when upgrading to new Bootstrap versions.

在您自己的项目 css 文件中。这可以避免在升级到新的 Bootstrap 版本时出现问题。