diff --git a/nkebao/README.md b/nkebao/README.md index d67e78b27..88c0217ec 100644 --- a/nkebao/README.md +++ b/nkebao/README.md @@ -1,29 +1,40 @@ # Nkebao Base -基于 React + TypeScript + axios + sass + React Router v6 + antd + antd-mobile 的基础项目模板。 +一个现代化的 React + TypeScript 前端项目模板,适用于中后台管理系统、移动端 H5 等场景。 +集成了 Vite 极速构建、Zustand 轻量状态管理、模块化路由与权限拦截、axios 请求封装、移动端 rem 适配等主流工程能力。 + +--- ## 启动方式 ```bash yarn install -yarn start +yarn dev ``` +--- + ## 技术栈 -- React -- TypeScript -- axios -- sass -- React Router v6 -- antd -- antd-mobile -- postcss-pxtorem (rem 适配) + +- **React 18**:主流前端框架 +- **TypeScript**:类型安全开发 +- **Vite**:极速开发与构建工具 +- **axios**:请求库,统一封装 +- **sass**:CSS 预处理 +- **React Router v6**:路由管理,支持模块化与权限拦截 +- **antd / antd-mobile**:桌面端与移动端 UI 组件库 +- **postcss-pxtorem**:rem 适配,移动端友好 +- **Zustand**:轻量状态管理,支持持久化 +- **ESLint + Prettier**:代码规范与自动格式化 +- **路径别名 @**:简化 import + +--- ## 目录结构 ``` src/ - api/ # axios 封装 + api/ # axios 封装与接口模块 pages/ # 页面组件 styles/ # 全局样式 App.tsx # 入口组件 diff --git a/nkebao/src/styles/global.scss b/nkebao/src/styles/global.scss index 62f634696..314af21a4 100644 --- a/nkebao/src/styles/global.scss +++ b/nkebao/src/styles/global.scss @@ -1,18 +1,114 @@ +/* Reset & 基础样式,兼容移动端和PC端,补充 iOS/安卓容差处理 */ + +/* 1. 通用 Reset */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, table, caption, +tbody, tfoot, thead, tr, th, td, article, +aside, canvas, details, embed, figure, +figcaption, footer, header, hgroup, menu, +nav, output, ruby, section, summary, time, +mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; + box-sizing: border-box; +} + +/* 2. HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +/* 3. 列表、表格、图片等 */ +ol, ul { + list-style: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +img { + max-width: 100%; + display: block; + border: 0; +} + +/* 4. 链接、按钮等 */ +a { + color: inherit; + text-decoration: none; +} +button, input, select, textarea { + font: inherit; + outline: none; + border: none; + background: none; + box-shadow: none; + appearance: none; +} + +/* 5. 滚动条美化(可选) */ +::-webkit-scrollbar { + width: 8px; + background: transparent; +} +::-webkit-scrollbar-thumb { + background: #e0e0e0; + border-radius: 4px; +} + +/* 6. 移动端/PC端兼容基础样式 */ html, body { height: 100%; overflow: hidden; // 禁止 body 滚动和回弹 + -webkit-tap-highlight-color: transparent; // 移动端点击无高亮 + -webkit-text-size-adjust: 100%; // 禁止iOS自动调整字体 + text-size-adjust: 100%; + /* iOS/安卓容差补充 */ + /* 解决 iOS 12+ 及部分安卓机型底部安全区适配 */ + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + /* 解决 iOS 顶部刘海屏安全区 */ + padding-top: constant(safe-area-inset-top); + padding-top: env(safe-area-inset-top); } #root, .app-content { height: 100vh; overflow-y: auto; -webkit-overflow-scrolling: touch; // iOS 惯性滚动 + /* 安卓部分 WebView 兼容 */ + overscroll-behavior: contain; } body { - margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; background: #f5f5f5; + color: #222; + line-height: 1.5; + /* 安卓部分机型字体抗锯齿 */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* iOS input、textarea 默认圆角和阴影去除 */ +input, textarea { + border-radius: 0; + box-shadow: none; +} + +/* 安卓部分 WebView 点击延迟优化 */ +body, input, textarea, select, button { + touch-action: manipulation; } \ No newline at end of file