>웹 프론트엔드 >CSS 튜토리얼 >조건부 논리 대신 CSS&# 유일한 자식

조건부 논리 대신 CSS&# 유일한 자식

DDD
DDD원래의
2024-10-26 11:09:29613검색

제가 작업하는 많은 프런트엔드 프레임워크에는 HTML 로직에 삼항 또는 if-브랜치를 삽입하는 옵션이 있습니다. 제가 많이 사용하는 논리입니다. 특별한 경우 중 하나는 데이터가 없을 때 표시하는 것입니다.

저는 제 삶을 훨씬 쉽게 만들어주는 CSS 패턴인 :only-child 의사 클래스를 우연히 발견했습니다.

반응하다

React에서는 이런 "뭔가"를 할텐데...

{
  data.length === 0
    ? <div>Nothing to show.</div>
    : <TableWithRecords />
}

모난

Angular에서는 이런 "뭔가"를 할텐데...

@if (data.length === 0) {
   <div>Nothing to show.</div>
} @else {
   <TableWithRecords />
}

CSS 사용

간단히 말하면 두 가지 경우가 있습니다.

  1. 데이터가 없습니다.
  2. 데이터가 있습니다.
<h2>No Data Showing</h2>
<ul>
  <li class="handle-no-data">Nothing to show.</li>
  <!-- <li>Data here</li> -->
</ul>

<h2>Data Showing</h2>
<ul>
  <li class="handle-no-data">Nothing to show.</li>
  <li>Data here</li>
</ul>

간단한 CSS 클래스 .single 사용 ...

.handle-no-data:not(:only-child) {
  display: none;
}
.handle-no-data:only-child {
  display: flex;
}

이 CSS는 다음과 같이 단순화될 수 있습니다.

.handle-no-data {
  &:not(:only-child) {
    display: none;
  }
  &:only-child {
    display: flex;
  }
}

위 코드의 결과는 다음과 같습니다...

CSS

요약

보시다시피 데이터 처리를 테이블 수준으로 옮겨야 하지만 CSS는 "데이터 없음" 시나리오를 처리하는 데 매우 간단합니다.

정말 신난다!

위 내용은 조건부 논리 대신 CSS&# 유일한 자식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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