代码之家  ›  专栏  ›  技术社区  ›  Retros

Bootstrap 4转盘指示器定位

  •  3
  • Retros  · 技术社区  · 6 年前

    我正在设计一个引导4转盘,我需要转盘指示器进入左上角。但我还需要它们与上面的导航垂直对齐,导航被封装在引导类中。容器

    既然我知道我的解释很糟糕,下面这张图片正好向你展示了我的意思:

    enter image description here

    如果使用position absolute,并添加top:0、left:0(或其他数字),则定位会根据屏幕大小移动,并且与导航不匹配。

    下面是我的代码大纲:

    .carousel-indicators {
      top: 10px;
      left: 0;
      right: auto;
    }
    
    .carousel-indicators li {
      width: 20px;
      height: 20px;
      border-radius: 100%;
    }
    
    .carousel-indicators li:not(:last-child) {
      margin-right: 20px;
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    
    
    <div class="container">
      <nav class="navbar navbar-light bg-light">
        <a class="navbar-brand" href="#">Navbar</a>
      </nav>
    </div>
    
    <div id="carousel" class="carousel slide" data-ride="carousel">
      <ol class="carousel-indicators">
        <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="3"></li>
      </ol>
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="First slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Second slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Third slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Fourth slide">
        </div>
      </div>
    </div>

    我怎样才能做到这一点?最好的方法是什么?

    非常感谢。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Pushparaj    6 年前

    只需覆盖旋转木马指示器的对齐内容和边距,然后添加填充,如下所示。还可以将指示器包装在容器中,并通过添加预定义的类相对位置将其设置为“位置:相对”。

    .my-slider .carousel-indicators {
      top: 10px;
      justify-content:flex-start;
      margin:0;
      padding-left:15px;
      padding-right:15px;
    }
    
    .carousel-indicators li {
      width: 20px;
      height: 20px;
      border-radius: 100%;
    }
    
    .carousel-indicators li:not(:last-child) {
      margin-right: 20px;
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    
    
    <div class="container">
      <nav class="navbar navbar-light bg-light">
        <a class="navbar-brand" href="#">Navbar</a>
      </nav>
    </div>
    
    <div id="carousel" class="my-slider carousel slide" data-ride="carousel">
      <div class="container position-relative">
      <ol class="carousel-indicators">
        <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="3"></li>
      </ol>
     </div>
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="First slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Second slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Third slide">
        </div>
        <div class="carousel-item">
          <img class="d-block w-100" src="http://via.placeholder.com/800x300" alt="Fourth slide">
        </div>
      </div>
    </div>