더하기 부호 ( +
)는 다음 형제를위한 것입니다.
이전 형제에 해당하는 것이 있습니까?
더하기 부호 ( +
)는 다음 형제를위한 것입니다.
이전 형제에 해당하는 것이 있습니까?
답변:
아니요, "이전 형제"선택기가 없습니다.
관련 참고 사항 ~
은 일반적인 후계자 형제 (요소 가이 요소 뒤에 오는 것을 의미하지만 반드시 직후는 아닙니다)를위한 것이며 CSS3 선택기입니다. +
다음 형제를위한 것이며 CSS2.1입니다.
참고 인접 형제 연결자를 에서 선택기 레벨 3 및 5.7 인접 형제 선택자 에서 캐스 케이 딩 스타일 시트 레벨 2 개정 1 (CSS 2.1) 사양 .
~
필요한 것에 따라 작동 할 수있는 모든 이전 형제 (의 반대 ) 스타일을 지정하는 방법을 찾았습니다 .
링크 목록이 있고 하나를 가리키면 이전의 모든 링크가 빨간색으로 변한다고 가정 해 봅시다. 다음과 같이 할 수 있습니다 :
/* 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>
float:right
)로 요소를 다시 정렬 할 필요가 없습니다 . 단위 / 단어와 여백 대신 패딩 사이에 공백이 필요했지만 완전히 다른 방식으로 작동합니다!
선택기 레벨 4에서는:has()
!
다음과 같이 이전 형제를 선택할 수있는 (이전 제목 표시기 )를 소개합니다 .
previous:has(+ next) {}
… 그러나 글을 쓰는 시점에서 브라우저 지원을위한 최첨단을 벗어난 거리입니다.
order
플렉스 및 그리드 레이아웃 의 속성을 고려하십시오 .아래 예제에서는 flexbox에 중점을 두지 만 동일한 개념이 Grid에도 적용됩니다.
flexbox를 사용하면 이전 형제 선택기를 시뮬레이션 할 수 있습니다.
특히 flex order
속성은 화면 주위에서 요소를 이동할 수 있습니다.
예를 들면 다음과 같습니다.
요소 B를 가리키면 요소 A가 빨간색으로 바뀝니다.
<ul> <li>A</li> <li>B</li> </ul>
단계
ul
플렉스 용기를 만듭니다 .
ul { display: flex; }
마크 업에서 형제의 순서를 반대로 바꿉니다.
<ul>
<li>B</li>
<li>A</li>
</ul>
형제 선택기를 사용하여 요소 A를 타겟팅 ~
하거나 +
수행합니다.
li:hover + li { background-color: red; }
flex order
속성을 사용하여 시각적 디스플레이에서 형제 순서를 복원합니다.
li:last-child { order: -1; }
... 그리고! 이전 형제 선택자가 생성되었습니다 (또는 적어도 시뮬레이션).
전체 코드는 다음과 같습니다.
ul {
display: flex;
}
li:hover + li {
background-color: red;
}
li:last-child {
order: -1;
}
/* non-essential decorative styles */
li {
height: 200px;
width: 200px;
background-color: aqua;
margin: 5px;
list-style-type: none;
cursor: pointer;
}
<ul>
<li>B</li>
<li>A</li>
</ul>
flexbox 사양에서 :
Flex 항목은 기본적으로 소스 문서에 나타나는 순서대로 표시되고 배치됩니다.
order
속성은이 순서를 변경할 수 있습니다.이
order
속성은 플렉스 항목을 순서 그룹에 할당하여 플렉스 컨테이너 내에 표시되는 순서를 제어합니다.<integer>
flex 값이 속하는 서수 그룹을 지정 하는 단일 값을 갖습니다.
order
모든 플렉스 아이템 의 초기 값은 0입니다.
order
CSS 그리드 레이아웃 사양 도 참조하십시오 .
flex order
속성으로 작성된 "이전 형제 선택기"의 예
.container { display: flex; }
.box5 { order: 1; }
.box5:hover + .box4 { background-color: orangered; font-size: 1.5em; }
.box6 { order: -4; }
.box7 { order: -3; }
.box8 { order: -2; }
.box9 { order: -1; }
.box9:hover ~ :not(.box12):nth-child(-1n+5) { background-color: orangered;
font-size: 1.5em; }
.box12 { order: 2; }
.box12:hover ~ :nth-last-child(-1n+2) { background-color: orangered;
font-size: 1.5em; }
.box21 { order: 1; }
.box21:hover ~ .box { background-color: orangered; font-size: 1.5em; }
/* non-essential decorative styles */
.container {
padding: 5px;
background-color: #888;
}
.box {
height: 50px;
width: 75px;
margin: 5px;
background-color: lightgreen;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
cursor: pointer;
}
<p>
Using the flex <code>order</code> property to construct a previous sibling selector
</p>
<div class="container">
<div class="box box1"><span>1</span></div>
<div class="box box2"><span>2</span></div>
<div class="box box3"><span>3</span></div>
<div class="box box5"><span>HOVER ME</span></div>
<div class="box box4"><span>4</span></div>
</div>
<br>
<div class="container">
<div class="box box9"><span>HOVER ME</span></div>
<div class="box box12"><span>HOVER ME</span></div>
<div class="box box6"><span>6</span></div>
<div class="box box7"><span>7</span></div>
<div class="box box8"><span>8</span></div>
<div class="box box10"><span>10</span></div>
<div class="box box11"><span>11</span></div>
</div>
<br>
<div class="container">
<div class="box box21"><span>HOVER ME</span></div>
<div class="box box13"><span>13</span></div>
<div class="box box14"><span>14</span></div>
<div class="box box15"><span>15</span></div>
<div class="box box16"><span>16</span></div>
<div class="box box17"><span>17</span></div>
<div class="box box18"><span>18</span></div>
<div class="box box19"><span>19</span></div>
<div class="box box20"><span>20</span></div>
</div>
Flexbox는 CSS에 대한 오랜 믿음을 산산조각 내고 있습니다.
그러한 신념 중 하나 는 CSS에서 이전 형제 선택기가 불가능하다는 것입니다 .
이 믿음이 널리 퍼져 있다고 말하는 것은 과소 평가 일 것이다. 다음은 스택 오버플로에만 관련된 질문에 대한 샘플입니다.
위에서 설명한 것처럼이 믿음은 전적으로 사실이 아닙니다. flex order
속성을 사용하여 CSS에서 이전 형제 선택기를 시뮬레이션 할 수 있습니다 .
z-index
신화
또 다른 오랜 믿음은 z-index
위치 지정된 요소에서만 작동 한다는 것입니다 .
사실, 최신 버전의 사양 인 W3C Editor 's Draft 는 여전히 이것이 사실이라고 주장합니다.
z-index
- 값 : 자동 | | 상속
- 초기 : 자동
- 적용 대상 : 위치 지정된 요소
- 상속 : 아니오
- 백분율 : N / A
- 미디어 : 시각
- 계산 된 값 : 지정된대로
(강조 추가)
그러나 실제로이 정보는 더 이상 사용되지 않으며 부정확합니다.
플렉스 아이템 또는 그리드 아이템 인 요소 position
는 is 인 경우에도 스태킹 컨텍스트를 생성 할 수 있습니다 static
.
Flex 항목은 순서가 수정 된 문서 순서가 원시 문서 순서 대신 사용되며 is 인 경우에도 스택 컨텍스트를 작성하는
z-index
것 이외의 값을 제외하고는 인라인 블록과 정확히 동일하게 페인트합니다 .auto
position
static
그리드 항목의 페인팅 순서는 인라인 블록과 정확히 동일합니다. 단, 순서 수정 문서 순서는 원시 문서 순서 대신 사용되며 is 인 경우에도 스택 컨텍스트를 만드는
z-index
것 이외의 값 입니다 .auto
position
static
z-index
위치가 지정되지 않은 플렉스 항목에 대한 작업 데모는 다음과 같습니다 . https://jsfiddle.net/m0wddwxs/
order
속성은 시각적 순서 를 변경하기위한 것일 뿐이므로이 대안이 작동하기 위해 HTML에서 강제로 변경해야하는 원래 의미 론적 순서를 복원 하지 않습니다 .
z-index
작동하는 경우에도, "세상에, 더있다 position
, 사양이의 개념을 언급 지정을!" 컨텍스트를 스태킹 에 의해 잘 설명, MDN에이 문서
float: right
(또는 flex/order
부작용을 거의하지 않는 순서를 바꾸는 다른 방법 ). 두 개의 바이올린 채찍질 : 보여주는 float: right
접근 방식을 하고, 시연direction: rtl
나는 같은 질문을했지만 "duh"순간을 가졌다. 쓰는 대신
x ~ y
쓰다
y ~ x
분명히 이것은 "y"대신 "x"와 일치하지만 "일치합니까?" 질문과 간단한 DOM 순회는 자바 스크립트에서 반복하는 것보다 올바른 요소로보다 효율적으로 이동할 수 있습니다.
원래 질문은 CSS 질문 이므로이 답변은 전혀 관련이 없지만 다른 Javascript 사용자는 내가했던 것처럼 검색을 통해 질문에 걸려 넘어 질 수 있습니다.
y ~ x
나의 문제를 해결할 수
y ~ x
가 "일치 하는가?"라고 대답하지 않습니다. 여기에 주어진 두 선택기는 완전히 다른 것을 의미하기 때문에 질문입니다. 예를 들어 y ~ x
하위 트리 <root><x/><y/></root>
가 주어지면 일치하는 방법이 없습니다 . 질문이 "y 존재합니까?" 그러면 선택기는 간단 y
합니다. 질문이 "임의의 x에 임의의 위치에있는 경우 y가 존재합니까?" 그런 다음 두 선택기 가 모두 필요 합니다 . (아마도 나는이 시점에서 nitpicking
두 가지 트릭 . 기본적으로 HTML에서 원하는 요소의 HTML 순서를 반전시키고
~
다음 형제 연산자를 사용합니다.
float-right
+ HTML 요소의 순서를 반대로div{ /* Do with the parent whatever you know just to make the
inner float-right elements appear where desired */
display:inline-block;
}
span{
float:right; /* float-right the elements! */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:red;
}
<div>
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
direction: rtl;
내부 요소의 순서 가 + 인 부모.inverse{
direction: rtl;
display: inline-block; /* inline-block to keep parent at the left of window */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:gold;
}
Hover one span and see the previous elements being targeted!<br>
<div class="inverse">
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
+
다음 형제 자매입니다. 이전 형제에 해당하는 것이 있습니까?
!
및?
기존 CSS 에는 2 개의 후속 형제 선택기 가 있습니다.
+
는 IS 즉각적인 후속 형제 선택기~
는 IS 어떤 후속 형제 선택기기존 CSS 에는 이전 형제 선택기 가 없습니다 .
그러나 ax CSS 포스트 프로세서 라이브러리에는 2 개의 이전 형제 선택기가 있습니다 .
?
는 IS 즉시 이전 형제 선택기 (의 반대 +
)!
는 IS 모든 이전 형제 선택기 (반대 ~
)작업 예 :
아래 예에서 :
.any-subsequent:hover ~ div
이후의 것을 선택 div
.immediate-subsequent:hover + div
즉시 후속 선택 div
.any-previous:hover ! div
이전을 선택합니다 div
.immediate-previous:hover ? div
바로 이전을 선택합니다 div
div {
display: inline-block;
width: 60px;
height: 100px;
color: rgb(255, 255, 255);
background-color: rgb(255, 0, 0);
text-align: center;
vertical-align: top;
cursor: pointer;
opacity: 0;
transition: opacity 0.6s ease-out;
}
code {
display: block;
margin: 4px;
font-size: 24px;
line-height: 24px;
background-color: rgba(0, 0, 0, 0.5);
}
div:nth-of-type(-n+4) {
background-color: rgb(0, 0, 255);
}
div:nth-of-type(n+3):nth-of-type(-n+6) {
opacity: 1;
}
.any-subsequent:hover ~ div,
.immediate-subsequent:hover + div,
.any-previous:hover ! div,
.immediate-previous:hover ? div {
opacity: 1;
}
<h2>Hover over any of the blocks below</h2>
<div></div>
<div></div>
<div class="immediate-previous">Hover for <code>?</code> selector</div>
<div class="any-previous">Hover for <code>!</code> selector</div>
<div class="any-subsequent">Hover for <code>~</code> selector</div>
<div class="immediate-subsequent">Hover for <code>+</code> selector</div>
<div></div>
<div></div>
<script src="https://rouninmedia.github.io/axe/axe.js"></script>
HTML에서 요소의 순서를 반대로 사용할 수 있습니다. 그런 다음 사용 외에 order
같이 Michael_B의 대답은 당신이 사용할 수있는 flex-direction: row-reverse;
또는 flex-direction: column-reverse;
레이아웃에 따라 달라집니다.
작업 샘플 :
.flex {
display: flex;
flex-direction: row-reverse;
/* Align content at the "reversed" end i.e. beginning */
justify-content: flex-end;
}
/* On hover target its "previous" elements */
.flex-item:hover ~ .flex-item {
background-color: lime;
}
/* styles just for demo */
.flex-item {
background-color: orange;
color: white;
padding: 20px;
font-size: 3rem;
border-radius: 50%;
}
<div class="flex">
<div class="flex-item">5</div>
<div class="flex-item">4</div>
<div class="flex-item">3</div>
<div class="flex-item">2</div>
<div class="flex-item">1</div>
</div>
현재 공식적인 방법은 없지만 약간의 트릭을 사용하여 이것을 달성 할 수 있습니다! 그것은 실험적이며 약간의 한계가 있음을 기억하십시오 ... ( 네비게이터 호환성에 대해 걱정한다면 이 링크를 확인하십시오 )
당신이 할 수있는 일은 CSS3 선택기를 사용하는 것입니다. nth-child()
#list>* {
display: inline-block;
padding: 20px 28px;
margin-right: 5px;
border: 1px solid #bbb;
background: #ddd;
color: #444;
margin: 0.4em 0;
}
#list :nth-child(-n+4) {
color: #600b90;
border: 1px dashed red;
background: orange;
}
<p>The oranges elements are the previous sibling li selected using li:nth-child(-n+4)</p>
<div id="list">
<span>1</span><!-- this will be selected -->
<p>2</p><!-- this will be selected -->
<p>3</p><!-- this will be selected -->
<div>4</div><!-- this will be selected -->
<div>5</div>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
</div>
:nth-child(-n+4)
은 올바르게 작동하기 위해 선택기에 적용해야하는 의사 클래스 이기 때문 입니다. 당신이 확신하지 않는 경우, 내 바이올린의 포크를 사용하여 실험을 시도하고 당신이 그것을하지 냄비 않는 것을 볼 수 있습니다
*
셀렉터를 사용하여 노드 유형에 독립적으로 갈 수는 있지만 명백히 나쁜 습관입니다.
li#someListItem
전에 노드를 원했고 (이것은 "이전"으로 해석하는 방법이다)-제공 한 정보가 CSS를 통해 그것을 표현하는 데 어떻게 도움이 될 수 있는지 알지 못한다. 첫 n 형제를 선택하고 n을 알고 있다고 가정합니다. 이 논리를 기반으로 모든 선택기는 트릭을 수행하고 필요한 요소 (예 : : not ())를 선택할 수 있습니다.
아니요. CSS를 통해서는 불가능합니다. "캐스케이드"를 생각 나게한다 ;-).
그러나 페이지 에 JavaScript 를 추가 할 수 있으면 약간의 jQuery 가 최종 목표를 달성 할 수 있습니다.
jQuery를 사용 find
하여 대상 요소 / 클래스 / ID에서 "look-ahead"를 수행 한 다음 역 추적하여 대상을 선택할 수 있습니다.
그런 다음 jQuery를 사용하여 요소의 DOM (CSS)을 다시 작성하십시오.
를 기반으로 마이크 브랜트하여이 대답 , 다음과 같은 jQuery를 조각은 도움이 될 수.
$('p + ul').prev('p')
먼저 <ul>
a 바로 뒤에 오는 모든을 선택합니다 <p>
.
그런 다음 "역 추적"하여 <p>
해당 세트에서 이전 의 모든 것을 선택합니다 <ul>
.
효과적으로, "이전 형제"는 jQuery를 통해 선택되었습니다.
이제 .css
함수를 사용하여 해당 요소의 CSS 새 값을 전달하십시오.
내 경우에는 id가있는 DIV를 선택하는 방법을 찾고 #full-width
있었지만 클래스가 (간접) 자손 DIV 인 경우에만 .companies
.
에서 모든 HTML을 제어 .companies
할 수 있었지만 그 위에있는 HTML을 변경할 수 없었습니다.
그리고 계단식은 한 방향으로 만 진행됩니다.
따라서 ALL을 선택할 수 #full-width
있습니다.
또는 .companies
그 뒤에 만 선택할 수 #full-width
있습니다.
그러나 나는 할 수 없습니다 만 선택 #full-width
그 s의 진행 .companies
.
그리고 다시, 나는 .companies
HTML에서 더 높은 것을 추가 할 수 없었 습니다. HTML의 해당 부분은 외부에서 작성되었으며 코드를 감쌌습니다.
그러나 jQuery를 함께, 내가 할 수 필수 선택 #full-width
들, 그 다음 적절한 스타일을 지정합니다 :
$("#full-width").find(".companies").parents("#full-width").css( "width", "300px" );
이것은 CSS에서 표준으로 특정 요소를 대상으로하는 데 셀렉터가 사용되는 방식과 유사하게 모든 항목을 찾아서 #full-width .companies
선택합니다 .companies
.
그런 다음 사용 .parents
"철수"과의 모든 부모를 선택 .companies
,
하지만 유지하기 위해 그 결과를 필터링 #fill-width
그래서 결국 것을, 요소
그것은 단지 선택 #full-width
그것은이있는 경우 요소 .companies
클래스의 자손입니다.
마지막으로 width
결과 요소에 새로운 CSS ( ) 값을 할당합니다 .
$(".parent").find(".change-parent").parents(".parent").css( "background-color", "darkred");
div {
background-color: lightblue;
width: 120px;
height: 40px;
border: 1px solid gray;
padding: 5px;
}
.wrapper {
background-color: blue;
width: 250px;
height: 165px;
}
.parent {
background-color: green;
width: 200px;
height: 70px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<div class="wrapper">
<div class="parent">
"parent" turns red
<div class="change-parent">
descendant: "change-parent"
</div>
</div>
<div class="parent">
"parent" stays green
<div class="nope">
descendant: "nope"
</div>
</div>
</div>
Target <b>"<span style="color:darkgreen">parent</span>"</b> to turn <span style="color:red">red</span>.<br>
<b>Only</b> if it <b>has</b> a descendant of "change-parent".<br>
<br>
(reverse cascade, look ahead, parent un-descendant)
</html>
jQuery Reference Docs :
$ () 또는 jQuery () : DOM 요소.
. find : 현재 일치하는 요소 집합에서 각 요소의 자손을 가져와 선택기, jQuery 객체 또는 요소로 필터링합니다.
. 부모 : 일치하는 요소 집합에서 각 요소의 바로 이전 형제를 가져옵니다. 선택기가 제공되면 해당 선택자와 일치하는 경우에만 이전 형제를 검색합니다 (목록에있는 요소 / 선택기 만 포함하도록 결과를 필터링 함).
. css : 일치하는 요소 집합에 대해 하나 이상의 CSS 속성을 설정합니다.
previousElementSibling
).
previousElementSibling()
네이티브 JS DOM 함수에 더 익숙한 사람들은 CSS가 아닌 다른 경로를 제공 할 수 있습니다.
+
중 어느 것도 OP가 특별히 요청한 (존재하지 않은) 선택기를 사용하지 않습니다. 이 답변을 JS "hack"이라고 생각하십시오. 솔루션을 찾는 데 소비 한 다른 사람을 구하기 위해 여기 있습니다.
유감스럽게도 "이전"형제 선택기는 없지만 포지셔닝 (예 : 오른쪽 플로트)을 사용하여 동일한 효과를 얻을 수 있습니다 . 당신이하려는 일에 달려 있습니다.
제 경우에는 주로 CSS 5 성급 등급 시스템을 원했습니다. 이전 별의 색상을 지정하거나 아이콘을 바꿔야합니다. 각 요소를 올바르게 플로팅하면 본질적으로 동일한 효과가 나타납니다 (별표의 html은 '뒤로'로 작성되어야 함).
이 예제에서 FontAwesome을 사용하고 fa-star-o와 fa-star의 유니 코드 사이를 교환하고 있습니다 http://fortawesome.github.io/Font-Awesome/
CSS :
.fa {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* set all stars to 'empty star' */
.stars-container {
display: inline-block;
}
/* set all stars to 'empty star' */
.stars-container .star {
float: right;
display: inline-block;
padding: 2px;
color: orange;
cursor: pointer;
}
.stars-container .star:before {
content: "\f006"; /* fontAwesome empty star code */
}
/* set hovered star to 'filled star' */
.star:hover:before{
content: "\f005"; /* fontAwesome filled star code */
}
/* set all stars after hovered to'filled star'
** it will appear that it selects all after due to positioning */
.star:hover ~ .star:before {
content: "\f005"; /* fontAwesome filled star code */
}
HTML : (40)
JSFiddle : http://jsfiddle.net/andrewleyva/88j0105g/
+
또는 ~
선택자가 가장 깨끗한 해결 방법으로 나를 공격합니다.
정확한 목표에 따라 하나를 사용하지 않고 부모 선택기의 유용성을 얻을 수있는 방법이 있습니다 (존재하더라도).
우리가 가지고 있다고합시다.
<div>
<ul>
<li><a>Pants</a></li>
<li><a>Socks</a></li>
<ul>
<li><a>White socks</a></li>
<li><a>Blue socks</a></li>
</ul>
</ul>
</div>
간격을 사용하여 양말 블록 (양말 색상 포함)을 눈에 띄게 만들려면 어떻게해야합니까?
좋은 것이지만 존재하지 않는 것 :
ul li ul:parent {
margin-top: 15px;
margin-bottom: 15px;
}
존재하는 것 :
li > a {
margin-top: 15px;
display: block;
}
li > a:only-child {
margin-top: 0px;
}
그러면 모든 앵커 링크가 상단에 15px의 여백을 갖도록 설정하고 LI 내부에 UL 요소 (또는 다른 태그)가없는 링크의 경우 0으로 다시 설정합니다.
이전 형제 tr을 선택하는 솔루션이 필요했습니다. React 및 Styled 구성 요소를 사용 하여이 솔루션을 생각해 냈습니다. 이것은 내 정확한 해결책이 아닙니다 (몇 시간 후에 메모리에서 온 것입니다). setHighlighterRow 함수에 결함이 있음을 알고 있습니다.
OnMouseOver 행은 행 인덱스를 state로 설정하고 이전 행을 새로운 배경색으로 다시 렌더링합니다.
class ReactClass extends Component {
constructor() {
this.state = {
highlightRowIndex: null
}
}
setHighlightedRow = (index) => {
const highlightRowIndex = index === null ? null : index - 1;
this.setState({highlightRowIndex});
}
render() {
return (
<Table>
<Tbody>
{arr.map((row, index) => {
const isHighlighted = index === this.state.highlightRowIndex
return {
<Trow
isHighlighted={isHighlighted}
onMouseOver={() => this.setHighlightedRow(index)}
onMouseOut={() => this.setHighlightedRow(null)}
>
...
</Trow>
}
})}
</Tbody>
</Table>
)
}
}
const Trow = styled.tr`
& td {
background-color: ${p => p.isHighlighted ? 'red' : 'white'};
}
&:hover {
background-color: red;
}
`;
비슷한 문제가 있었고이 성격의 모든 문제를 다음과 같이 해결할 수 있음을 알았습니다.
이렇게하면 현재, 이전 항목 (현재 및 다음 항목으로 재정의 된 모든 항목) 및 다음 항목의 스타일을 지정할 수 있습니다.
예:
/* all items (will be styled as previous) */
li {
color: blue;
}
/* the item i want to distinguish */
li.milk {
color: red;
}
/* next items */
li ~ li {
color: green;
}
<ul>
<li>Tea</li>
<li class="milk">Milk</li>
<li>Juice</li>
<li>others</li>
</ul>
그것이 누군가를 돕기를 바랍니다.