가변 글꼴로 인해 -webkit-text-Stroke CSS 속성을 사용하는 텍스트 스트로크 렌더링에 불일치가 발생할 수 있습니까?

DDD
풀어 주다: 2024-10-24 06:00:30
원래의
906명이 탐색했습니다.

Can Variable Fonts Cause Discrepancies in Text Stroke Rendering with -webkit-text-stroke CSS Property?

텍스트 스트로크(-webkit-text-Stroke) CSS 문제

NextJs 및 TailwindCSS를 사용하는 프로젝트에서 사용자는 텍스트 스트로크(-webkit- 텍스트 획)이 브라우저마다 다르게 렌더링되어 특히 Chrome 이외의 브라우저에서 일관되지 않은 결과가 나타납니다.

문제 설명:

원하는 획 효과를 얻지 못하여 결과적으로 제공된 이미지에 표시된 대로 획이 없거나 지나치게 두껍고 바람직하지 않은 모양입니다.

코드 조각:

<code class="html"><div className="outline-title text-white pb-2 text-5xl font-bold text-center mb-12 mt-8">
  Values &amp;amp; Process
</div></code>
로그인 후 복사
<code class="css">.outline-title {
  color: rgba(0, 0, 0, 0);
  -webkit-text-stroke: 2px black;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}</code>
로그인 후 복사

근본 원인 :

조사 결과 이 ​​문제는 -webkit-text-Stroke 속성과 가변 글꼴의 비호환성으로 인해 발생하는 것으로 나타났습니다. 이 문제는 주로 Firefox, Safari, Edge 등 가변 글꼴을 지원하는 브라우저에 영향을 미칩니다. 가변 글꼴을 완벽하게 지원하지 않는 Chrome에서는 예상대로 원하는 획 효과가 나타났습니다.

Quickfix/Update 2024:

HTML에 페인트 순서 적용 텍스트

이 문제를 해결하려면 HTML 텍스트 요소에 페인트 순서 속성을 적용해야 합니다. 이전에 HTML 텍스트에 대해 정의되지 않았던 이 속성을 사용하면 이제 획 및 채우기의 렌더링 순서를 제어하여 원하는 획 효과를 얻을 수 있습니다.

<code class="css">h1 {
  -webkit-text-stroke: 0.02em black;
  color: #fff;
  font-stretch: 0%;
  font-weight: 200;
}

/* render stroke behind text-fill color */

.outline {
  -webkit-text-stroke: 0.04em black;
  paint-order: stroke fill;
}</code>
로그인 후 복사

페인트 순서를 "획 채우기"로 설정하면 획은 텍스트 채우기 뒤에 렌더링되어 원하는 윤곽선 효과를 얻습니다. 이 솔루션은 브라우저 간 호환 가능하며 Firefox, Safari, Edge 및 Chrome을 포함한 모든 주요 브라우저에서 효과적으로 작동합니다.

위 내용은 가변 글꼴로 인해 -webkit-text-Stroke CSS 속성을 사용하는 텍스트 스트로크 렌더링에 불일치가 발생할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!