1 Star 0 Fork 0

大田/nike-web-vite-tailwindcss-exercise

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

商品展示网页

这是一个练习Tailwind CSS而搭建的网页。

技术

  • React + Vite
  • Tailwind CSS

开始

  1. 脚手架搭建项目,在指定项目中通过终端命令创建项目。
yarn create vite@latest my-project -- --template react
  1. 安装Tailwind CSS 并 初始化配置。生成tailwind.config.jspostcss.config.js文件。
yarn add -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
  1. 配置模版路径。
//tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
  1. 新增指令到根入口文件。
/** ./src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
  1. 改变应用jsx模版。
export default function App() {
  return (
    <h1 className="text-3xl font-bold underline">
      Hello world!
    </h1>
  )
}
  1. 启动项目。
yarn dev

自定义组件类名

将自己的自定义指令添加到Tailwind的样式里。

@layer components {
  .max-container {
    max-width: 1440px;
    margin: 0 auto;
  }

  .input {
    @apply sm:flex-1 max-sm:w-full text-base leading-normal text-slate-gray pl-5 max-sm:p-5 outline-none sm:border-none border max-sm:border-slate-gray max-sm:rounded-full;
  }
}

自定义工具类名

将自己的自定义指令添加到Tailwind的样式里。

@layer utilities {
  .padding {
    @apply sm:px-16 px-8 sm:py-24 py-12;
  }
  .padding-x {
    @apply sm:px-16 px-8;
  }
  .padding-y {
    @apply sm:py-24 py-12;
  }
  .padding-l {
    @apply sm:pl-16 pl-8;
  }
  .padding-r {
    @apply sm:pr-16 pr-8;
  }
  .padding-t {
    @apply sm:pt-24 pt-12;
  }
  .padding-b {
    @apply sm:pb-24 pb-12;
  }
  .info-text {
    @apply font-montserrat text-slate-gray text-lg leading-7;
  }
}

xl:padding-l

响应式设计中,xl表示1280px以上屏幕。指定某个样式在1280px以上屏幕生效padding-left外边距为4em

@media (min-width: 1280px){
  .xl\:padding-l {
    padding-left: 4rem;
  }
}

wide:padding-r

wide表示在文件tailwind.config.jstheme.screens部分中自定义项目的断点为wide,值为1440px,即响应式屏幕wide的尺寸为1440px,对应媒体查询的写法是@media (min-width: 1440px) { ... }

@media (min-width: 1440px){
  .wide\:padding-r {
    padding-right: 4rem;
  }
}

padding-r

表示根样式文件里定义的自定义指令,@layer utilities { ... }里面的.padding-r { @apply sm:pr-16 pr-8; },表示在sm屏幕断点下,最低宽度屏幕640pxsm:pr-16对应sm屏幕下padding-right64px,其余时为pr-8padding-right32px

.padding-r {
  padding-right: 2rem;
}

padding

表示根样式文件里定义的自定义指令,@layer utilities { ... }里面的.padding-r { @apply sm:px-16 px-8 sm:py-24 py-12; }

.padding {
  padding-left: 2rem;
  padding-right: 2rem;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

padding-b

@apply sm:pb-24 pb-12;表示在平常屏幕时底部外边距为6em96px,小于640px时为3em48px

.padding-b { padding-bottom: 3rem; }

padding-x

@apply sm:px-16 px-8;表示在平常屏幕时左右外边距为4em64px,小于640px时为2em32px

.padding-x {
  padding-left: 4rem;
  padding-right: 4rem;
}

bg-pale-blue

给背景颜色自定义混合的颜色。在文件tailwind.config.jstheme.extend.colors部分中自定义颜色'pale-blue': '#F5F6FF'

.bg-pale-blue {
  --tw-bg-opacity: 1;
  background-color: rgb(245 246 255 / var(--tw-bg-opacity));
}

w-full

设定盒子的宽度为100%

.w-full {  width: 100%; }

flex

设置盒子的排布方式为flex的弹性布局。

.flex { display: flex; }

justify-between

沿着容器的主轴对齐项目,以便每个项目之间有相等的空间。

.justify-between { justify-content: space-between; }

justify-center

沿容器主轴中心对齐项目。

.justify-center { justify-content: center; }

items-center

沿容器横轴的中心对齐项目。

.items-center { align-items: center; }

max-container

自定义的类名,表示最大容器,宽度为1440px,居中,左右外边距为自动。

/** src/index.css */
@layer components {
  .max-container {
    max-width: 1440px;
    margin: 0 auto;
  }
}

flex-1

允许弹性项目根据需要增大和缩小,忽略其初始大小。

.flex-1 { flex: 1 1 0%; }

gap-16

控制网格和弹性盒项目之间的间距。

.gap-16 { gap: 4rem; }

max-lg:hidden

小于最大屏幕在1024px时会隐藏。如一些导航栏列表仅在桌面浏览器上显示,在移动设备则不会显示。

@media not all and (min-width: 1024px){
  .max-lg\:hidden { display: none; }
}

font-montserrat

设置字体。

.font-montserrat { font-family: Montserrat, sans-serif; }

leading-normal

根据元素当前的字体大小为元素提供相对行高。

.leading-normal { line-height: 1.5; }

text-lg

控制元素字体大小。这里的text字体大小有自定义设置过。

// tailwindcss.config.js
theme.fontSize = {
  xs: ['12px', '16px'],
  sm: ['14px', '20px'],
  base: ['16px', '19.5px'],
  lg: ['18px', '21.94px'],
  xl: ['20px', '24.38px'],
  '2xl': ['24px', '29.26px'],
  '3xl': ['28px', '50px'],
  '4xl': ['48px', '58px'],
  '8xl': ['96px', '106px']
}
.text-lg {
  font-size: 18px;
  line-height: 21.94px;
}

text-slate-gray

设置文本颜色。

.text-slate-gray { color: #4a5568; }

border-2

设置元素所有边的边框宽度。

.border-2 { border-width: 2px; }

border-red-500

控制元素边框颜色。

.border-red-500 {
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity));
}

xl:flex-row

Flex项目水平放置在与文本相同的方向上。

@media (min-width: 1280px){
  .xl\:flex-row { flex-direction: row; }
}

min-h-screen

设置最小高度为屏幕高度。可以将某个盒子的高度与屏幕的高度保持一致。

.min-h-screen { min-height: 100vh; }

xl:w-2/5

设置宽度为2/5

@media (min-width: 1280px){
  .xl\:w-2\/5 { width: 40%; }
}

flex-col

Flex项目垂直放置在与文本相同的方向上.

.flex-col { flex-direction: column; }

items-start

将项目与容器横轴的起点对齐。

.items-start { align-items: flex-start; }

max-xl:padding-x

max-*的写法为断点范围,在特定断点范围处于活动状态时启动某样式。 在屏幕尺寸1280px640px之间的间距为4rem

@media not all and (min-width: 1280px){
  .max-xl\:padding-x {
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

在屏幕尺寸小于640px的间距为2rem

@media (min-width: 640px){
  .max-xl\:padding-x {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

max-sm:text-[72px]

在屏幕尺寸小于640px的文本大小为72px

@media (min-width: 640px){
  .max-sm\:text-\[72px\] { font-size: 72px; }
}

rounded-full

使用该类名创建药丸按钮。

.rounded-full { border-radius: 9999px; }

sm:max-w-sm

在屏幕尺寸大于640px的盒子的最大宽度为24rem

@media (min-width: 640px){
  .sm\:max-w-sm { max-width: 24rem; }
}

object-contain

调整元素内容的大小以使其包含在其容器内。

.object-contain {
  -o-object-fit: contain;
  object-fit: contain;
}

bg-hero

设置自定义背景图片为hero

.bg-hero {
  background-image: url('assets/images/collection-background.svg');
}

-bottom-[5%]

设置定位底部位移负5%

.-bottom-\[5\%\] {
  bottom: -5%;
}

capitalize

设置文本转换,格式为首字母大写其余字母小写的文本内容。

.capitalize {
  text-transform: capitalize;
}

break-words

断词,如果需要,用于break-words在单词中间添加换行符。

.break-words {
  overflow-wrap: break-word;
}

空文件

简介

这是一个练习Tailwind CSS而搭建的网页。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kevinleeeee/nike-web-vite-tailwindcss-exercise.git
git@gitee.com:kevinleeeee/nike-web-vite-tailwindcss-exercise.git
kevinleeeee
nike-web-vite-tailwindcss-exercise
nike-web-vite-tailwindcss-exercise
main

搜索帮助