大数跨境
0
0

超萌柴犬网页

超萌柴犬网页 码途钥匙
2025-08-28
0
· 点击蓝字,关注我们

































效果图


一、HTML

用标签和组件化思路搭建页面结构,让柴犬元素有序呈现:

引入基础样式库和特色字体(如 “Baloo”“Kosugi Maru”),为可爱风格打底;

用自定义<mochi-box>组件封装每个柴犬卡片,内置名字、品种等信息插槽,让代码更规整;

预留 SVG 容器承载柴犬图形,后续通过 CSS 和 JS 控制表情、姿态,为交互埋下伏笔。



二、CSS

CSS 是打造萌感的核心,从颜色到动效全拿捏:

基础样式:定义柴犬毛发、鼻子、舌头等元素的默认色(如浅棕色毛发、粉色舌头),不同品种(芝麻色、樱花色)通过类名切换专属配色;

表情控制:用visibility属性隐藏 / 显示不同表情组件(眨眼、脸红、吐舌),配合类名快速切换 “开心”“害羞”“调皮” 等状态;

交互动效:添加鼠标悬浮 / 点击动画,比如柴犬弹出、爪子微动、眼睛 wink,让静态图形瞬间 “活” 起来,提升互动感。



三、JS

借助 Vue 实现组件化交互,轻松控制柴犬状态:

组件封装:把柴犬图形拆成<MochiShiba>(身体)和<MochiPaws>(爪子)组件,支持传入 “表情”“耳朵姿态”“是否脸红” 等参数;

动态切换:通过计算属性将参数转化为 CSS 类名,实时更新柴犬的耳朵方向(立耳 / 垂耳)、眼睛状态(睁眼 / 眨眼);

随机互动:添加 “随机柴犬” 功能,点击按钮可随机切换品种、表情和姿态,让页面充满新鲜感,增强用户参与感。



四、代码

<!DOCTYPE html><html lang="zh">  <head>    <meta charset="UTF-8" />    <title>可爱的柴犬</title>    <link      rel="stylesheet"      href="https://public.codepenassets.com/css/normalize-5.0.0.min.css"    />    <link      rel="stylesheet"      href="https://fonts.googleapis.com/css?family=Baloo|Kosugi+Maru&amp;display=swap"    />    <style>      .MochiShiba path,      .MochiPaws path {        fill: none;        stroke: none;        stroke-width1.2;        stroke-miterlimit: 10;        stroke-linejoin: round;        stroke-linecap: round;      }      .MochiShiba .thin,      .MochiPaws .thin {        stroke-width0.8;      }      .MochiShiba #eyes path,      .MochiPaws #eyes path {        stroke-width2;      }      .MochiShiba .fur,      .MochiPaws .fur {        fill: #dd9e47;      }      .MochiShiba .fur2,      .MochiPaws .fur2 {        fill: white;      }      .MochiShiba .inner,      .MochiPaws .inner {        fill: white;      }      .MochiShiba .outline,      .MochiPaws .outline {        stroke: #4e2e0f;      }      .MochiShiba .nose,      .MochiShiba .eye,      .MochiPaws .nose,      .MochiPaws .eye {        fill: #3c2012;      }      .MochiShiba .gleam,      .MochiPaws .gleam {        fill: white;      }      .MochiShiba #laugh .eye,      .MochiPaws #laugh .eye {        fill: none;      }      .MochiShiba .tongue,      .MochiPaws .tongue {        fill: #f2a3ad;      }      .MochiShiba .drool,      .MochiPaws .drool {        fill: #41b5dd;      }      .MochiShiba .scarf,      .MochiPaws .scarf {        fill: #002a57;      }      .MochiShiba .logo,      .MochiPaws .logo {        fill: white;      }      .MochiShiba #cheeks .right,      .MochiPaws #cheeks .right {        fill: url(#cheeks);      }      .MochiShiba #cheeks .left,      .MochiPaws #cheeks .left {        fill: url(#cheeks-2);      }      .MochiShiba #cheeks {        visibility: hidden;      }      .MochiShiba #ears #left1,      .MochiShiba #ears #right2,      .MochiShiba #ears #left3,      .MochiShiba #ears #right3 {        visibility: hidden;      }      .MochiShiba #eyes #wink,      .MochiShiba #eyes #shy,      .MochiShiba #eyes #laugh,      .MochiShiba #eyes .gleam {        visibility: hidden;      }      .MochiShiba #brows #expecting {        visibility: hidden;      }      .MochiShiba [id^="mouth"] {        visibility: hidden;      }      .MochiShiba [id^="mouth1"] {        visibility: visible;      }      .MochiShiba #base #outline2,      .MochiShiba #base #outline3 {        visibility: hidden;      }      .MochiShiba #base #top2,      .MochiShiba #base #top3 {        visibility: hidden;      }      .MochiShiba.blush #cheeks {        visibility: visible;      }      .MochiShiba.content [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.happy [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.happy #mouth2 {        visibility: visible;      }      .MochiShiba.excited [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.excited #mouth3 {        visibility: visible;      }      .MochiShiba.cute #brows #expecting {        visibility: visible;      }      .MochiShiba.cute #brows #focussed {        visibility: hidden;      }      .MochiShiba.cute [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.cute #mouth4 {        visibility: visible;      }      .MochiShiba.drool [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.drool #mouth5 {        visibility: visible;      }      .MochiShiba.cheeky [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.cheeky #mouth6 {        visibility: visible;      }      .MochiShiba.gleam #brows #expecting {        visibility: visible;      }      .MochiShiba.gleam #brows #focussed {        visibility: hidden;      }      .MochiShiba.gleam #snout {        transformtranslateY(-3%);      }      .MochiShiba.gleam #brows {        transformtranslateY(-5%);      }      .MochiShiba.gleam #eyes {        transformtranslateY(-4.5%);      }      .MochiShiba.gleam #eyes #open .eye.left {        transformmatrix(0.7, -0.70.70.7, -31.254.3scale(1.2);      }      .MochiShiba.gleam #eyes #open .eye.right {        transformtranslate(-27.5px83pxrotate(-42.36degscale(1.2);      }      .MochiShiba.gleam #cheeks {        transformtranslateY(-4%);      }      .MochiShiba.gleam [id^="mouth"] {        visibility: hidden;      }      .MochiShiba.gleam #mouth1 {        visibility: visible;      }      .MochiShiba.ears #ears > g {        visibility: hidden;      }      .MochiShiba.ears.l1 #ears > #left1 {        visibility: visible;      }      .MochiShiba.ears.l2 #ears > #left2 {        visibility: visible;      }      .MochiShiba.ears.l3 #ears > #left3 {        visibility: visible;      }      .MochiShiba.ears.l4 #ears > #left4 {        visibility: visible;      }      .MochiShiba.ears.r1 #ears > #right1 {        visibility: visible;      }      .MochiShiba.ears.r2 #ears > #right2 {        visibility: visible;      }      .MochiShiba.ears.r3 #ears > #right3 {        visibility: visible;      }      .MochiShiba.ears.r4 #ears > #right4 {        visibility: visible;      }      .MochiShiba.ears #base [id^="outline"],      .MochiShiba.ears #base [id^="top"] {        visibility: hidden;      }      .MochiShiba.ears.l1.r1 #base #outline2,      .MochiShiba.ears.l1.r1 #base #top2,      .MochiShiba.ears.l4.r4 #base #outline2,      .MochiShiba.ears.l4.r4 #base #top2 {        visibility: visible;      }      .MochiShiba.ears.l1.r2 #base #outline1,      .MochiShiba.ears.l1.r2 #base #top2,      .MochiShiba.ears.l1.r4 #base #outline1,





点分享
点收藏
点在看
点点赞

【声明】内容源于网络
0
0
码途钥匙
欢迎来到 Python 学习乐园!这里充满活力,分享前沿实用知识技术。新手或开发者,都能找到价值。一起在这个平台,以 Python 为引,开启成长之旅,探索代码世界,共同进步。携手 Python,共赴精彩未来,快来加入我们吧!
内容 992
粉丝 0
码途钥匙 欢迎来到 Python 学习乐园!这里充满活力,分享前沿实用知识技术。新手或开发者,都能找到价值。一起在这个平台,以 Python 为引,开启成长之旅,探索代码世界,共同进步。携手 Python,共赴精彩未来,快来加入我们吧!
总阅读0
粉丝0
内容992