<details>
& <summary>
태그 스타일 꾸미기
HTML <details>
태그를 <summary>
태그와 함께 CSS로 꾸미는 방법에 대해 알아봅니다.
순수 CSS로만 꾸미는 방법과 jQuery를 포함한 자바스크립트를 같이 사용해서 애니메이션 효과 주기 등도 살펴봅니다.
다음의 목차로 예제와 함께 살펴보겠습니다.
사전에 필요로 하는 지식
HTML <details>
와 <summary>
태그의 올바른 이해와 사용 방법에 대해 알고 있어야 합니다.
details 화살표(marker) 스타일 꾸미기
<details>
태그를 브라우저에서 실제 표시된 모습을 보면 화살표 모양의 marker가 보입니다.
흔히 이 marker를 '아이콘'이라고도 부릅니다.
이 화살표 모양의 marker는 <details>
태그의 marker가 아니라, <summary>
태그의 marker입니다.
다음의 코드 예제를 살펴보겠습니다.
위 예제에서 화살표 모양의 marker는 CSS로 사용자 정의 스타일로 변경하거나 제거할 수 있습니다.
하지만, <summary>
태그가 표준화되면서 아직 실험적인 구현으로 인해 브라우저별로 이 사용자 정의 스타일을 지원하는 방식의 차이가 있으므로 한동안 여러 접근 방식을 사용해야 합니다.
details 화살표(marker) 제거하기
details 화살표(marker)를 브라우저 화면에서 제거하기 위해서는
- Safari 브라우저와
- 그 외의 브라우저로 나누어
사용자 정의 스타일을 지정해야 합니다.
다음은 details 화살표(marker)를 제거하기 위한 사용자 정의 스타일 예제 코드입니다.
요약 내용
추가 정보나 세부 내용- Safari 브라우저에서 details 화살표(marker) 제거하기 위해서는
비표준 CSS 가상 요소인
::-webkit-details-marker
를 통해 사용자 정의 스타일을 제거 할 수 있습니다. - 그 외 브라우저에서는
<summary>
태그의display
속성의 값이list-item
입니다. 이는 HTML 기본 사양에 따라 요소의 기본 마커가::marker
가장 요소 선택자로 스타일이 지원되는데, 이 마커를 제거하기 위해서는<summary>
태그에list-style-type: none;
으로 마커를 제거하거나(::marker
가장 요소 선택자는display
속성의 값이list-item
일 경우에만 생성이 됩니다.display
속성의 값이 바뀌면 제거됩니다.) 이 속성의 단축 표현(shorthand property)인list-style: none;
으로 제거하면 됩니다. 물론,<summary>
태그의display
속성의 값을 변경해서 기본으로 지원하는 마커를 제거할 수도 있습니다.
다음은 <summary>
태그의 display
속성의 값을 변경해서 기본으로 지원하는 마커를 제거하는 예제입니다.
위 예제에서는 <summary>
태그의 display
값을 block
으로 변경해서 기본으로 지원하는 마커를 제거한 것이지만, list-item
값이 아닌 다른 값으로 변경하면 동일한 효과를 나타낼 수 있습니다. 예를 들어, display: flex;
, display: inline-block
등이 이에 해당합니다. 이는 개발자가 판단해서 가장 효율적인 값을 사용하면 됩니다.
다음은 <summary>
태그와 <summary>
태그의 display
속성의 값이 list-item
에 대한 브라우저 호환성입니다.
마지막 업데이트 정보: 2024-11-20
태그와 속성 값 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
<summary>
|
12 | 79 | 49 | 6 |
display: list-item
|
89 | 89 | 49 | 지원하지 않음 |
details 화살표(marker) 커스텀으로 꾸미기
details 화살표(marker)를 커스텀으로 꾸미기 위해서는 먼저 details 화살표(marker)를 브라우저 화면에서 제거한 후, ::before
나 ::after
가상 요소로 화살표(marker)를 만들어 꾸며줍니다.
요약 내용
추가 정보나 세부 내용details 어코디언(accordion) 만들기
HTML <details>
태그를 <summary>
태그와 함께 어코디언(accordion) 꾸미기에 대한 예제들을 살펴보겠습니다.
- 순수 CSS로만 어코디언 꾸미기
- CSS와 jQuery로 애니메이션 어코디언 꾸미기
순수 CSS로만 어코디언 꾸미기
CSS와 jQuery로 애니메이션 어코디언 꾸미기
일러두기
아래의 예제 코드는 단순 샘플 코드입니다. 웹 접근성에 있어서 완벽하지 않습니다. 단순히 스타일 꾸미기와 작동을 이해하는 예제로만 활용하세요!