Next.js 从零入门到实战 3:2024最新完整教程 | 包含SSR、API路由和性能优化
CSS样式学习
上一篇文章讲到如何创建一个脚手架程序,目前我们已经有了一个nextjs的基本框架,因此我们可以在这个基础上进行改造。
打开我们项目中的page.tsx页面,这里是程序的主页面,也就是我们访问地址时候第一个看见的页面
将page页面修改为,没有任何css样式的样子
import Link from 'next/link';
export default function Page() {
return (
<main>
<h1>欢迎来到曲速引擎Warp Driver教程</h1>
<p>
这是 <a href="https://nextjs.org/learn/">Next.js学习课程</a> 的示例,由曲速引擎Warp Driver提供技术讲解。
</p>
<Link href="/login">
登录
</Link>
</main>
);
}

代码更新之后,页面也随之改变为没有样式的样子
配置全局CSS
首先我们要将默认目录下的globals.css删除掉,因为这个是默认样式,接下来在app文件夹下创建一个ui的文件夹,用于存储globals.css,目录结构如下:
接下来往globals.css写入全局样式
/* 导入 Tailwind CSS 的基础样式、组件样式和工具类 */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* 自定义 input[type='number'] 的样式 */
input[type='number'] {
-moz-appearance: textfield;
appearance: textfield;
}
input[type='number']::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type='number']::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
这里有个新的概念就是Tailwind CSS,Tailwind CSS 是一个高度可定制的低级 CSS 框架,它采用实用优先的方法来构建现代网页界面。与传统的 CSS 框架不同,Tailwind 不提供预设的组件样式,而是提供大量的原子级 CSS 类,让开发者能够通过组合这些类来快速构建独特的设计。它通过在 HTML 中直接应用类名来定义样式,从而减少了编写自定义 CSS 的需求,提高了开发效率。Tailwind 的设计理念鼓励一致性,同时保持灵活性,使得开发者可以轻松创建响应式、可维护的用户界面。它的配置系统允许开发者根据项目需求自定义颜色、间距、断点等,使得 Tailwind 能够适应各种设计系统。总的来说,Tailwind CSS 通过提供一套全面的低级样式工具,简化了 CSS 的编写过程,使得前端开发更加高效和灵活。
由于我们移动了默认的全局css样式,因此需要在layout.tsx上面修改地址 将默认地址修改为import "@/app/ui/globals.css";
这个为添加了全局css样式的代码
接下来我们把全局css样式的代码删除,可以观察到主要屏蔽了上下箭头
单个语义化标签添加Tailwind CSS
main标签修改,添加 className="flex min-h-screen flex-col p-6"
这个类名字符串 flex min-h-screen flex-col p-6 是 Tailwind CSS 的实用类组合,每个类都有特定的样式效果。
每个类的含义:
flex: 将元素设置为弹性盒子容器,相当于 CSS 中的 display: flex;
min-h-screen:设置元素的最小高度为屏幕的全高,等同于 CSS 中的 min-height: 100vh;
flex-col:设置弹性盒子的主轴方向为垂直方向(列),相当于 CSS 中的 flex-direction: column;
p-6: 给元素添加内边距(padding)在 Tailwind 中,6 通常对应 1.5rem 或 24px,等同于 CSS 中的 padding: 1.5rem;
这组类的组合效果:
创建一个弹性盒子容器
容器最小高度为整个视口高度
容器内的元素将垂直排列(从上到下)
容器四周有 1.5rem 的内边距
然后我们可以通过这样的修改,对主页进行美化
import Link from 'next/link';
export default function Page() {
return (
<main className="flex min-h-screen flex-col p-6">
<div className="flex h-20 shrink-0 items-end rounded-lg bg-blue-500 p-4 md:h-52">
{/* <AcmeLogo /> */}
</div>
<div className="mt-4 flex grow flex-col gap-4 md:flex-row">
<div className="flex flex-col justify-center gap-6 rounded-lg bg-gray-50 px-6 py-10 md:w-2/5 md:px-20">
<p className={`text-xl text-gray-800 md:text-3xl md:leading-normal`}>
<strong>欢迎来到曲速引擎Warp Driver教程</strong> 这是{' '}
<a href="https://www.dataeast.cn/" className="text-blue-500">
Next.js 学习课程
</a>
的示例,由曲速引擎Warp Driver为您呈现。
</p>
<Link
href="/login"
className="flex items-center gap-5 self-start rounded-lg
bg-blue-500 px-6 py-3 text-sm font-medium text-white
transition-colors hover:bg-blue-400 md:text-base"
>
<span>开始学习</span>
</Link>
</div>
<div className="flex items-center justify-center p-6 md:w-3/5 md:px-28 md:py-12">
{/* 在此添加主图像 */}
</div>
</div>
</main>
);
}

拆解Tailwind CSS的含义
我们把网页分块理解,将后面的代码先注释掉,在return()里面使用 {/* */}进行注释
<div className="flex h-20 shrink-0 items-end rounded-lg bg-blue-500 p-4 md:h-52">
flex: 将元素设置为弹性容器
h-20: 设置元素高度为 20 单位(通常是 5rem 或 80px)
shrink-0: 防止元素在flex容器中缩小
items-end: 将flex容器中的项目对齐到交叉轴的末端(在这里是底部)
rounded-lg: 添加大号圆角
bg-blue-500: 设置背景颜色为蓝色(500 是颜色强度)
p-4: 设置内边距为 4 单位(通常是 1rem 或 16px)
md:h-52: 在中等尺寸屏幕(md)上,将高度设置为 52 单位(通常是 13rem 或 208px)
这个 div 创建了一个蓝色背景的容器,在小屏幕上高度为80px,在中等及以上尺寸的屏幕上高度为 208px。它有圆角,内部元素会对齐到底部,并且有一定的内边距。这个元素不会在flex容器中缩小,保持其大小。
下面就不一一展示什么意思了,一下为整个代码的注释信息,可以参考
import Link from 'next/link';
export default function Page() {
return (
{/* 主容器:弹性布局,最小高度为屏幕高度,垂直排列,内边距6单位 */}
<main className="flex min-h-screen flex-col p-6">
{/* 顶部蓝色区域:弹性布局,固定高度,不缩小,底部对齐,圆角,蓝色背景 */}
<div className="flex h-20 shrink-0 items-end rounded-lg bg-blue-500 p-4 md:h-52">
{/* <AcmeLogo /> */}
</div>
{/* 主要内容区:上边距4单位,弹性增长,垂直排列(中等屏幕上水平排列),间隔4单位 */}
<div className="mt-4 flex grow flex-col gap-4 md:flex-row">
{/* 左侧文本区:弹性垂直排列,居中对齐,间隔6单位,圆角,浅灰背景 */}
<div className="flex flex-col justify-center gap-6 rounded-lg bg-gray-50 px-6 py-10 md:w-2/5 md:px-20">
{/* 文本段落:大号文本,深灰色,中等屏幕上更大字号和行高 */}
<p className={`text-xl text-gray-800 md:text-3xl md:leading-normal`}>
<strong>欢迎来到曲速引擎Warp Driver教程</strong> 这是{' '}
{/* 链接:蓝色文本 */}
<a href="https://www.dataeast.cn/" className="text-blue-500">
Next.js 学习课程
</a>
的示例,由曲速引擎Warp Driver为您呈现。
</p>
{/* 登录链接:弹性布局,居中对齐,间隔5单位,自身起始对齐,圆角 */}
{/* 蓝色背景,内边距,小号字体(中等屏幕上基础字号),白色文本 */}
{/* 颜色过渡效果,悬停时背景变浅 */}
<Link
href="/login"
className="flex items-center gap-5 self-start rounded-lg
bg-blue-500 px-6 py-3 text-sm font-medium text-white
transition-colors hover:bg-blue-400 md:text-base"
>
<span>开始学习</span>
</Link>
</div>
{/* 右侧区域:弹性布局,居中对齐,内边距 */}
<div className="flex items-center justify-center p-6 md:w-3/5 md:px-28 md:py-12">
</div>
</div>
</main>
);
}
需要寻找Tailwind CSS每个模块的含义可以参考官方网站的描述
如果你想看更多内容或者能够看到技术更新的内容,请百度搜索:曲速引擎 warp drive csdn 在首页找到我的地址访问即可,一线更新内容将会在我的个人博客上面更新,谢谢大家。
更详细内容查看
独立博客 https://www.dataeast.cn/
CSDN博客 https://blog.csdn.net/siberiaWarpDrive
B站视频空间 https://space.bilibili.com/25871614?spm_id_from=333.1007.0.0
关注 “曲速引擎 Warp Drive” 微信公众号
Next.js 从零入门到实战 3:2024最新完整教程 | 包含SSR、API路由和性能优化的更多相关文章
- Docker小白从零入门到实战系列【二】
1.安装好Centos 7 2.关闭SELINUX sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/configsetenfo ...
- Angular4.0学习笔记 从入门到实战打造在线竞拍网站学习笔记之二--路由
Angular4.0基础知识见上一篇博客 路由 简介 接下来学习路由的相关知识 本来是不准备写下去的,因为当时看视频学的时候感觉自己掌握的不错 ( 这是一个灰常不好的想法 ) ,过了一段时间才发现An ...
- Angular4.0从入门到实战打造在线竞拍网站学习笔记之二--路由
Angular4.0基础知识之组件 Angular4.0基础知识之路由 Angular4.0依赖注入 Angular4.0数据绑定&管道 路由 简介 接下来学习路由的相关知识 本来是不准备写下 ...
- Spring cloud微服务安全实战 最新完整教程
课程资料获取链接:点击这里 采用流行的微服务架构开发,应用程序访问安全将会面临更多更复杂的挑战,尤其是开发者最关心的三大问题:认证授权.可用性.可视化.本课程从简单的API安全入手,过渡到复杂的微服务 ...
- React.js 入门与实战课程思维导图
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,在这里分享了课程中的思维导图,供大家参考. 原文发表于我的技术博客 此导图为课程 ...
- React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...
- 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程
点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...
- Vue2.5开发去哪儿网App 从零基础入门到实战项目
第1章 课程介绍本章主要介绍课程的知识大纲,学习前提,讲授方式及预期收获. 1-1 课程简介 试看第2章 Vue 起步本章将快速讲解部分 Vue 基础语法,通过 TodoList 功能的编写,在熟悉基 ...
- MongoDB从入门到实战之MongoDB简介
前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能.动态扩缩容.高可用.海量数据存储.数据价值较低.高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通 ...
- webpack入门和实战(一):webpack配置及技巧
一.全面理解webpack 1.什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都 ...
随机推荐
- ViT和MAE模型结合初探
介绍 transfomer在NLP领域的应用已经非常广泛,但是在CV领域的应用还比较少,主要是因为CV领域的数据是二维的,而transfomer是基于序列的,因此需要将二维数据转换成序列数据,这就是V ...
- Linux中登录mysql
输入 mysql -u root -p 然后输入密码,就能登录 root@zrt2:/home/zrt2# mysql -u root -pEnter password: Welcome to the ...
- 11. 基于ARM Cortex-A9中断详解
一.中断概念 操作系统中,中断是很重要的组成部分.出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行. 有了中断系统才可以不用一直 ...
- Mac 删除 Steam 游戏图标
Steam 将游戏安装在了 ~/Applications,打开访达,前往该目录,将相关游戏移到废纸篓.
- Pipenv 使用
Pipenv 是 Python 官方推荐的依赖管理工具,旨在简化 pip 和 virtualenv 的使用.其使用 Pipfile 和 Pipfile.lock 来管理项目的依赖和虚拟环境. 安装 p ...
- VS Code 代码片段指南: 从基础到高级技巧
前言 " 系列首发于公众号『非同质前端札记』 ,若不想错过更多精彩内容,请"星标"一下,敬请关注公众号最新消息. 今天咱们来聊聊 VS Code 里的自定义代码片段. 这 ...
- C primer plus笔记之初识C语言
初识C语言 --本文参考书籍: Stephen Prata的<C Primer Plus> 前言 C 语言是一门抽象的.面向过程的语言,C 语言广泛应用于底层开发,C 语言 ...
- windows服务器使用 azure devops 批量自动发布网站到IIS
最近由于一个API项目,需要利用负载均衡来做支撑,因此需要将同一份代码分发到多个服务器,之前一直手工干这个活,感觉太累了,去开发交流群,还有搜索了一下资料,发现很多人推荐我用ftp.还有磁盘共享等这种 ...
- effective-python-14
effective python-Item 14 list.sort函数,比较容易用的是reverse,而其中还有个参数key,默认是NONE,此时排序是按照默认比较方法排序,比如数据按照大小,字符串 ...
- 戴尔笔记本游匣DELL G16 7620更换固态硬盘从选购固态硬盘到系统和应用程序迁移(克隆)全过程(教程)
又到了捣鼓电脑的时候了.去年(2022年)8月14日买的电脑,当时7月份刚出戴尔游匣G16,搜了一下,2022年7月22日,戴尔首发游匣G16国行版本. 到现在也就用了差不多半年的时间,我的内存满了, ...
