>

두 자녀 (파트)가있는 진행률 표시 줄이 있습니다. 이 어린이들 각각이 호버링 될 때마다 진행 상황의 총 높이와 아이들이 바뀔 것입니다. 나는 next sibling selector 를 사용하여 첫 번째 어린이를 해결했습니다.  그러나 두 번째 자녀 (노란색 부분)에 대한 해결책을 찾을 수 없습니다. 지금까지 jQuery를 사용 하여이 문제를 해결했지만 순수한 CSS 로이 작업을 수행하려고합니다.

피들 : https://jsfiddle.net/zfh263r6/5/

$('#start').on({
  mouseenter: function () {
	  //$(this).css('height', '4px');
      //$( 'progress' ).css('height', '4px');
  },
  mouseleave: function () {
	  //$(this).css('height', '');
     // $( 'progress' ).css('height', '');
  }
});

#progress_wrap {
    position: relative;
    height: 4px; /*max height of progress*/
    background: #f3f3f3;
}
progress {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    width: 100%;
    border:none;
    height: 2px;
    transition:all .25s ease-in;
    cursor: pointer;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
}
progress:hover, progress:hover + #start {height: 4px}
progress[value]  {
    /* Reset the default appearance */
    -webkit-appearance: none;
     -moz-appearance: none;
    	  appearance: none;
    /* Get rid of default border in Firefox. */
    border: none;
    /* For IE10 */
    color: #f8008c;
}
progress[value]::-webkit-progress-bar {
    background-color: #fff;
    border:none;
}
progress[value]::-webkit-progress-value {background:#f8008c}
progress::-ms-progress-value {background:#f8008c}
progress::-moz-progress-bar {background:#f8008c}
progress::-ms-fill {border: none}
#start {
    height: 2px;
    transition: all .25s ease-in;
    cursor: pointer;
    background-color: #ffe232;
    position: absolute;
    top: 0;
    left: 0px;
    width: 30px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="progress_wrap">
  <progress min="0" max="1" value="0.66" id="progress"></progress> 
  <div id="start" style="display: inline-block; left: 50px;"></div>
</div>


  • 답변 # 1

    CSS에는 이전 형제 선택기가 없지만 ~ 를 사용할 수 있습니다  선택기-

    링크 목록이 있다고 가정하고 링크를 가리키면 이전의 모든 링크가 빨간색으로 바뀌어야합니다. 다음과 같이 할 수 있습니다 :

    /* default link color is blue */
    .parent a {
      color: blue;
    }
    /* prev siblings should be red */
    .parent:hover a {
      color: red;
    }
    .parent a:hover,
    .parent a:hover ~ a {
      color: blue;
    }
    
    
    <div class="parent">
      <a href="#">link</a>
      <a href="#">link</a>
      <a href="#">link</a>
      <a href="#">link</a>
      <a href="#">link</a>
    </div>
    
    
    **** 의례-@mantish ****

  • 답변 # 2

    의견에서 :

    와이즈 비즈 와이즈 비즈  그리고

    make  호버 높이와 progress  오버플로 : 숨겨지고 짧아지고해당풍선 위로 펼칩니다.

    다른 요소를 밀지 않기 위해, 동시에 아래쪽에 약간의 마진을 추가 할 수 있습니다.

    start
    
    

    https://jsfiddle.net/5t90s4jk/

    progress_wrap

  • 이전 입력이 가변 arity의 함수 인 일반 스칼라 함수
  • 다음 Swift Markup 언어에서 "예제"와 같이 기본 렌더링 된 제목의 이름을 바꿉니다