“+”(더하기 부호) CSS 선택기는 무엇을 의미합니까?


750

예를 들면 다음과 같습니다.

p + p {
  /* Some declarations */
}

무슨 +뜻 인지 모르겠습니다 . 이것과 차이점 p없이 스타일을 정의하는 것의 차이점은 무엇입니까 + p?


실제로 이것은 같은 종류의 목록 요소 사이에 여백이나 패딩을 적용하는 데 주로 유용하므로 첫 번째 또는 마지막 요소에 특별한 경우가 필요하지 않습니다.
Christophe Roussy

답변:


749

W3.org에서 인접한 셀렉터 를 참조하십시오 .

이 경우 선택기는 스타일이 다른 단락 바로 다음의 단락에만 적용됨을 의미합니다.

일반 p선택기는 스타일을 페이지의 모든 단락에 적용합니다.


이것은 IE7 이상에서만 작동합니다. IE6에서는 스타일이 어떤 요소에도 적용되지 않습니다. 그건 >그렇고, 결합기에도 적용됩니다 .

Internet Explorer의 CSS 호환성에 대한 Microsoft 개요도 참조하십시오 .


숨겨진 요소를 축소하지 않는 것이 유용하다는 것을 알았습니다. 따라서 그것을 숨기는 더 적절한 방법은 visibility : hidden/visible대신에 를 사용하는 것입니다 display : none/block. 이 참조를 참조 하십시오 .
KFL

6
무슨 일이 P는 + p와 P> P의 차이가 될 것입니다
무하마드 Rizwan

7
@MuhammadRizwan가 p > p중첩 수단 p임의 EI p직접 다른 밑돌 p등을 <p><p>This paragraph</p></p>.
바나나

203

인접 형제 선택기입니다.

에서 스타일의 스플래시 블로그.

CSS 인접 선택기를 정의하기 위해 더하기 부호가 사용됩니다.

h1+p {color:blue;}

위의 CSS 코드는 h1 머리글 뒤 (내부 아님)의 첫 번째 단락을 파란색으로 형식화합니다.

h1>p선택 임의 p의 AN 직접 (제 1 세대) 아이 (내부) 소자이다 h1소자.

  • h1>p일치 <h1> <p></p> </h1>( <p>내부 <h1>)

h1+pp요소와 동일한 수준의 돔에서 형제 인 첫 번째 요소를 선택합니다 h1.

  • h1+p일치 <h1></h1> <p><p/>( <p>다음 / 다음 <h1>)

3
나는 사이에 혼동하고있어 plus signgreater sign. h1>p대신 대신 사용 h1+p하면 동일한 결과를 얻습니까? 그들 사이의 차이점을 조금 설명해 주시겠습니까?
lvarayut

91
사용자의 예에서, h1>p임의 선택 p직접적인 (제 1 세대) 자식 요소 h1요소. 요소와 동일한 수준의 돔에서 형제 인 h1+p첫 번째 p요소를 선택합니다 h1. h1>p성냥 <h1><p><p></h1>, h1+p성냥<h1></h1><p><p/>
Matthew Vines

1
@MatthewVines u 대답에 h1> p 및 h1 + p를 추가해야합니다
MonsterMMORPG

따라서 본질적으로 귀하의 예에서 <h1> 다음의 첫 번째 <p>와 일치하지만 <h1> 이전에 오는 경우 동일한 <p>와 일치합니까? 아니면 후에야?
Vincent

53

+기호의 의미는 "인접 형제"를 선택

예를 들어이 스타일은 두 번째 스타일에서 적용됩니다 <p>.

p + p {
   font-weight: bold;
} 
<div>
   <p>Paragraph 1</p>
   <p>Paragraph 2</p>
</div>


이 JSFiddle을 참조하면 이해할 수 있습니다. http://jsfiddle.net/7c05m7tv/ (다른 JSFiddle : http://jsfiddle.net/7c05m7tv/70/ )


브라우저 지원

모든 최신 브라우저에서 인접 형제 선택기가 지원됩니다.


더 알아보기


42

"+"는 인접한 형제 선택기입니다. p를 직접 선택한 후 p를 직접 선택합니다 (자녀 나 부모가 아닌 형제 자매).


23

+선택기가 호출 Adjacent Sibling Selector됩니다.

예를 들어 selector p + pp요소 바로 다음에 p요소를 선택합니다.

looking outside바로 다음 요소를 확인 하는 선택기 로 생각할 수 있습니다 .

다음은 더 명확하게하기위한 샘플 스 니펫입니다.

body {
  font-family: Tahoma;
  font-size: 12px;
}
p + p {
  margin-left: 10px;
}
<div>
  <p>Header paragraph</p>
  <p>This is a paragraph</p>
  <p>This is another paragraph</p>
  <p>This is yet another paragraph</p>
  <hr>
  <p>Footer paragraph</p>
</div>

우리는 동일한 주제이므로 다른 선택기 인 ~선택기를 언급 할 가치 가 있습니다.General Sibling Selector

예를 들어, 뒤에 오는 p ~ p모든 항목을 선택하면 위치는 중요하지 않지만 둘 다 동일한 부모를 가져야합니다.ppp

다음은 동일한 마크 업을 사용하는 모습입니다.

body {
  font-family: Tahoma;
  font-size: 12px;
}
p ~ p {
  margin-left: 10px;
}
<div>
  <p>Header paragraph</p>
  <p>This is a paragraph</p>
  <p>This is another paragraph</p>
  <p>This is yet another paragraph</p>
  <hr>
  <p>Footer paragraph</p>
</div>

p이 샘플 에서는 마지막 항목 도 일치합니다.



8

+상대 선택기 중 하나를 제공합니다. 모든 상대 선택기 목록 :

div p- <p>요소 내부의 모든 요소 <div>가 선택됩니다.

div > p- <p>직계 부모가 <div>선택된 모든 요소 . 거꾸로 작동합니다 ( p < div)

div + p- 요소를 선택한 <p>직후 모든 요소가 배치 <div>됩니다.

div ~ p- <p>요소 앞에 오는 모든 요소 <div>가 선택됩니다.

선택기에 대한 자세한 내용은 여기를 참조하십시오 .


마지막 선택기가 잘못되었습니다. MDN에 따르면 : 일반 형제 연결자 (~하는)이 셀렉터를 분리하고 (하지만 반드시 즉시)가 첫 번째 요소를 다음 경우에만 두 번째 요소와 일치, 둘 다 같은 부모 요소의 자식
카를 레스 알콜 레아

2

다음 단락을 선택하고 Microsoft Word에서와 같이 왼쪽에서 단락의 시작 부분을 들여 씁니다.


2
p+p{
//styling the code
}

p+p{
} simply mean find all the adjacent/sibling paragraphs with respect to first paragraph in DOM body.

    <div>
    <input type="text" placeholder="something">
    <p>This is first paragraph</p>
    <button>Button </button>
    <p> This is second paragraph</p>
    <p>This is third paragraph</p>
    </div>

    Styling part 
    <style type="text/css">
        p+p{
            color: red;
            font-weight: bolder;
        }
    </style>

   It will style all sibling paragraph with red color.

최종 출력은 다음과 같습니다

여기에 이미지 설명을 입력하십시오


1

플러스 (+)는 첫 번째 즉시 요소를 선택합니다. + 선택기를 사용할 때 두 개의 매개 변수를 제공해야합니다. 이것은 div와 span이 매개 변수 이므로이 경우 div가 스타일링 된 후 첫 번째 범위 만 지정됩니다.

 div+ span{
   color: green;
   padding :100px;
}

     <div>The top or first element  </div>
       <span >this is span immediately after div, this will be selected</span>
       <span>This will not be selected</span>

위 스타일은 div 이후 첫 번째 범위에만 적용됩니다. 두 번째 스팬은 선택되지 않습니다.



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