웹 프론트엔드 CSS 튜토리얼 #TIL: 디스플레이 테이블과 인라인이 컨테이너 쿼리와 호환되지 않습니다.

#TIL: 디스플레이 테이블과 인라인이 컨테이너 쿼리와 호환되지 않습니다.

Jan 23, 2025 pm 12:17 PM

연구 노트: 컨테이너 쿼리와 테이블 표시 모드 간의 충돌

#TIL: Display table and inline are incompatible with container queries

최근 웹 구성 요소에서 문제가 발생했습니다. 화면 너비에 따라 테이블의 일부 열을 숨겨야 합니다.

표의 두 번째와 세 번째 열(헤더와 셀 포함)을 숨겨야 한다고 가정하면 CSS 코드는 다음과 같습니다.

:is(th, td):is(:nth-child(2), :nth-child(3)) {
    display: none;
}
로그인 후 복사

좁은 화면(600px 미만)에서만 이러한 열을 숨기기 위해 컨테이너 쿼리를 사용해 보았습니다.

table { /* 这部分不起作用 */
  container-type: inline-size;
}

/* 窄屏幕下隐藏第二列和第三列 */
:is(td, th):is(:nth-child(2), :nth-child(3)) {
  @container (width < 600px) {
    display: none;
  }
}
로그인 후 복사

그러나 이 코드는 작동하지 않습니다. 그 이유는 컨테이너 쿼리가 특정 display 값(

)과만 호환되기 때문입니다.
<code>- block
- inline-block
- flex
- inline-flex
- grid
- inline-grid
- flow-root</code>
로그인 후 복사

호환되지 않는 display 값에는 inline, contents, none 및 모든 테이블 관련 display 값이 포함됩니다: table, table-row-group, table-header-group, table-footer-group, table-row, table-cell, table-column-group, table-column, table-caption.

해결 방법은 테이블의 상위 요소에 컨테이너 쿼리를 적용하는 것입니다. 내 테이블은 웹 구성 요소 내부에 있고 웹 구성 요소의 기본 display 값은 inline입니다. 문제를 해결하려면 구성요소의 display 속성을 ​​block으로 변경하세요.

:host {
  container-type: inline-size;
  display: block;
}

/* 窄屏幕下隐藏第二列和第三列 */
:is(td,th):is(:nth-child(2),:nth-child(3)) {
  @container (width &lt; 600px) {
    display: none;
  }
}
로그인 후 복사

내 스타일이 Shadow DOM에 있고 컨테이너 쿼리의 범위가 Shadow DOM에 의해 제한되기 때문에 :host 선택기가 코드에 사용되었습니다. Light DOM을 사용하는 경우 구성 요소의 하이픈 태그 이름을 사용할 수 있습니다. 이 접근 방식은 테이블의 의미를 파괴하지 않습니다.

위 내용은 #TIL: 디스플레이 테이블과 인라인이 컨테이너 쿼리와 호환되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WordPress 블록 및 요소에 상자 그림자를 추가합니다 WordPress 블록 및 요소에 상자 그림자를 추가합니다 Mar 09, 2025 pm 12:53 PM

WordPress 블록 및 요소에 상자 그림자를 추가합니다

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Mar 07, 2025 am 11:33 AM

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 Mar 02, 2025 am 09:03 AM

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다

첫 번째 맞춤형 전환을 만듭니다 첫 번째 맞춤형 전환을 만듭니다 Mar 15, 2025 am 11:08 AM

첫 번째 맞춤형 전환을 만듭니다

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 Mar 04, 2025 am 10:22 AM

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교

node.js 및 Express의 Multer와 함께 파일 업로드 node.js 및 Express의 Multer와 함께 파일 업로드 Mar 02, 2025 am 09:15 AM

node.js 및 Express의 Multer와 함께 파일 업로드

GraphQL 캐싱 작업 GraphQL 캐싱 작업 Mar 19, 2025 am 09:36 AM

GraphQL 캐싱 작업

Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료) Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료) Mar 01, 2025 am 09:32 AM

Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료)

See all articles