javascript-在不同的CSS样式属性中给第二个元素

前端之家收集整理的这篇文章主要介绍了javascript-在不同的CSS样式属性中给第二个元素 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我尝试为表单创建一个逐步进度栏,但是我想让进度栏的圆点上方每隔一个第二个“文本框”,以使元素文本在彼此之间不会互相干扰浏览器窗口变小.

有没有简单的方法可以做到这一点?

片段显示了运行中的进度栏​​.

var progressBar = {
  Bar : $('#progress-bar'),Reset : function(){
    if (this.Bar){
   //   this.Bar.find('li').addClass('active'); 
    }
  },Next: function(){
    $('#progress-bar li:not(.active):first').addClass('active');
  },Back: function(){
    $('#progress-bar li.active:last').removeClass('active');
  }
}

progressBar.Reset();

////
$("#Next").on('click',function(){
  progressBar.Next();
})
$("#Back").on('click',function(){
  progressBar.Back();
})
$("#Reset").on('click',function(){
  progressBar.Reset();
})
  .progressbar {
      margin: 50px 0 50px 0;
      counter-reset: step;
  }
  .progressbar li {
	  width: 12.5%;
      list-style-type: none;
      float: left;
      font-size: 12px;
      position: relative;
      text-align: center;
      text-transform: uppercase;
      color: #555555;
  }
  .progressbar li:before {
      width: 15px;
      height: 15px;
      content: '';
      line-height: 30px;
      border: 2px solid #555555;
      background-color: #555555;
      display: block;
      text-align: center;
      margin: 0 auto 10px auto;
      border-radius: 50%;
      transition: all .8s;
  }
  .progressbar li:after {
      width: 100%;
      height: 2px;
      content: '';
      position: absolute;
      background-color: #555555;
      top: 7px;
      left: -50%;
      z-index: -1;
      transition: all .8s;
  }
  .progressbar li:first-child:after {
      content: none;
  }
  .progressbar li.active:before {
      border-color: #55b776;
      background-color: #55b776;
      transition: all .8s;
  }
  .progressbar li.active:after {
      background-color: #55b776;
      transition: all .8s;
  }

.btn {
  background-color: #55b776;
  margin: 5px;
  width: 75px;
  color: white;
}
.btn:hover {
  color: white;
}
.btn:focus {
  color: white;
}
.btn-container {
  display: flex;
  justify-content: center;
  width: 100%;
  position: absolute;
  bottom: 0;
}
body {
  background-color: #f7f7f7;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en" >

<head>
  <Meta charset="UTF-8">
  <title>Simple Step Progress Bar</title> 
  
  
  <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css'>

      <link rel="stylesheet" href="css/style.css">

  
</head>

<body>


<ul id="progress-bar" class="progressbar">
 <li>Art</li>
 <li>daten</li>
 <li>zeit</li>
 <li>ort</li>
 <li>Pdf</li>
 <li>Bilder</li>
 <li>INFO</li>
 <li>Bezahlen</li>

</ul>

<div class="btn-container">
  <button class="btn" id="Next">Next</button>
  <button class="btn" id="Back">Back</button>
  <button class="btn" id="Reset">Reset</button>
</div>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js'></script>

  

    <script  src="js/index.js"></script>




</body>

</html>
最佳答案
您需要使用.progressbar li:nth-​​child(2n)来定位其他所有li元素,然后需要将整个伪元素向上移动,然后将线和圆(:before和:after)向下移动.如果您没有将文本,行和圆全部都附加到同一元素/伪元素,这将容易得多.

查看代码段:

var progressBar = {
  Bar: $('#progress-bar'),Reset: function() {
    if (this.Bar) {
      //   this.Bar.find('li').addClass('active'); 
    }
  },Next: function() {
    $('#progress-bar li:not(.active):first').addClass('active');
  },Back: function() {
    $('#progress-bar li.active:last').removeClass('active');
  }
}

progressBar.Reset();

////
$("#Next").on('click',function() {
  progressBar.Next();
})
$("#Back").on('click',function() {
  progressBar.Back();
})
$("#Reset").on('click',function() {
  progressBar.Reset();
})
.progressbar {
  margin: 50px 0 50px 0;
  counter-reset: step;
}

.progressbar li {
  width: 12.5%;
  list-style-type: none;
  float: left;
  font-size: 12px;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  color: #555555;
}

.progressbar li:before {
  position: relative;
  width: 15px;
  height: 15px;
  content: '';
  line-height: 30px;
  border: 2px solid #555555;
  background-color: #555555;
  display: block;
  text-align: center;
  margin: 0 auto 10px auto;
  border-radius: 50%;
  transition: all .8s;
}

.progressbar li:after {
  width: 100%;
  height: 2px;
  content: '';
  position: absolute;
  background-color: #555555;
  top: 7px;
  left: -50%;
  z-index: -1;
  transition: all .8s;
}

.progressbar li:first-child:after {
  content: none;
}

.progressbar li.active:before {
  border-color: #55b776;
  background-color: #55b776;
  transition: all .8s;
}

.progressbar li.active:after {
  background-color: #55b776;
  transition: all .8s;
}

.btn {
  background-color: #55b776;
  margin: 5px;
  width: 75px;
  color: white;
}

.btn:hover {
  color: white;
}

.btn:focus {
  color: white;
}

.btn-container {
  display: flex;
  justify-content: center;
  width: 100%;
  position: absolute;
  bottom: 0;
}

body {
  background-color: #f7f7f7;
}

.progressbar li:nth-child(2n) {
  top: -50px;
}

.progressbar li:nth-child(2n):before {
  top: 50px;
}

.progressbar li:nth-child(2n):after {
  top: 57px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <Meta charset="UTF-8">
  <title>Simple Step Progress Bar</title>


  <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css'>

  <link rel="stylesheet" href="css/style.css">


</head>

<body>


  <ul id="progress-bar" class="progressbar">
    <li>Art</li>
    <li>daten</li>
    <li>zeit</li>
    <li>ort</li>
    <li>Pdf</li>
    <li>Bilder</li>
    <li>INFO</li>
    <li>Bezahlen</li>

  </ul>

  <div class="btn-container">
    <button class="btn" id="Next">Next</button>
    <button class="btn" id="Back">Back</button>
    <button class="btn" id="Reset">Reset</button>
  </div>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js'></script>



  <script src="js/index.js"></script>




</body>

</html>

以下CSS规则可以解决问题:

.progressbar li:nth-child(2n) {
    top: -50px;
}

.progressbar li:nth-child(2n):after {
    top: 57px;
}

.progressbar li:nth-child(2n):before {
    top: 50px;
}

猜你在找的HTML相关文章