feat: 本次提交更新内容如下
基础样式构建完毕
This commit is contained in:
@@ -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 # 入口组件
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user