목차
1. 간단한 효과 1
" >2. "간단함"을 거부한 두 번째 효과, sass는 3D 텍스트 믹스인을 구현합니다
" >3. "과다행동"의 세 번째 효과, 애니메이션이 그림자를 움직이게 합니다
" >4 "개성"을 보여주는 네 번째 효과, lettering.js는 단어별 제어를 실현합니다
" >5. "성격" 업그레이드 효과 5, 무지개 단어 애니메이션
6. text-shadow IE9-solution
웹 프론트엔드 CSS 튜토리얼 3D 텍스트 효과를 구현하는 순수 CSS3(소스 코드 분석)

3D 텍스트 효과를 구현하는 순수 CSS3(소스 코드 분석)

May 24, 2021 am 10:02 AM
3d css3

이 글은 3D 텍스트 효과의 구현 원칙을 안내합니다. 코드의 재사용성과 이식성을 고려하지 않았습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

3D 텍스트 효과를 구현하는 순수 CSS3(소스 코드 분석)

1. 간단한 효과 1


작업을 단순화하기 위해 이전 글 "순수한 CSS3 텍스트 효과 권장 사항"과 동일한 문서 구조를 사용하지만 후속 효과는 상당히 다릅니다. .불량일 경우 다시 상장되지 않습니다.

<div contenteditable="true" class="text effect01">前端开发whqet</div>
로그인 후 복사

Css에서 먼저 전역 설정을 살펴보겠습니다. 이전 글과 동일하지만, 시각적 피로를 피하기 위해 배경색과 텍스트 색상을 수정했습니다.

body{  
  background-color: #666;  
}  
@import url(http://fonts.googleapis.com/css?family=Dosis:500,800);  
.text {  
    font-family:"微软雅黑", "Dosis", sans-serif;  
    font-size: 80px;  
    text-align: center;  
    font-weight: bold;  
    line-height:200px;  
    text-transform:uppercase;  
    position: relative;  
}
로그인 후 복사

그런 다음 간단한 효과 1의 핵심 코드가 있습니다

/*简单单纯的效果一*/
.effect01{
    background-color: #7ABCFF;
    color:#FFD300;
    text-shadow:
        0px 0px 0 #b89800, 
        1px -1px 0 #b39400, 
        2px -2px 0 #ad8f00, 
        3px -3px 0 #a88b00, 
        4px -4px 0 #a38700, 
        5px -5px 0 #9e8300, 
        6px -6px 0 #997f00, 
        7px -7px 0 #947a00, 
        8px -8px 0 #8f7600, 
        9px -9px 0 #8a7200, 
        10px -10px 0 #856e00, 
        11px -11px 0 #806a00, 
        12px -12px 0 #7a6500, 
        13px -13px 12px rgba(0, 0, 0, 0.55), 
        13px -13px 1px rgba(0, 0, 0, 0.5);
}
로그인 후 복사

여기서 텍스트 그림자를 사용하여 3차원 효과를 얻는 세 가지 요소가 있음을 알 수 있습니다.

  • 여러 그림자를 설정하여 입체적인 효과를 얻습니다. 깊이,
  • 그림자의 수준과 합이 수직 오프셋 변화로 방향성을 만들고, 그림자의
  • 색상 그라데이션이 경이로움을 만들어냅니다.

이 구현 방법은 간단하지만 이식성이 좋지 않고 재사용성이 좋지 않습니다. 입체 캐릭터를 어떻게 다른 방향으로 수정할 수 있을까요? 다양한 색상의 입체 캐릭터를 구현하는 방법은 무엇입니까? 단어마다 다른 효과를 얻는 것이 지루하다면 어떻게 해야 할까요? 그렇다면 애니메이션이 필요하다면 어떨까요?

다음으로, "간단한" 효과 1을 점차적으로 개선하여 이러한 질문에 하나씩 답변해 드리겠습니다.

2. "간단함"을 거부한 두 번째 효과, sass는 3D 텍스트 믹스인을 구현합니다


아동 신발이 말하길, 형님, 이전과 별반 다를 게 없는 것 같은데요? 하나? 인내심을 갖고 코드를 살펴본 후에 이해하게 될 것입니다.

Sass를 사용하여 텍스트 3D 믹스인을 작성했습니다. 이 믹스인을 사용하면 입체 캐릭터의 깊이, 방향, 엇갈림 정도를 쉽게 제어할 수 있습니다.

/*  对“单纯”说不的效果二,  sass实现的华丽转身  */
 
/**
* 利用text-shadow实现3d文字效果
*
* $color     立体字的初始颜色
* $dx        立体字水平偏移位置,dx>0,向右偏,建议取值[-2,2]
* $dy        立体字垂直偏移位置,dy>0,向下偏,建议取值[-2,2],dx和dy配合控制立体字的方向
* $steps     立体字的层叠数量
* $darken    立体字的颜色变暗数值,建议取值[0,1],需要结合层叠数量,避免过多的黑色出现
* @copyright 前端开发whqet,http://blog.csdn.net/whqet 
*/
@mixin text3d($color: #ffd300, $dx: 1, $dy: -1,$steps:10, $darken:.1) {
  color:$color;
  $color:darken($color,30%);
 
  $output: &#39;&#39;;
  $x:0px;
  $y:0px;
  @for $n from 1 to $steps{
    $output: $output + &#39;#{$x} #{$y} 0 #{$color},&#39;;
    $x:$x+$dx;
    $y:$y+$dy;
    $color:darken($color, $darken * ($n+10));
  }
  $output: $output+&#39;#{$x} #{$y} 12px rgba(0,0,0,0.3),#{$x} #{$y} 1px rgba(0,0,0,0.5);&#39;;
  
  text-shadow:unquote($output);
}
 
.effect02{
    @include text3d(#00d3ff,1,-1,15,.05);
}
로그인 후 복사

자세히 살펴보겠습니다. Sass에 구현된 이 믹스인을 사용하면 입체적인 캐릭터를 쉽게 구현하고 애니메이션화할 수 있습니다.

3. "과다행동"의 세 번째 효과, 애니메이션이 그림자를 움직이게 합니다


효과 2에 믹스인을 사용하면 효과 3이 자연스럽게 나타납니다.

/*  “多动”效果三, 加上动画 */
.effect03{
  animation:animateShadow 2s linear infinite; 
}
@keyframes animateShadow{  
  0% {@include text3d(#00d3ff,1,1,15,.05); }
  25% {@include text3d(#00d3ff,-1,-1,15,.05); }
  50% {@include text3d(#00d3ff,1,1,15,.05); }
  75% {@include text3d(#00d3ff,-1.5,1.5,15,.05); }
}
로그인 후 복사

4 "개성"을 보여주는 네 번째 효과, lettering.js는 단어별 제어를 실현합니다


lettering.js는 문자열을 분할할 수 있는 강력한 jquery 플러그인입니다. 아래 코드가 표시됩니다.

<div contenteditable="true" class="text effect04">前端开发whqet</div>
<!-- 拆分成这样 -->
<div contenteditable="true" class="text effect04">
	<span class="char1">前</span>
	<span class="char2">端</span>
	<span class="char3">开</span>
	<span class="char4">发</span>
	<span class="char5">w</span>
	<span class="char6">h</span>
	<span class="char7">q</span>
	<span class="char8">e</span>
	<span class="char9">t</span>
</div>
로그인 후 복사

jquery.js와 lettering.js를 페이지로 가져와야 사용할 수 있습니다.

<!-- 引入jquery,cdn方式 -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- 引入lettering,cdn方式 -->
<script src="//cdnjs.cloudflare.com/ajax/libs/lettering.js/0.6.1/jquery.lettering.min.js"></script>
<!-- 使用lettering -->
<script>
	//JS is only used to keep the HTML markup clean
	$(".effect04").lettering();
</script>
로그인 후 복사

그런 다음 sass를 사용하여 개인화된 제어를 구현하고 adjust-hue는 연속적인 색조 색상을 생성하고 @for 루프는 순회를 구현합니다.

/*   彰显“个性”的效果四,lettering.js实现逐字控制 */
.effect04{
  letter-spacing:.1em;
}
$base:#FFD300;
@for $i from 1 through 9 {
  .effect04 .char#{$i} { 
    @include text3d(adjust-hue($base, $i *15deg),-1,1,10,.05)
  }
}
로그인 후 복사

5. "성격" 업그레이드 효과 5, 무지개 단어 애니메이션


/*   “个性”升级的效果五,彩虹字 */
@for $i from 1 through 10 {
  .effect05 .char#{$i} { 
    animation: rainbow 2s linear infinite;
    animation-delay: 0.1s * $i;
  }
}
$base2:#7E00FF;
@keyframes rainbow {
  @for $i from 0 through 10 {
    #{$i* 10%}  {@include text3d(adjust-hue($base2, $i *36deg), 1, 1, 10,.1); }
  }
}
로그인 후 복사

6. text-shadow IE9-solution

물론, IE10까지는 text -shadow를 받았습니다. 상대적으로 완벽한 지원을 제공하므로 IE9로 무엇을 해야 할까요? 특히 XP의 열렬한 팬인 중국에서는 더욱 그렇습니다. 다행히 IE와 함께 제공되는 필터도 동일한 효과를 얻을 수 있으므로 텍스트 섀도우 폴리필이 있습니다. 여기서는 sass를 사용하여 텍스트 섀도우를 패치합니다.

이 경우에는 IE9 이하 브라우저용입니다. text3d 믹스인을 이렇게 수정해야 합니다

/**
* 利用text-shadow实现3d文字效果
*
* $color     立体字的初始颜色
* $dx        立体字水平偏移位置,dx>0,向右偏,建议取值[-2,2]
* $dy        立体字垂直偏移位置,dy>0,向下偏,建议取值[-2,2],dx和dy配合控制立体字的方向
* $steps     立体字的层叠数量
* $darken    立体字的颜色变暗数值,建议取值[0,1],需要结合层叠数量,避免过多的黑色出现
* @copyright 前端开发whqet,http://blog.csdn.net/whqet 
*/
@mixin text3d($color: #ffd300, $dx: 1, $dy: -1,$steps:10, $darken:.1) {
  color:$color;
  $color:darken($color,30%);
 
  $output: &#39;&#39;;
  $x:0px;
  $y:0px;
  @for $n from 1 to $steps{
    $output: $output + &#39;#{$x} #{$y} 0 #{$color},&#39;;
    $x:$x+$dx;
    $y:$y+$dy;
    $color:darken($color, $darken * ($n+10));
  }
  $output: $output+&#39;#{$x} #{$y} 12px rgba(0,0,0,0.3),#{$x} #{$y} 1px rgba(0,0,0,0.5);&#39;;
  
  //for the mordern browser
  //text-shadow:unquote($output);
  
  //just for ie9-,这里做了修改
  @include jquery-text-shadow(unquote($output));
}
로그인 후 복사

즐기세요.

케이스 효과는 여전히 codepen에 있습니다:

온라인 조사: http://codepen.io/whqet/pen/eGuqf

더 보기 프로그래밍 관련 지식은 프로그래밍 비디오를 방문하세요! !

위 내용은 3D 텍스트 효과를 구현하는 순수 CSS3(소스 코드 분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

순수한 CSS3로 물결 효과를 얻는 방법은 무엇입니까? (코드 예) 순수한 CSS3로 물결 효과를 얻는 방법은 무엇입니까? (코드 예) Jun 28, 2022 pm 01:39 PM

순수한 CSS3로 물결 효과를 얻는 방법은 무엇입니까? 이 기사에서는 SVG 및 CSS 애니메이션을 사용하여 물결 효과를 만드는 방법을 소개합니다. 도움이 되길 바랍니다.

자율주행 분야에서 Gaussian Splatting이 인기를 끌면서 NeRF가 폐기되기 시작한 이유는 무엇입니까? 자율주행 분야에서 Gaussian Splatting이 인기를 끌면서 NeRF가 폐기되기 시작한 이유는 무엇입니까? Jan 17, 2024 pm 02:57 PM

위에 작성됨 및 저자의 개인적인 이해 3DGS(3차원 가우스플래팅)는 최근 몇 년간 명시적 방사선장 및 컴퓨터 그래픽 분야에서 등장한 혁신적인 기술입니다. 이 혁신적인 방법은 수백만 개의 3D 가우스를 사용하는 것이 특징이며, 이는 주로 암시적 좌표 기반 모델을 사용하여 공간 좌표를 픽셀 값에 매핑하는 NeRF(Neural Radiation Field) 방법과 매우 다릅니다. 명시적인 장면 표현과 미분 가능한 렌더링 알고리즘을 갖춘 3DGS는 실시간 렌더링 기능을 보장할 뿐만 아니라 전례 없는 수준의 제어 및 장면 편집 기능을 제공합니다. 이는 3DGS를 차세대 3D 재구성 및 표현을 위한 잠재적인 게임 체인저로 자리매김합니다. 이를 위해 우리는 처음으로 3DGS 분야의 최신 개발 및 관심사에 대한 체계적인 개요를 제공합니다.

Microsoft Teams의 3D Fluent 이모티콘에 대해 알아보기 Microsoft Teams의 3D Fluent 이모티콘에 대해 알아보기 Apr 24, 2023 pm 10:28 PM

특히 Teams 사용자라면 Microsoft가 업무 중심 화상 회의 앱에 새로운 3DFluent 이모티콘을 추가했다는 사실을 기억해야 합니다. Microsoft가 작년에 Teams 및 Windows용 3D 이모티콘을 발표한 후 실제로 플랫폼용으로 업데이트된 기존 이모티콘이 1,800개 이상 나타났습니다. 이 큰 아이디어와 Teams용 3DFluent 이모티콘 업데이트 출시는 공식 블로그 게시물을 통해 처음 홍보되었습니다. 최신 Teams 업데이트로 FluentEmojis가 앱에 제공됩니다. Microsoft는 업데이트된 1,800개의 이모티콘을 매일 사용할 수 있다고 밝혔습니다.

카메라 또는 LiDAR를 선택하시겠습니까? 강력한 3D 객체 감지 달성에 대한 최근 검토 카메라 또는 LiDAR를 선택하시겠습니까? 강력한 3D 객체 감지 달성에 대한 최근 검토 Jan 26, 2024 am 11:18 AM

0. 전면 작성&& 자율주행 시스템은 다양한 센서(예: 카메라, 라이더, 레이더 등)를 사용하여 주변 환경을 인식하고 알고리즘과 모델을 사용하는 고급 인식, 의사결정 및 제어 기술에 의존한다는 개인적인 이해 실시간 분석과 의사결정을 위해 이를 통해 차량은 도로 표지판을 인식하고, 다른 차량을 감지 및 추적하며, 보행자 행동을 예측하는 등 복잡한 교통 환경에 안전하게 작동하고 적응할 수 있게 되므로 현재 널리 주목받고 있으며 미래 교통의 중요한 발전 분야로 간주됩니다. . 하나. 하지만 자율주행을 어렵게 만드는 것은 자동차가 주변에서 일어나는 일을 어떻게 이해할 수 있는지 알아내는 것입니다. 이를 위해서는 자율주행 시스템의 3차원 객체 감지 알고리즘이 주변 환경의 객체의 위치를 ​​포함하여 정확하게 인지하고 묘사할 수 있어야 하며,

CLIP-BEVFormer: BEVFormer 구조를 명시적으로 감독하여 롱테일 감지 성능을 향상시킵니다. CLIP-BEVFormer: BEVFormer 구조를 명시적으로 감독하여 롱테일 감지 성능을 향상시킵니다. Mar 26, 2024 pm 12:41 PM

위에 작성 및 저자의 개인적인 이해: 현재 전체 자율주행 시스템에서 인식 모듈은 중요한 역할을 합니다. 자율주행 시스템의 제어 모듈은 적시에 올바른 판단과 행동 결정을 내립니다. 현재 자율주행 기능을 갖춘 자동차에는 일반적으로 서라운드 뷰 카메라 센서, 라이더 센서, 밀리미터파 레이더 센서 등 다양한 데이터 정보 센서가 장착되어 다양한 방식으로 정보를 수집하여 정확한 인식 작업을 수행합니다. 순수 비전을 기반으로 한 BEV 인식 알고리즘은 하드웨어 비용이 저렴하고 배포가 용이하며, 출력 결과를 다양한 다운스트림 작업에 쉽게 적용할 수 있어 업계에서 선호됩니다.

Windows 11의 Paint 3D: 다운로드, 설치 및 사용 가이드 Windows 11의 Paint 3D: 다운로드, 설치 및 사용 가이드 Apr 26, 2023 am 11:28 AM

새로운 Windows 11이 개발 중이라는 소문이 퍼지기 시작했을 때 모든 Microsoft 사용자는 새 운영 체제가 어떤 모습일지, 어떤 결과를 가져올지 궁금해했습니다. 추측 끝에 Windows 11이 여기에 있습니다. 운영 체제에는 새로운 디자인과 기능 변경이 포함되어 있습니다. 일부 추가 기능 외에도 기능 지원 중단 및 제거가 함께 제공됩니다. Windows 11에 없는 기능 중 하나는 Paint3D입니다. 서랍, 낙서, 낙서에 적합한 클래식 페인트를 계속 제공하지만 3D 제작자에게 이상적인 추가 기능을 제공하는 Paint3D를 포기합니다. 몇 가지 추가 기능을 찾고 있다면 최고의 3D 디자인 소프트웨어로 Autodesk Maya를 추천합니다. 좋다

카드 한장으로 30초만에 가상 3D 아내를 만나보세요! Text to 3D는 Maya, Unity 및 기타 제작 도구와 원활하게 연결되어 명확한 모공 세부 정보를 갖춘 고정밀 디지털 휴먼을 생성합니다. 카드 한장으로 30초만에 가상 3D 아내를 만나보세요! Text to 3D는 Maya, Unity 및 기타 제작 도구와 원활하게 연결되어 명확한 모공 세부 정보를 갖춘 고정밀 디지털 휴먼을 생성합니다. May 23, 2023 pm 02:34 PM

ChatGPT는 AI 산업에 닭의 피를 주입했고, 한때 상상할 수 없었던 모든 것이 오늘날 기본적인 관행이 되었습니다. 계속해서 발전하고 있는 Text-to-3D는 Diffusion(이미지), GPT(텍스트)에 이어 AIGC 분야의 차세대 핫스팟으로 평가되며 전례 없는 주목을 받고 있습니다. 아니요, ChatAvatar라는 제품은 공개 베타 버전으로 출시되어 빠르게 700,000회 이상의 조회수와 관심을 얻었으며 Spacesofttheweek에 소개되었습니다. △ChatAvatar는 AI가 생성한 단일 시점/다중 시점 원본 그림에서 3D 스타일화된 캐릭터를 생성하는 Imageto3D 기술도 지원합니다. 현재 베타 버전에서 생성된 3D 모델은 큰 주목을 받았습니다.

CSS를 능숙하게 사용하여 다양한 이상한 모양의 버튼 구현(코드 포함) CSS를 능숙하게 사용하여 다양한 이상한 모양의 버튼 구현(코드 포함) Jul 19, 2022 am 11:28 AM

이 글에서는 CSS를 활용하여 자주 나타나는 다양한 모양의 버튼을 쉽게 구현하는 방법을 알려드리겠습니다. 도움이 되셨으면 좋겠습니다.

See all articles