“~”(물결 / 물림 / 비틀기) CSS 선택기는 무엇을 의미합니까?


857

~캐릭터를 검색하는 것은 쉽지 않습니다. CSS를 살펴보고 이것을 발견했습니다.

.check:checked ~ .content {
}

무슨 뜻이에요?


3
이해하기 쉬운 데모 확인 다음 은 CSS 선택기 목록입니다.
Dipak

@TylerH, 스택 오버플로 게시물에서 매우 일반적으로 사용되는 것으로, 쉽게 가져 가십시오. 더 나쁘게 만들지 않았습니다.
Arsen Khachaturyan

@ArsenKhachaturyan 어쩌면 당신은 오해합니다; 블록 인용 구문은 표시입니다 인용 하지 자신의 직장이나 단어 인 사용자가 뭔가 (텍스트, 이미지, 코드 등)을 표시 할 때입니다,하지만 다른 곳에서 복사됩니다. 모든 형식과 마찬가지로 의미 적 목적이 있습니다. willy-nilly에 추가 할 것이 아닙니다. 마찬가지로 단어에 임의의 굵은 강조 표시를 추가 하지 마십시오 . 그것은 강조를 위해 드물게 사용해야합니다.
TylerH

@TylerH 나는 그 이름이 "인용"이고 또한 "인용"자체가 의미하는 것을 이해합니다. 그러나 때로는 평범한 텍스트와 질문을 구별하고 싶을 때 내가했던 것처럼 강조 기술을 시도해 볼 수 있습니다. 굵게 표시하려면 키워드 또는 잘 알려진 용어와 같은 것을 강조하고 싶을 때 사용하는 것도 분명합니다. 나는 사람들이 알 수없는 이유로 볼드체를 사용하는 것을 싫어하지만 때로는 사람들이 주제 관련 정보를 쉽게 찾을 수 있습니다.
Arsen Khachaturyan

@ArsenKhachaturyan 그렇게하지 마십시오. >입니다 만 따옴표 , 그것은이다 결코 다른 목적으로 사용되지 않을 수 있습니다. 또한 질문에 임의의 기술 이름을 굵게 표시해서는 안됩니다. 태그를 통해 어떤 기술이 관련되어 있는지 확인할 수 있습니다.
meagar

답변:


1370

~선택은 실제로입니다 일반 형제 연결자 (후속-형제 콤비로 이름이 바뀌 선택기 레벨 4 )

일반 형제 결합기는 간단한 선택기의 두 시퀀스를 분리하는 "물결표"(U + 007E, ~) 문자로 구성됩니다. 두 시퀀스로 표시되는 요소는 문서 트리에서 동일한 부모를 공유하며 첫 번째 시퀀스로 표시되는 요소는 두 번째 시퀀스로 표시되는 요소보다 우선합니다.

다음 예제를 고려하십시오.

.a ~ .b {
  background-color: powderblue;
}
<ul>
  <li class="b">1st</li>
  <li class="a">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="b">5th</li>
</ul>

.a ~ .b 다음과 같은 이유로 4 번째 및 5 번째 목록 항목과 일치합니다.

  • 있습니까 .b요소
  • 형제 자매 .a
  • 후 나타나지 .aHTML 소스 순서입니다.

마찬가지로, 형제 자매이고 그 뒤에 나타나는 .check:checked ~ .content모든 .content요소 와 일치 .check:checked합니다.


13
"반드시 반드시 그런 것은 아닙니다"가이 설명의 핵심 부분입니다.
PanicBus

1
부모가 같은 모든 요소에 대한 선택기도 있습니까?
Nick N.

1
@NickN. 당신은 의미 .parent > *합니까?
Salman A

@SalmanA 정확히는 아니지만 부모를 모르는 경우 사용할 수있는 선택기가 있기를 바랐습니다.
Nick N.

7
@NickN. 없습니다. CSS는 CSS 파서가 일치하지 않기 위해 DOM에서 되돌아 보지 않는다는 제안으로 만들어졌습니다. 부모 선택기가없는 것과 같은 이유입니다.
yunzen

191

가족 의 다른 조합 자를 확인 하고이 특정 조합 으로 돌아 오는 것이 좋습니다.

  • ul li
  • ul > li
  • ul + ul
  • ul ~ ul

검사 목록 예 :

  • ul li- 내부 찾고 - 선택 모든li 요소 (어디서나) 내부에 위치 ul; 후손 선택기
  • ul > li- 들여다보기 - ; 의 직접 li 요소 선택합니다 ul. 그것은 단지 직접 아이들이 선택됩니다 즉 li의를 ul; 자식 선택기 또는 자식 결합기 선택기
  • ul + ul- 밖을보고 - ul바로 다음을 선택합니다 ul; 내부를 들여다 보지 않고 바로 다음 요소를 찾아야합니다. 인접 형제 선택기
  • ul ~ ul- 찾고 외부 - 모두 선택 ul(가) 다음하는 ul것이하지만, 모두 어디 중요하지 않습니다 ul같은 부모를 가진해야한다; 일반 형제 선택기

우리 가보고있는 것은 General Sibling Selector입니다.


2
이것은 가장 의미가 있습니다. 구조에 대한 Layman의 용어를 다시 구하십시오. 이제 기술 문서를 읽을 수 있습니다.
TheRealChx101 2018 년

2
다음 형제뿐만 아니라 모든 형제 자매를위한 형제 선택자가 있습니까?
Elijah Mock

1
@EliTheHuman, 아니오. 자세한 내용은이 SO 게시물을 참조하시기 바랍니다 - stackoverflow.com/a/11813469/6830901
Lijo 조셉

174

일반 형제 콤비 네이터

일반 형제 콤비 네이터 선택기는 인접한 형제 콤비 네이터 선택기와 매우 유사합니다. 차이점은 선택한 요소가 첫 번째 요소를 즉시 성공시킬 필요는 없지만 그 이후에 나타날 수 있다는 것입니다.

더 많은 정보


31

그것은이다 General sibling combinator아주 잘 Salaman의 대답 @에 설명되어 있습니다.

내가 놓친 것은 Adjacent sibling combinator입니다. +와 밀접한 관련이 ~있습니다.

예를 들면

.a + .b {
  background-color: #ff0000;
}

<ul>
  <li class="a">1st</li>
  <li class="b">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="a">5th</li>
</ul>
  • 있는 요소와 일치 .b
  • 에 인접 .a
  • .aHTML에서

위의 예에서는 2 위를 표시 li하지만 4 위는 표시 하지 않습니다.

   .a + .b {
     background-color: #ff0000;
   }
<ul>
  <li class="a">1st</li>
  <li class="b">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="a">5th</li>
</ul>

JSFiddle


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.