Jadual Kandungan
1.单单纯纯的效果一
2.对“单纯”说不的效果二,sass实现3d文字mixin
3.“多动”的效果三,animation让阴影动起来
4. 彰显“个性”的效果四,lettering.js实现逐字控制
5. “个性”升级的效果五,彩虹字动画
6.text-shadow IE9-的解决方案
Rumah hujung hadapan web tutorial css 纯CSS3实现3d立体文字效果(源码分析)

纯CSS3实现3d立体文字效果(源码分析)

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

本篇文章带大家了解一下3d文字效果的实现原理,没有考虑代码的复用性和可移植性,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

纯CSS3实现3d立体文字效果(源码分析)

1.单单纯纯的效果一


为了简化操作,我们使用和上一篇文章《纯CSS3文字效果推荐》一样的文档结构,后面的效果大差小不差,也就不再列出。

<div contenteditable="true" class="text effect01">前端开发whqet</div>
Salin selepas log masuk

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;  
}
Salin selepas log masuk

然后是简单单纯的效果一的核心代码

/*简单单纯的效果一*/
.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);
}
Salin selepas log masuk

从中我们可以看出,利用text-shadow实现立体效果的要素有三:

  • 设置多个阴影实现纵深感,
  • 阴影的水平和垂直偏移变化实现方向感,
  • 阴影的颜色渐变实现错落感。

这种实现的方式虽说单纯,但是可移植性不强、复用性差,试想一下,不同方向的立体字如何修改?不同颜色的立体字如何实现?逐字实现不同效果肿么办?如果需要动画又如何?

接下来,通过逐步完善“单纯”的效果一,我们来一一解答这些疑问。

2.对“单纯”说不的效果二,sass实现3d文字mixin


童鞋们就说了,哥,变化呢,好像跟前面那个没区别呀?大家且耐心,看看代码就明白了。

我用sass写了一个text 3d的mixin,利用这个mixin我们可以轻松控制,立体字的纵深感、方向感、错落感。

/*  对“单纯”说不的效果二,  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);
}
Salin selepas log masuk

肿么样,大家仔细研究啦,利用sass实现的这个mixin,我们可以非常简单的实现立体字,并且可以搞起来动画,请看效果三。

3.“多动”的效果三,animation让阴影动起来


有了效果二中的mixin,效果三就自然而然了。

/*  “多动”效果三, 加上动画 */
.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); }
}
Salin selepas log masuk

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>
Salin selepas log masuk

我们需要在页面里导入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>
Salin selepas log masuk

然后,利用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)
  }
}
Salin selepas log masuk

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); }
  }
}
Salin selepas log masuk

6.text-shadow IE9-的解决方案

当然,不幸的是直到IE10,text-shadow才得到了比较完善的支持,那么IE9-怎么办呢,尤其是在xp的狂热爱好的中国。所幸IE自带的滤镜可以达到一样的效果,所以就有了这个text-shadow polyfill,我们这里使用sass的方式来补丁text-shadow.

这样的话针对ie9以下的浏览器,我们的text3d mixin要这样修改

/**
* 利用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));
}
Salin selepas log masuk

Enjoy it.

案例效果还是在codepen:

在线研究:http://codepen.io/whqet/pen/eGuqf

更多编程相关知识,请访问:编程视频!!

Atas ialah kandungan terperinci 纯CSS3实现3d立体文字效果(源码分析). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mencapai kesan gelombang dengan CSS3 tulen? (contoh kod) Bagaimana untuk mencapai kesan gelombang dengan CSS3 tulen? (contoh kod) Jun 28, 2022 pm 01:39 PM

Bagaimana untuk mencapai kesan gelombang dengan CSS3 tulen? Artikel ini akan memperkenalkan kepada anda cara menggunakan animasi SVG dan CSS untuk mencipta kesan gelombang Saya harap ia akan membantu anda!

Mengapakah Gaussian Splatting begitu popular dalam pemanduan autonomi sehingga NeRF mula ditinggalkan? Mengapakah Gaussian Splatting begitu popular dalam pemanduan autonomi sehingga NeRF mula ditinggalkan? Jan 17, 2024 pm 02:57 PM

Ditulis di atas & pemahaman peribadi pengarang Gaussiansplatting tiga dimensi (3DGS) ialah teknologi transformatif yang telah muncul dalam bidang medan sinaran eksplisit dan grafik komputer dalam beberapa tahun kebelakangan ini. Kaedah inovatif ini dicirikan oleh penggunaan berjuta-juta Gaussians 3D, yang sangat berbeza daripada kaedah medan sinaran saraf (NeRF), yang terutamanya menggunakan model berasaskan koordinat tersirat untuk memetakan koordinat spatial kepada nilai piksel. Dengan perwakilan adegan yang eksplisit dan algoritma pemaparan yang boleh dibezakan, 3DGS bukan sahaja menjamin keupayaan pemaparan masa nyata, tetapi juga memperkenalkan tahap kawalan dan pengeditan adegan yang tidak pernah berlaku sebelum ini. Ini meletakkan 3DGS sebagai penukar permainan yang berpotensi untuk pembinaan semula dan perwakilan 3D generasi akan datang. Untuk tujuan ini, kami menyediakan gambaran keseluruhan sistematik tentang perkembangan dan kebimbangan terkini dalam bidang 3DGS buat kali pertama.

Ketahui tentang emoji Fasih 3D dalam Microsoft Teams Ketahui tentang emoji Fasih 3D dalam Microsoft Teams Apr 24, 2023 pm 10:28 PM

Anda mesti ingat, terutamanya jika anda adalah pengguna Teams, bahawa Microsoft telah menambah kumpulan baharu emoji 3DFluent pada apl persidangan video tertumpu kerjanya. Selepas Microsoft mengumumkan emoji 3D untuk Pasukan dan Windows tahun lepas, proses itu sebenarnya telah melihat lebih daripada 1,800 emoji sedia ada dikemas kini untuk platform. Idea besar ini dan pelancaran kemas kini emoji 3DFluent untuk Pasukan pertama kali dipromosikan melalui catatan blog rasmi. Kemas kini Pasukan Terkini membawa FluentEmojis ke aplikasi Microsoft mengatakan 1,800 emoji yang dikemas kini akan tersedia kepada kami setiap hari

Pilih kamera atau lidar? Kajian terbaru tentang mencapai pengesanan objek 3D yang mantap Pilih kamera atau lidar? Kajian terbaru tentang mencapai pengesanan objek 3D yang mantap Jan 26, 2024 am 11:18 AM

0. Ditulis di hadapan&& Pemahaman peribadi bahawa sistem pemanduan autonomi bergantung pada persepsi lanjutan, membuat keputusan dan teknologi kawalan, dengan menggunakan pelbagai penderia (seperti kamera, lidar, radar, dll.) untuk melihat persekitaran sekeliling dan menggunakan algoritma dan model untuk analisis masa nyata dan membuat keputusan. Ini membolehkan kenderaan mengenali papan tanda jalan, mengesan dan menjejaki kenderaan lain, meramalkan tingkah laku pejalan kaki, dsb., dengan itu selamat beroperasi dan menyesuaikan diri dengan persekitaran trafik yang kompleks. Teknologi ini kini menarik perhatian meluas dan dianggap sebagai kawasan pembangunan penting dalam pengangkutan masa depan satu. Tetapi apa yang menyukarkan pemanduan autonomi ialah memikirkan cara membuat kereta itu memahami perkara yang berlaku di sekelilingnya. Ini memerlukan algoritma pengesanan objek tiga dimensi dalam sistem pemanduan autonomi boleh melihat dan menerangkan dengan tepat objek dalam persekitaran sekeliling, termasuk lokasinya,

CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang Mar 26, 2024 pm 12:41 PM

Ditulis di atas & pemahaman peribadi penulis: Pada masa ini, dalam keseluruhan sistem pemanduan autonomi, modul persepsi memainkan peranan penting Hanya selepas kenderaan pemanduan autonomi yang memandu di jalan raya memperoleh keputusan persepsi yang tepat melalui modul persepsi boleh Peraturan hiliran dan. modul kawalan dalam sistem pemanduan autonomi membuat pertimbangan dan keputusan tingkah laku yang tepat pada masanya dan betul. Pada masa ini, kereta dengan fungsi pemanduan autonomi biasanya dilengkapi dengan pelbagai penderia maklumat data termasuk penderia kamera pandangan sekeliling, penderia lidar dan penderia radar gelombang milimeter untuk mengumpul maklumat dalam modaliti yang berbeza untuk mencapai tugas persepsi yang tepat. Algoritma persepsi BEV berdasarkan penglihatan tulen digemari oleh industri kerana kos perkakasannya yang rendah dan penggunaan mudah, dan hasil keluarannya boleh digunakan dengan mudah untuk pelbagai tugas hiliran.

Cat 3D dalam Windows 11: Muat Turun, Pemasangan dan Panduan Penggunaan Cat 3D dalam Windows 11: Muat Turun, Pemasangan dan Panduan Penggunaan Apr 26, 2023 am 11:28 AM

Apabila gosip mula tersebar bahawa Windows 11 baharu sedang dibangunkan, setiap pengguna Microsoft ingin tahu bagaimana rupa sistem pengendalian baharu itu dan apa yang akan dibawanya. Selepas spekulasi, Windows 11 ada di sini. Sistem pengendalian datang dengan reka bentuk baharu dan perubahan fungsi. Selain beberapa tambahan, ia disertakan dengan penamatan dan pengalihan keluar ciri. Salah satu ciri yang tidak wujud dalam Windows 11 ialah Paint3D. Walaupun ia masih menawarkan Paint klasik, yang bagus untuk laci, doodle dan doodle, ia meninggalkan Paint3D, yang menawarkan ciri tambahan yang sesuai untuk pencipta 3D. Jika anda mencari beberapa ciri tambahan, kami mengesyorkan Autodesk Maya sebagai perisian reka bentuk 3D terbaik. suka

Dapatkan isteri 3D maya dalam masa 30 saat dengan satu kad! Teks kepada 3D menjana manusia digital berketepatan tinggi dengan butiran liang yang jelas, menyambung dengan lancar dengan Maya, Unity dan alat pengeluaran lain Dapatkan isteri 3D maya dalam masa 30 saat dengan satu kad! Teks kepada 3D menjana manusia digital berketepatan tinggi dengan butiran liang yang jelas, menyambung dengan lancar dengan Maya, Unity dan alat pengeluaran lain May 23, 2023 pm 02:34 PM

ChatGPT telah menyuntik satu dos darah ayam ke dalam industri AI, dan segala-galanya yang dahulunya tidak dapat dibayangkan telah menjadi amalan asas hari ini. Text-to-3D, yang terus maju, dianggap sebagai tempat liputan seterusnya dalam medan AIGC selepas Difusi (imej) dan GPT (teks), dan telah mendapat perhatian yang tidak pernah berlaku sebelum ini. Tidak, produk yang dipanggil ChatAvatar telah dimasukkan ke dalam beta awam sederhana, dengan cepat memperoleh lebih 700,000 tontonan dan perhatian, dan telah dipaparkan di Spacesoftheweek. △ChatAvatar juga akan menyokong teknologi Imageto3D yang menjana aksara bergaya 3D daripada lukisan asal perspektif tunggal/berbilang perspektif Model 3D yang dihasilkan oleh versi beta semasa telah mendapat perhatian meluas.

Gunakan CSS dengan mahir untuk merealisasikan pelbagai butang berbentuk pelik (dengan kod) Gunakan CSS dengan mahir untuk merealisasikan pelbagai butang berbentuk pelik (dengan kod) Jul 19, 2022 am 11:28 AM

Artikel ini akan menunjukkan kepada anda cara menggunakan CSS untuk melaksanakan pelbagai butang berbentuk pelik yang kerap muncul. Saya harap ia akan membantu anda!

See all articles