• 회원가입
  • 로그인
  • 구글아이디로 로그인

[selector] CSS - :has() 가상선택자 - 지정 요소 갖는 모든 요소 선택. (= :has선택자 = 해즈선택자)

목차

  1. :has() 예제 - 지정요소 갖는 모든 요소 선택
  2. :has() 정의
  3. :has() 구문
  4. :has() 예제 - 1차 메뉴 허버 시 2차 서브메뉴 전체 보이기
  5. :has() 예제 - 지정요소 바로 앞의 형제요소 선택

 

:has() 예제 - 지정요소 갖는 모든 요소 선택

 

자식 요소로 img 갖는 모든 a 태그.

a:has(> img)

 

바로 뒤에 p 요소가 있는 모든 h1 태그

h1:has(+ p)

 

 

:has() 정의

 

내부에 지정 요소 갖는 모든 요소 선택. (아직 지원 X)

 


 

1.

  • jQuery의 :has() 대응해 도입 예정인 CSS 가상클래스.
  • :has(+ 지정선택자) - 지정선택자 바로 앞의 형제요소 선택.

 

2

IE 제외한 주요 최신 브라우저 모두 지원.

 

3. MDN :has() 예제 보기
https://developer.mozilla.org/en-US/docs/Web/CSS/:has

 

 

:has() 구문

 

:has(selector)

 


[매개변수]

 

selector

필수. 지정 선택자. (※ 모든 요소 가능)

 

 

:has() 예제 - 1차 메뉴 허버 시 2차 서브메뉴 전체 보이기

 

<style>

ul.dropdown {

    display: flex;

    padding: 0;

    background-color: #ddd;

}

ul.dropdown li {

    list-style-type: none;

    list-style-position: inside;

    flex: 1;

    padding: 0.4em;

    border:1px solid silver;

}

ul.dropdown li ul {

    display: none;

}

/*

ul.dropdown li:hover ul {

    display: inherit;

}

*/

ul.dropdown:has(li:hover) ul {

    display: inherit;

}

</style>


<ul class="dropdown">

          <li> 대메뉴1

                <article>

                    <ul>

                        <li>서브메뉴1</li>

                        <li>서브메뉴2</li>

                        <li>서브메뉴3</li>

                    </ul>

                </article>

          </li>

         <li> 대메뉴2

                <article>

                    <ul>

                        <li>서브메뉴1</li>

                        <li>서브메뉴2</li>

                        <li>서브메뉴3</li>

                    </ul>

                </article>

          </li>

          <li> 대메뉴3

                <article>

                    <ul>

                        <li>서브메뉴1</li>

                        <li>서브메뉴2</li>

                        <li>서브메뉴3</li>

                    </ul>

                </article>

          </li>

</ul>


결과보기

배르만 님 (241231) https://sir.kr/qa/549654

 

:has() 예제 - 지정요소 바로 앞의 형제요소 선택

(예) .hz 클래스 갖은 요소의 바로 앞 div 요소 선택.

 

<style>

:has(+ .hz) {color: red;}

.hz {color:green;}

.hz+div {color:blue;}
</style>

<div>홈짱닷컴</div>

<div class="hz">Homzzang.com</div>

<div>홈페이지 제작관리</div>

 

결과보기

 


분류 제목
css CSS - tab-size 속성 - 탭크기(=탭너비) 지정 (= tab-size속성 = 탭사이즈속성)
counter CSS - counter() 함수 / counters() 함수 - 카운터 값을 요소에 추가 (= counte…
css CSS - clip-path 속성 - 보일 범위 지정해 자르기 (= clip-path속성 = 클립패스속성) …
text CSS - text-emphasis-color 속성 - 텍스트 강조마크의 색상 지정 (= text-empha…
grid CSS - grid-template-columns 속성(C) ★ - 그리드 열 개수와 너비 지정 (= gri…
font CSS - font-stretch 속성 - 폰트 너비 조정 (= font-stretch속성 = 폰트스트레치속…
css CSS - widows 속성 - 페이지나 열의 상단에 남겨야 하는 최소 줄 수 지정 (= widows속성 =…
font CSS - font-size-adjust 속성 - 소문자 x 높이 기준으로, 대체 글꼴 크기 재조정 (= f…
background CSS - background-position-y 속성 - 배경이미지 y축위치(=수직위치) 설정 (= bac…
text CSS - text-emphasis-position 속성 - 텍스트 강조마크 위치 지정 (= text-emp…
grid CSS - grid-template-areas 속성(C) - 그리드 아이템의 컬럼 영역 지정 (= grid-…
text CSS - text-decoration-thickness 속성 - 텍스트라인 두께 지정 (= text-dec…
counter CSS - counter-increment 속성 - 카운터 값 증가 (= counter-increment속성…
css CSS - 지그재그 톱날모양 물결무늬
box CSS - aspect-ratio 속성 - 요소의 종횡비율(= 가로세로비율) 지정 (= aspect-rati…
grid CSS - grid-template-rows 속성(C) - 그리드 행 개수와 높이 지정 (= grid-tem…
intro CSS - @import 구문 - 지정 외부스타일시트파일을 현재 스타일시트에 삽입/가져오기 (= @impor…
text CSS - text-underline-offset 속성 - 텍스트와 밑줄라인과의 간격 지정 (= text-u…
text CSS - text-emphasis-style 속성 - 텍스트 강조마크 모양 지정 (= text-emphas…
counter CSS - counter-reset 속성 - 카운터변수 생성/초기값재설정 (= counter-reset속성 …
10/27
목록
찾아주셔서 감사합니다. Since 2012