内容介绍
本专题假设你已经具备了基本的 HTML 5 、Javascript(ES6) 和 CSS 3 知识。本专题是为了补全 AXUM 全栈开发所需要的技术栈,而不是从零开始的前端课程,如果你还不具备以上知识,请通过其它途径学习完成之后,再来学习本专题。React: 简介与安装
本章将通过编程世界通用的“Hello World”程序,告诉你:创建 React 应用的几种方法、虚拟DOM、JSX以及将 React 挂载到真实 DOM 的步骤。- 支持试读
React:类式组件、函数式组件及state和props
本章将讨论 React 的类式组件、函数式组件以及 React 两个最重要的属性:`state` 和 `props`。 React: 组件的生命周期
本章将讨论 React 组件的常用生命周期。- 支持试读
React: 事件处理、表单处理及受控组件与非受控组件
本章讨论 React 的事件处理,以及表单处理时涉及两个策略:受控组件与非受控组件。 React: 流程控制与key
本章将讨论 React(JSX) 的条件判断和循环。React: 自定义组件及组件通讯
本章我们将正式开启 React 组件之路。虽然我们之前章节的都叫组件,但整个应用只有一个组件,略显单薄。同时,我们还将讨论组件之间如何进行通讯。React: 路由
本章将讨论 React 的路由:通过路由,你可以制作出“多页面”的系统。React: 状态共享
本章将通过一个非常典型的案例来讨论 React 的状态共享:只有登录用户才能看到某些内容。早期的 React 完全依靠其生态中的 redux 等第三方库来实现状态共享;现在 React 提供了官方的 `Context` 来实现这一目的。React: SEO挑战、服务端渲染及本地存储
经过紧张的学习,React 课程终于暂告一个段落了。本章将是一个相对轻松的内容,我们一起探讨一下 React 应用的 SEO 以及为什么需要服务端渲染,同时对 React 课程做个简单的小结。NextJS: 简介与安装
NextJS 是一个 React 框架,它提供了很多有用的功能把 React 的力量发挥地淋漓尽致。本章我们将开始 NextJS 之旅,首先自然是安装它,然后来一个「你好,NextJS」NextJS: 渲染模式和数据获取
趁你现在对我们刚刚讨论的有关 React 和 SEO 的问题还保持有较强的印象,我们先来讨论 NextJS 是如何利用多种渲染模式来应用 SEO 挑战的。NextJS: 内置组件及自动路由
NextJS 既然是 React 的框架,自然提供了一些内置组件来扩展 React。本章将介绍几个常用的 NextJS 内置组件,同时也将介绍 NextJS 的路由系统。NextJS: 开发博客系统
本章我们将使用 NextJS 开发一个小型的博客系统,你将学习到如何从远程服务器获取数据以及数据过滤、NextJS 常用组件的用法、NextJS 的自动路由等功能。Tailwind:简介与响应式设计的基本原则
TailwindCSS 是一款响应式的、移动设备优先的 CSS 工具类框架。本章对响应式布局、移动设备优先、断点等基本概念进行简要说明;并讨论几种安装 tailwind 的方式。Tailwind: 通过小示例体验它
本章通过两个小示例来体验一下 tailwind 的魔力。Tailwind: 默认配置
Tailwind 定义了一系列变量,比如颜色、大小、间距等。本章将介绍 tailwind 的一些默认设置。Tailwind: 撸一个按钮
本章将带你使用 tailwind 撸一个按钮Tailwind: 使用 flex 和 grid 进行响应式布局
本章我们将讨论使用 `flex` 和 `grid` 进行响应式布局,以及为什么不建议再使用 `float` 进行布局。- 支持试读
Tailwind: 撸一个带图标和动画效果的下拉框
本章将使用 tailwind 实现一个没有任何 Javscript 代码的纯 CSS 的下拉框,把应用到导航栏、菜单栏时,也被称为下拉菜单。同时我们将讨论如何在 tailwind 中使用图标,包括图标的进化史:从字体文件到SVG。 Tailwind: 撸一个报价卡片
本章我们将使用 tailwind 撸一个报价卡片。Tailwind: 撸一个响应式的纯CSS导航栏
本章将使用 tailwind 撸一个响应式的、纯 CSS 的导航栏。Tailwind: 集成到React/NextJS
本章将介绍如何将 Tailwind 集成到 React 或 NextJS 项目中。Tailwind: 复用
本章通过将之前撸的按钮改成 NextJS 版,进而讨论 Tailwind 的复用原则。Tailwind: 配置和插件
本章将讨论如何配置 tailwind,以及几个 tailwind 官方插件。Tailwind: 制作响应式博客
本章我们使用 tailwind 将之前课程中 NextJS 迷你博客改造为响应式的布局。
Tailwind:简介与响应式设计的基本原则
TailwindCSS 是一款响应式的、移动设备优先的 CSS 工具类框架。本章对响应式布局、移动设备优先、断点等基本概念进行简要说明;并讨论几种安装 tailwind 的方式。
通俗理解:同一套页面(HTML/CSS/JS),可以适配不同的设备,包括移动设备和桌面设备。
针对不同设备分别设计页面,还是使用一套页面适合大部分设备?
—— 取决于项目需求和开发成本。
针对不同设备分别设计页面,还是使用一套页面适合大部分设备?
—— 取决于项目需求和开发成本。
响应式设计的基本原则
- 除非你明确知道自己在做什么,否则不要使用
px
等绝对单位,而应该使用rem
、em
、%
、vh
和vw
等相对单位。(如果你对 CSS 的相对单位不了解,请查看文档) - 除非你明确知道自己在做什么,否则在布局时,不要
width
设置绝对宽度,而应该使用max-width
设置最大宽度 - 图片/视频等是不会自动从父元素继承响应式设置的,需要手动给它们设置相对值的大小才能变成响应式
策略:移动设备优先和桌面设备优先
响应式布局有两种策略:移动设备优先和桌面设备优先。区别在于,在未指明断点时,CSS 针对的是移动设备还是桌面设备。
Tailwind 使用的是移动设备优先策略,即未指定断点时,适配移动设备;如果要对桌面设备进行特殊处理,需要使用断点。
你也可以将 Tailwind 应用到桌面设备优先策略
断点
所谓断点,就是将某些特殊的视口(viewport)大小,定义为一个点。当前视口大小在哪个断点范围内,就应用对应的 CSS。
默认,Tailwind 提供了 5 个断点,从小到大分别是:
sm -> md -> lg -> xl -> 2xl
- 如果书写 CSS 时,没有指明断点,则所有设备都适用
- 如果书写 CSS 时,指明了断点,则该断点以及比它大的断点都适用
- 比如,指定了
lg
断点,那么该 CSS 在屏幕大小为lg
、xl
和2xl
的设备上都适用
- 比如,指定了
- 比如,指定了
lg
断点,那么该 CSS 在屏幕大小为lg
、xl
和2xl
的设备上都适用
在移动设备优先策略下,通常为手机等移动设备定义的 CSS 不加断点;为电脑等桌面设备定义的 CSS 加上 md
及以上的断点。
工具类 CSS 框架和组件类 CSS 框架
Bootstrap 等组件类 CSS 框架:直接提供已经封装好的组件,组件名就是 CSS 的类名,开发人员直接使用组件,就可以实现不同的页面效果。
凡是都有两面性:
- 可以让开发人员以极少的代码量快速制作页面;但做出来的页面千篇一律,使用 Bootstrap 等组件类 CSS 框架制作的页面基本都是一个样子,除非进行了深度定制
- 如果对某个组件不满意,只能通过
!important
来覆盖框架预定义的样式;遇到复杂的组件,你还得无数次去尝试到底要覆盖哪些样式
- 通过配置文件
- 通过CSS文件
- 最简单的方法,直接通过
类前缀-[具体值]
的方式。比如,tailwindcss 并没有提供#7b1f00
颜色,当我们想要使用这个颜色来设备背景色时,只需要:bg-[#7b1f00]
关于 tailwind 的定制和扩展,将在后面章节详细讨论
关于 tailwind 的定制和扩展,将在后面章节详细讨论
安装 Tailwind
官方文档对各种安装方式都有详细介绍——详细到令人发指的每个步骤都写的清楚明白。
请确保你已经安装了Tailwind CSS IntelliSense,它不仅有代码提示和自动完成功能,当你把光标移到某个 Tailwind 类上面时,它还会显示原生的 CSS,简直是反向学习CSS的利器。