feat: 本次提交更新内容如下

基础样式构建完毕
This commit is contained in:
笔记本里的永平
2025-07-17 22:46:39 +08:00
parent f39a33819e
commit f232866825
2 changed files with 119 additions and 12 deletions

View File

@@ -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 # 入口组件

View File

@@ -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;
}