From 59236fbbe99ab66b976134d92c6d113274a5371a Mon Sep 17 00:00:00 2001 From: expressgy Date: Wed, 23 Apr 2025 01:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AF=BC=E8=88=AA=EF=BC=8C?= =?UTF-8?q?=E4=B8=8B=E4=B8=80=E6=AD=A5=EF=BC=8C=E5=86=99blog=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E6=96=B0=E5=A2=9E!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/base.css | 1 + assets/css/font.css | 62 ++ assets/css/iconfont.css | 1 + assets/css/style.css | 4 - assets/css/value.css | 9 +- assets/icon/starIconFont/demo.css | 539 +++++++++++++++ assets/icon/starIconFont/demo_index.html | 835 +++++++++++++++++++++++ assets/icon/starIconFont/iconfont.css | 129 ++++ assets/icon/starIconFont/iconfont.js | 1 + assets/icon/starIconFont/iconfont.json | 205 ++++++ assets/icon/starIconFont/iconfont.ttf | Bin 0 -> 17288 bytes assets/icon/starIconFont/iconfont.woff | Bin 0 -> 11816 bytes assets/icon/starIconFont/iconfont.woff2 | Bin 0 -> 9500 bytes components/Home/Header.vue | 55 +- components/Home/Menu.vue | 196 ++++++ components/Home/MobileMenu.vue | 40 -- layouts/home.vue | 34 +- nuxt.config.ts | 2 +- pages/home/blog/index.vue | 13 + pages/home/book/index.vue | 13 + pages/home/fun/index.vue | 13 + pages/home/hello/index.vue | 13 + pages/home/index.vue | 38 +- plugins/device.client.ts | 10 + 24 files changed, 2149 insertions(+), 64 deletions(-) create mode 100644 assets/icon/starIconFont/demo.css create mode 100644 assets/icon/starIconFont/demo_index.html create mode 100644 assets/icon/starIconFont/iconfont.css create mode 100644 assets/icon/starIconFont/iconfont.js create mode 100644 assets/icon/starIconFont/iconfont.json create mode 100644 assets/icon/starIconFont/iconfont.ttf create mode 100644 assets/icon/starIconFont/iconfont.woff create mode 100644 assets/icon/starIconFont/iconfont.woff2 create mode 100644 components/Home/Menu.vue delete mode 100644 components/Home/MobileMenu.vue create mode 100644 pages/home/blog/index.vue create mode 100644 pages/home/book/index.vue create mode 100644 pages/home/fun/index.vue create mode 100644 pages/home/hello/index.vue create mode 100644 plugins/device.client.ts diff --git a/assets/css/base.css b/assets/css/base.css index a923d82..9798f47 100644 --- a/assets/css/base.css +++ b/assets/css/base.css @@ -1,6 +1,7 @@ /* 默认字体大小(桌面端) */ body { font-size: 16px; + color: var(--color-text); } h1 { diff --git a/assets/css/font.css b/assets/css/font.css index 4d37b99..9b89e04 100644 --- a/assets/css/font.css +++ b/assets/css/font.css @@ -38,3 +38,65 @@ src: url('/assets/fonts/nice.ttf') format('woff2'); unicode-range: U+4E00-9FFF, U+3400-4DBF; /* 基本汉字及扩展A区 */ } + +/*// LXGW WenKai 落霞孤鹜*/ +/*// Huiwen-mincho 汇文明朝体*/ + +/* 英文字体定义(覆盖英文、数字、常用符号) */ +@font-face { + font-family: 'EnglishFont'; + src: local('nice'), local('TechnicLite'); + /*, local('Arial'), local('Helvetica Neue')*/ + unicode-range: U+0000-00FF, /* 基本拉丁字母、数字、标点 */ + U+0100-024F, /* 拉丁扩展 */ + U+0250-02AF, /* 国际音标扩展 */ + U+1E00-1EFF, /* 拉丁扩展附加 */ + U+2000-206F, /* 常用标点 */ + U+2070-209F, /* 上标下标 */ + U+20A0-20CF, /* 货币符号 */ + U+2100-214F, /* 字母类符号 */ + U+2150-218F, /* 数字形式 */ + U+2190-21FF, /* 箭头 */ + U+2200-22FF, /* 数学运算符 */ + U+2300-23FF, /* 杂项技术符号 */ + U+2460-24FF, /* 封闭字母数字 */ + U+2500-257F, /* 制表符 */ + U+2580-259F, /* 方块元素 */ + U+25A0-25FF, /* 几何图形 */ + U+2600-26FF, /* 杂项符号 */ + U+2700-27BF, /* 印刷符号 */ + U+2C60-2C7F, /* 拉丁扩展-C */ + U+2E00-2E7F, /* 补充标点 */ + U+FE00-FE0F, /* 变体选择符 */ + U+FF00-FFEF; /* 半角全角形式 */ +} + +/* 中文字体定义 */ +@font-face { + font-family: 'ChineseFont'; + src: local('LXGW WenKai'), local('Huiwen-mincho'); + /*, local('PingFang SC'), local('Microsoft YaHei')*/ + unicode-range: U+4E00-9FFF, /* 中日韩统一表意文字 */ + U+3400-4DBF, /* 扩展A */ + U+20000-2A6DF, /* 扩展B */ + U+2A700-2B73F,/* 扩展C */ + U+2B740-2B81F, /* 扩展D */ + U+2B820-2CEAF, /* 扩展E */ + U+2CEB0-2EBEF, /* 扩展F */ + U+3000-303F, /* 中日韩符号和标点 */ + U+3100-312F, /* 注音符号 */ + U+31A0-31BF, /* 注音扩展 */ + U+31C0-31EF, /* 中日韩笔画 */ + U+3200-32FF, /* 封闭式中日韩字母和月份 */ + U+3300-33FF, /* 中日韩兼容字符 */ + U+F900-FAFF, /* 中日韩兼容表意文字 */ + U+FE30-FE4F, /* 中日韩兼容形式 */ + U+FF00-FFEF; /* 半角全角形式 */ +} + +:root{ + /* 应用字体 */ + html, body{ + font-family: 'LXGW WenKai', 'Huiwen-mincho', 'nice', 'TechnicLite', 'ChineseFont','EnglishFont', sans-serif; + } +} \ No newline at end of file diff --git a/assets/css/iconfont.css b/assets/css/iconfont.css index 4acba42..c27f4c5 100644 --- a/assets/css/iconfont.css +++ b/assets/css/iconfont.css @@ -1,2 +1,3 @@ @import "../icon/cocoIconFont/iconfont.css"; @import "../icon/sxIconFont/iconfont.css"; +@import "../icon/starIconFont/iconfont.css"; diff --git a/assets/css/style.css b/assets/css/style.css index e6a7e1b..307e802 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -6,7 +6,3 @@ html, body { padding: 0; overflow: hidden; } - -:root { - font-family: 'LXGW WenKai', 'Huiwen-mincho', 'nice', 'TechnicLite', sans-serif; -} diff --git a/assets/css/value.css b/assets/css/value.css index a34a715..391c674 100644 --- a/assets/css/value.css +++ b/assets/css/value.css @@ -22,6 +22,13 @@ --bg-color-bf: #fff; /*字体颜色*/ - --color-text: #fefefe; + --color-text: #333; --bg-opacity: 0.5; + + /*主要着重颜色*/ + --main-strong-color: #333; + /*菜单长度*/ + --nav-length: 5rem; + /*圆角*/ + --border-radius: 0.5rem; } diff --git a/assets/icon/starIconFont/demo.css b/assets/icon/starIconFont/demo.css new file mode 100644 index 0000000..a67054a --- /dev/null +++ b/assets/icon/starIconFont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/assets/icon/starIconFont/demo_index.html b/assets/icon/starIconFont/demo_index.html new file mode 100644 index 0000000..d87f13d --- /dev/null +++ b/assets/icon/starIconFont/demo_index.html @@ -0,0 +1,835 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + + 彩色字体 + +

+ +
+
+
    + +
  • + +
    纸飞机
    +
    
    +
  • + +
  • + +
    纸飞机-copy
    +
    
    +
  • + +
  • + +
    世界
    +
    
    +
  • + +
  • + +
    羽毛笔
    +
    
    +
  • + +
  • + +
    羽毛笔-copy
    +
    
    +
  • + +
  • + +
    张弦月
    +
    
    +
  • + +
  • + +
    扬沙
    +
    
    +
  • + +
  • + +
    我已阅读
    +
    
    +
  • + +
  • + +
    阅读
    +
    
    +
  • + +
  • + +
    月亮
    +
    
    +
  • + +
  • + +
    阅读
    +
    
    +
  • + +
  • + +
    叶子
    +
    
    +
  • + +
  • + +
    时间 开始时间
    +
    
    +
  • + +
  • + +
    云端,云,云服务
    +
    
    +
  • + +
  • + +
    已阅读
    +
    
    +
  • + +
  • + +
    执行书
    +
    
    +
  • + +
  • + +
    地球
    +
    
    +
  • + +
  • + +
    月球
    +
    
    +
  • + +
  • + +
    火箭
    +
    
    +
  • + +
  • + +
    卫星
    +
    
    +
  • + +
  • + +
    柴犬
    +
    
    +
  • + +
  • + +
    荷兰猪
    +
    
    +
  • + +
  • + +
    三花猫
    +
    
    +
  • + +
  • + +
    阅读-copy
    +
    
    +
  • + +
  • + +
    满月
    +
    
    +
  • + +
  • + +
    上弦月
    +
    
    +
  • + +
  • + +
    晚晴天
    +
    
    +
  • + +
  • + +
    下弦月
    +
    
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'starIconFont';
+  src: 
+       url('iconfont.woff2?t=1745328881235') format('woff2'),
+       url('iconfont.woff?t=1745328881235') format('woff'),
+       url('iconfont.ttf?t=1745328881235') format('truetype');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.starIconFont {
+  font-family: "starIconFont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="starIconFont">&#x33;</span>
+
+
+

"starIconFont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + 纸飞机 +
    +
    .star-zhifeiji +
    +
  • + +
  • + +
    + 纸飞机-copy +
    +
    .star-zhifeiji-copy +
    +
  • + +
  • + +
    + 世界 +
    +
    .star-shijie +
    +
  • + +
  • + +
    + 羽毛笔 +
    +
    .star-yumaobi +
    +
  • + +
  • + +
    + 羽毛笔-copy +
    +
    .star-yumaobi-copy +
    +
  • + +
  • + +
    + 张弦月 +
    +
    .star-zhangxianyue +
    +
  • + +
  • + +
    + 扬沙 +
    +
    .star-Group1 +
    +
  • + +
  • + +
    + 我已阅读 +
    +
    .star-woyiyuedu +
    +
  • + +
  • + +
    + 阅读 +
    +
    .star-yuedu +
    +
  • + +
  • + +
    + 月亮 +
    +
    .star-yueliang +
    +
  • + +
  • + +
    + 阅读 +
    +
    .star-yuedu1 +
    +
  • + +
  • + +
    + 叶子 +
    +
    .star-yezi +
    +
  • + +
  • + +
    + 时间 开始时间 +
    +
    .star-shijiankaishishijian +
    +
  • + +
  • + +
    + 云端,云,云服务 +
    +
    .star-cloud-full +
    +
  • + +
  • + +
    + 已阅读 +
    +
    .star-yiyuedu +
    +
  • + +
  • + +
    + 执行书 +
    +
    .star-zhihangshu +
    +
  • + +
  • + +
    + 地球 +
    +
    .star-earth +
    +
  • + +
  • + +
    + 月球 +
    +
    .star-moon +
    +
  • + +
  • + +
    + 火箭 +
    +
    .star-rocket-3 +
    +
  • + +
  • + +
    + 卫星 +
    +
    .star-satellite +
    +
  • + +
  • + +
    + 柴犬 +
    +
    .star-chaiquan +
    +
  • + +
  • + +
    + 荷兰猪 +
    +
    .star-helanzhu +
    +
  • + +
  • + +
    + 三花猫 +
    +
    .star-sanhuamao +
    +
  • + +
  • + +
    + 阅读-copy +
    +
    .star-yuedu1-copy +
    +
  • + +
  • + +
    + 满月 +
    +
    .star-manyue +
    +
  • + +
  • + +
    + 上弦月 +
    +
    .star-shangxianyue +
    +
  • + +
  • + +
    + 晚晴天 +
    +
    .star-wanqingtian +
    +
  • + +
  • + +
    + 下弦月 +
    +
    .star-xiaxianyue +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="starIconFont star-xxx"></span>
+
+
+

" + starIconFont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    纸飞机
    +
    #star-zhifeiji
    +
  • + +
  • + +
    纸飞机-copy
    +
    #star-zhifeiji-copy
    +
  • + +
  • + +
    世界
    +
    #star-shijie
    +
  • + +
  • + +
    羽毛笔
    +
    #star-yumaobi
    +
  • + +
  • + +
    羽毛笔-copy
    +
    #star-yumaobi-copy
    +
  • + +
  • + +
    张弦月
    +
    #star-zhangxianyue
    +
  • + +
  • + +
    扬沙
    +
    #star-Group1
    +
  • + +
  • + +
    我已阅读
    +
    #star-woyiyuedu
    +
  • + +
  • + +
    阅读
    +
    #star-yuedu
    +
  • + +
  • + +
    月亮
    +
    #star-yueliang
    +
  • + +
  • + +
    阅读
    +
    #star-yuedu1
    +
  • + +
  • + +
    叶子
    +
    #star-yezi
    +
  • + +
  • + +
    时间 开始时间
    +
    #star-shijiankaishishijian
    +
  • + +
  • + +
    云端,云,云服务
    +
    #star-cloud-full
    +
  • + +
  • + +
    已阅读
    +
    #star-yiyuedu
    +
  • + +
  • + +
    执行书
    +
    #star-zhihangshu
    +
  • + +
  • + +
    地球
    +
    #star-earth
    +
  • + +
  • + +
    月球
    +
    #star-moon
    +
  • + +
  • + +
    火箭
    +
    #star-rocket-3
    +
  • + +
  • + +
    卫星
    +
    #star-satellite
    +
  • + +
  • + +
    柴犬
    +
    #star-chaiquan
    +
  • + +
  • + +
    荷兰猪
    +
    #star-helanzhu
    +
  • + +
  • + +
    三花猫
    +
    #star-sanhuamao
    +
  • + +
  • + +
    阅读-copy
    +
    #star-yuedu1-copy
    +
  • + +
  • + +
    满月
    +
    #star-manyue
    +
  • + +
  • + +
    上弦月
    +
    #star-shangxianyue
    +
  • + +
  • + +
    晚晴天
    +
    #star-wanqingtian
    +
  • + +
  • + +
    下弦月
    +
    #star-xiaxianyue
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/assets/icon/starIconFont/iconfont.css b/assets/icon/starIconFont/iconfont.css new file mode 100644 index 0000000..d2ba7bc --- /dev/null +++ b/assets/icon/starIconFont/iconfont.css @@ -0,0 +1,129 @@ +@font-face { + font-family: "starIconFont"; /* Project id 4902296 */ + /* Color fonts */ + src: + url('iconfont.woff2?t=1745328881235') format('woff2'), + url('iconfont.woff?t=1745328881235') format('woff'), + url('iconfont.ttf?t=1745328881235') format('truetype'); +} + +.starIconFont { + font-family: "starIconFont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.star-zhifeiji:before { + content: "\e617"; +} + +.star-zhifeiji-copy:before { + content: "\e9a0"; +} + +.star-shijie:before { + content: "\e802"; +} + +.star-yumaobi:before { + content: "\e606"; +} + +.star-yumaobi-copy:before { + content: "\e9a1"; +} + +.star-zhangxianyue:before { + content: "\e642"; +} + +.star-Group1:before { + content: "\e643"; +} + +.star-woyiyuedu:before { + content: "\e77d"; +} + +.star-yuedu:before { + content: "\e763"; +} + +.star-yueliang:before { + content: "\e6cc"; +} + +.star-yuedu1:before { + content: "\e6bc"; +} + +.star-yezi:before { + content: "\e760"; +} + +.star-shijiankaishishijian:before { + content: "\e6e9"; +} + +.star-cloud-full:before { + content: "\e988"; +} + +.star-yiyuedu:before { + content: "\e68c"; +} + +.star-zhihangshu:before { + content: "\e761"; +} + +.star-earth:before { + content: "\e99a"; +} + +.star-moon:before { + content: "\e99b"; +} + +.star-rocket-3:before { + content: "\e99d"; +} + +.star-satellite:before { + content: "\e99e"; +} + +.star-chaiquan:before { + content: "\e647"; +} + +.star-helanzhu:before { + content: "\e648"; +} + +.star-sanhuamao:before { + content: "\e64b"; +} + +.star-yuedu1-copy:before { + content: "\e99f"; +} + +.star-manyue:before { + content: "\e623"; +} + +.star-shangxianyue:before { + content: "\e632"; +} + +.star-wanqingtian:before { + content: "\e634"; +} + +.star-xiaxianyue:before { + content: "\e638"; +} + diff --git a/assets/icon/starIconFont/iconfont.js b/assets/icon/starIconFont/iconfont.js new file mode 100644 index 0000000..dc368fb --- /dev/null +++ b/assets/icon/starIconFont/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_4902296='',(t=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var c,h,i,p,s,d=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!t.__iconfont__svg__cssinject__){t.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}c=function(){var a,l=document.createElement("div");l.innerHTML=t._iconfont_svg_string_4902296,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?d(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=c,p=t.document,s=!1,o(),p.onreadystatechange=function(){"complete"==p.readyState&&(p.onreadystatechange=null,z())})}function z(){s||(s=!0,i())}function o(){try{p.documentElement.doScroll("left")}catch(a){return void setTimeout(o,50)}z()}})(window); \ No newline at end of file diff --git a/assets/icon/starIconFont/iconfont.json b/assets/icon/starIconFont/iconfont.json new file mode 100644 index 0000000..10117a8 --- /dev/null +++ b/assets/icon/starIconFont/iconfont.json @@ -0,0 +1,205 @@ +{ + "id": "4902296", + "name": "star", + "font_family": "starIconFont", + "css_prefix_text": "star-", + "description": "", + "glyphs": [ + { + "icon_id": "20860668", + "name": "纸飞机", + "font_class": "zhifeiji", + "unicode": "e617", + "unicode_decimal": 58903 + }, + { + "icon_id": "44119317", + "name": "纸飞机-copy", + "font_class": "zhifeiji-copy", + "unicode": "e9a0", + "unicode_decimal": 59808 + }, + { + "icon_id": "3217063", + "name": "世界", + "font_class": "shijie", + "unicode": "e802", + "unicode_decimal": 59394 + }, + { + "icon_id": "3362566", + "name": "羽毛笔", + "font_class": "yumaobi", + "unicode": "e606", + "unicode_decimal": 58886 + }, + { + "icon_id": "44119318", + "name": "羽毛笔-copy", + "font_class": "yumaobi-copy", + "unicode": "e9a1", + "unicode_decimal": 59809 + }, + { + "icon_id": "3758845", + "name": "张弦月", + "font_class": "zhangxianyue", + "unicode": "e642", + "unicode_decimal": 58946 + }, + { + "icon_id": "3758920", + "name": "扬沙", + "font_class": "Group1", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "6068995", + "name": "我已阅读", + "font_class": "woyiyuedu", + "unicode": "e77d", + "unicode_decimal": 59261 + }, + { + "icon_id": "9172638", + "name": "阅读", + "font_class": "yuedu", + "unicode": "e763", + "unicode_decimal": 59235 + }, + { + "icon_id": "9594839", + "name": "月亮", + "font_class": "yueliang", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "11278216", + "name": "阅读", + "font_class": "yuedu1", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "14145811", + "name": "叶子", + "font_class": "yezi", + "unicode": "e760", + "unicode_decimal": 59232 + }, + { + "icon_id": "16522431", + "name": "时间 开始时间", + "font_class": "shijiankaishishijian", + "unicode": "e6e9", + "unicode_decimal": 59113 + }, + { + "icon_id": "18170210", + "name": "云端,云,云服务", + "font_class": "cloud-full", + "unicode": "e988", + "unicode_decimal": 59784 + }, + { + "icon_id": "23408958", + "name": "已阅读", + "font_class": "yiyuedu", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "29776115", + "name": "执行书", + "font_class": "zhihangshu", + "unicode": "e761", + "unicode_decimal": 59233 + }, + { + "icon_id": "41507630", + "name": "地球", + "font_class": "earth", + "unicode": "e99a", + "unicode_decimal": 59802 + }, + { + "icon_id": "41507635", + "name": "月球", + "font_class": "moon", + "unicode": "e99b", + "unicode_decimal": 59803 + }, + { + "icon_id": "41507640", + "name": "火箭", + "font_class": "rocket-3", + "unicode": "e99d", + "unicode_decimal": 59805 + }, + { + "icon_id": "41507643", + "name": "卫星", + "font_class": "satellite", + "unicode": "e99e", + "unicode_decimal": 59806 + }, + { + "icon_id": "42905920", + "name": "柴犬", + "font_class": "chaiquan", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "42905927", + "name": "荷兰猪", + "font_class": "helanzhu", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "43415566", + "name": "三花猫", + "font_class": "sanhuamao", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "44119316", + "name": "阅读-copy", + "font_class": "yuedu1-copy", + "unicode": "e99f", + "unicode_decimal": 59807 + }, + { + "icon_id": "3758264", + "name": "满月", + "font_class": "manyue", + "unicode": "e623", + "unicode_decimal": 58915 + }, + { + "icon_id": "3758796", + "name": "上弦月", + "font_class": "shangxianyue", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "3758799", + "name": "晚晴天", + "font_class": "wanqingtian", + "unicode": "e634", + "unicode_decimal": 58932 + }, + { + "icon_id": "3758803", + "name": "下弦月", + "font_class": "xiaxianyue", + "unicode": "e638", + "unicode_decimal": 58936 + } + ] +} diff --git a/assets/icon/starIconFont/iconfont.ttf b/assets/icon/starIconFont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1fb366c7e34a55dc01ba306ab840636d170caef6 GIT binary patch literal 17288 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 literal 0 HcmV?d00001 diff --git a/components/Home/Header.vue b/components/Home/Header.vue index d2dfa6f..5f1abee 100644 --- a/components/Home/Header.vue +++ b/components/Home/Header.vue @@ -1,23 +1,57 @@ @@ -40,7 +74,7 @@ const menuMobileExpandStatus = ref(false) background: var(--bg-color-bd); } - nav > div.mobileIcon{ + nav > div.menuBarIcon{ position: absolute; left: 0; top: 0; @@ -58,7 +92,7 @@ const menuMobileExpandStatus = ref(false) } } - div.infoContainer > div.mobileIcon{ + div.infoContainer > div.menuBarIcon{ position: absolute; right: 0; top: 0; @@ -96,7 +130,6 @@ const menuMobileExpandStatus = ref(false) nav{ flex-shrink: 0; width: var(--main-width-auto); - background-color: var(--bg-color-b1); } div.infoContainer{ diff --git a/components/Home/Menu.vue b/components/Home/Menu.vue new file mode 100644 index 0000000..d9d5149 --- /dev/null +++ b/components/Home/Menu.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/components/Home/MobileMenu.vue b/components/Home/MobileMenu.vue deleted file mode 100644 index ef0f3df..0000000 --- a/components/Home/MobileMenu.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/layouts/home.vue b/layouts/home.vue index ad7d80b..33054a0 100644 --- a/layouts/home.vue +++ b/layouts/home.vue @@ -5,13 +5,17 @@
- +
+
+ +
+
diff --git a/nuxt.config.ts b/nuxt.config.ts index 3e8cba6..b1e6804 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -96,4 +96,4 @@ async function startBroswer(address: AddressInfo | string | null) { process.env.START = String(true) } } -} +} \ No newline at end of file diff --git a/pages/home/blog/index.vue b/pages/home/blog/index.vue new file mode 100644 index 0000000..3780e72 --- /dev/null +++ b/pages/home/blog/index.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/pages/home/book/index.vue b/pages/home/book/index.vue new file mode 100644 index 0000000..4974a96 --- /dev/null +++ b/pages/home/book/index.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/pages/home/fun/index.vue b/pages/home/fun/index.vue new file mode 100644 index 0000000..d5fc4cb --- /dev/null +++ b/pages/home/fun/index.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/pages/home/hello/index.vue b/pages/home/hello/index.vue new file mode 100644 index 0000000..bcc1ff9 --- /dev/null +++ b/pages/home/hello/index.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/pages/home/index.vue b/pages/home/index.vue index 2500db1..bd53547 100644 --- a/pages/home/index.vue +++ b/pages/home/index.vue @@ -5,10 +5,46 @@ definePageMeta({ diff --git a/plugins/device.client.ts b/plugins/device.client.ts new file mode 100644 index 0000000..96c29eb --- /dev/null +++ b/plugins/device.client.ts @@ -0,0 +1,10 @@ +export default defineNuxtPlugin(nuxtApp => { + const userAgent = navigator.userAgent.toLowerCase() + const isMobile = /mobile|android|iphone|ipad|ipod/i.test(userAgent) + return { + provide: { + isMobile, + userAgent + } + } +})