首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nextjs全局css头元素不适用于已解析的markdown,取而代之的是tailwindcss

基础概念

Next.js 是一个流行的 React 框架,用于构建服务器渲染的应用程序。它支持多种 CSS 预处理器和后处理器,包括全局 CSS 文件。Markdown 是一种轻量级标记语言,常用于编写文档和网页内容。Tailwind CSS 是一个实用程序优先的 CSS 框架,用于快速构建自定义设计。

问题描述

在 Next.js 中,全局 CSS 文件通常会影响整个应用程序,但在某些情况下,特别是与 Markdown 内容结合使用时,可能会遇到一些问题。例如,全局 CSS 样式可能不会正确应用于已解析的 Markdown 内容。

原因分析

Markdown 内容通常会被转换为 HTML,然后插入到页面中。如果全局 CSS 样式没有正确应用,可能是因为:

  1. 样式覆盖:Markdown 内容中的内联样式或其他局部样式覆盖了全局样式。
  2. 渲染顺序:Markdown 内容的渲染顺序可能导致全局样式未能及时应用。
  3. CSS 选择器优先级:全局 CSS 选择器的优先级可能低于局部样式。

解决方案

使用 Tailwind CSS

Tailwind CSS 提供了一种更灵活的方式来管理样式,特别是在处理动态内容时。以下是一些解决方案:

  1. 局部样式:为 Markdown 内容创建局部样式文件,确保样式只应用于特定的 Markdown 组件。
代码语言:txt
复制
// styles.module.css
.markdown-content {
  @apply text-base font-serif;
}
代码语言:txt
复制
// components/Markdown.js
import styles from '../styles.module.css';

const Markdown = ({ content }) => (
  <div className={styles.markdownContent}>
    <ReactMarkdown>{content}</ReactMarkdown>
  </div>
);
  1. CSS-in-JS:使用 CSS-in-JS 库(如 styled-components 或 emotion)来动态应用样式。
代码语言:txt
复制
// components/Markdown.js
import styled from 'styled-components';
import ReactMarkdown from 'react-markdown';

const StyledMarkdown = styled.div`
  font-family: 'Georgia', serif;
  font-size: 16px;
`;

const Markdown = ({ content }) => (
  <StyledMarkdown>
    <ReactMarkdown>{content}</ReactMarkdown>
  </StyledMarkdown>
);
  1. Tailwind CSS 类名:直接在 Markdown 组件中使用 Tailwind CSS 类名。
代码语言:txt
复制
// components/Markdown.js
import ReactMarkdown from 'react-markdown';

const Markdown = ({ content }) => (
  <div className="text-base font-serif">
    <ReactMarkdown>{content}</ReactMarkdown>
  </div>
);

应用场景

这种解决方案适用于需要在 Next.js 应用中处理大量 Markdown 内容的场景,例如博客平台、文档网站或知识库。

参考链接

通过以上方法,你可以确保全局 CSS 样式正确应用于已解析的 Markdown 内容,同时利用 Tailwind CSS 的灵活性来管理样式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

高颜值 tailwindcss 后台模板分享

这个免费 tailwindCSS 模板带有预构建示例,因此开发过程无缝,从原型页面切换到真实网站非常容易完成。 它每个元素都有颜色、样式、悬停、焦点多种状态,您都可以轻松访问和使用。...Notus NextJS Notus NextJS 免费和开源。它具有多个 HTML 和 NextJS 元素,并带有 NextJS 动态组件。...所有组件都可以采用颜色变化,您可以使用 Tailwind CSS 类轻松修改。 Vue Notus Vue Notus 免费和开源。...这个免费 tailwindCSS 模板带有预构建示例,因此开发过程无缝,从原型页面切换到真实网站非常容易完成。...Midone Midone 一个响应迅速且功能丰富管理模板,使用实用程序优先 CSS 框架 Tailwind CSS 构建。

3.1K30

初见next.js

. next/link 组件不会将那些 props 传递给子组件,并且还会给你一个错误警告.在这种情况下,next/link 组件子组件/元素接受样式和其他 props 最好承载体.它可以是任何组件或标签...但同时一些共享组件也是项目中必须,我们将创建一个公共 Header 组件并将其用于多个页面.      ...>      );      }      在该页面中我们看一下元素,其中 href 属性 p 文件夹中页面的路径, as 要在浏览器 URL 栏中显示 URL.as 用来与浏览器历史记录配合使用...     {`      ......css      `}      一般不使用全局样式来解决      styled-jsx 文档      使用全局样式   ...about 页面点击查看样式效果      [其他解决方案]](https://github.com/zeit/next.js#css-in-js)      引入 ui 库      目前代码在页面中呈现样式比较随意

5.1K00
  • 使用 NextJSTailwindCSS 重构我个人博客

    ESC 最低配 优点: 感觉没什么优点; 缺点: 浏览器渲染,搜索引擎无法收录 ESO 优化难,Antd 组件使用方便,但前台页面定制需要覆盖样式; 第三版:NextJS + TailwindCSS...TailwindCSS 不仅仅是一个原子类超级样式库; 1、我们在写样式时候,经常会写类名,团队成员之间会存在样式冲突可能,虽然我们可以使用 css modules 来避免,但却会存在取类名称疲劳问题...{js,ts,jsx,tsx}']打包时只会提取使用到样式,让应用css最小化。 4、之前写了《使用 CSS variables 和Tailwind css实现主题换肤》也运用到了我博客中。...接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面最简单客户端渲染代码 import React, { ReactElement, useEffect...与 TypeORM 对比 TypeORM 一种传统 ORM,它将表映射到模型类。这些模型类可用于生成 SQL 迁移。然后,模型类实例在运行时为应用程序 CRUD 查询提供一个接口。

    2.6K20

    使用 NextJSTailwindCSS 重构我博客

    ESC 最低配 优点: 感觉没什么优点; 缺点: 浏览器渲染,搜索引擎无法收录 ESO 优化难,Antd 组件使用方便,但前台页面定制需要覆盖样式; 第三版:NextJS + TailwindCSS...4、之前写了《使用 CSS variables 和 Tailwind css 实现主题换肤》也运用到了我博客中。...接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面最简单客户端渲染代码 import React, { ReactElement, useEffect...与 TypeORM 对比 TypeORM 一种传统 ORM,它将表映射到模型类。这些模型类可用于生成 SQL 迁移。然后,模型类实例在运行时为应用程序 CRUD 查询提供一个接口。...codemiror 和 remark 自己写组件 ,这一版发现掘金 Markdown 编辑比较好用,就直接使用了bytemd, 底层都是使用了 remark 和 rehype,支持任何框架,并且拥有丰富插件

    2.3K20

    从文档开发框架到package.json,带你走一轮React组件库构建与发布

    ,太多功能不支持,想在father4.rc集成原子类要踩坑实在太多,通过father4打包出来产物和下图类似 这种打包形式目前已知问题包括 在NextJs无法使用,因为Next约定式导入样式文件...我们知道,CSS样式覆盖问题一直CSS"特性",社区中为了解决css样式冲突也有不少方案,其中基本包括css modules、css in js、BEM规范、原子类这些解决方案。...3.2.4 全局CSS配置 建立src/global.css,并在src/index.ts引入 必须引入,原因,umi虽然约定式自动引入,但是对于father无效。...同时我建议在global.css中配置需要全局引入css postcss-import会把这份文件打包在一起 注意!...部分,用于打包出组件库 后边这里则生成.d.ts,提供类型支持 在viteplugins中配置

    3.9K20

    【实战】Next.js + 云函数开发一个面试刷题网站

    体验地址:https://www.runjs.cool/interview 技术栈选择 Next.js —— React 服务端渲染框架 Tailwindcss —— CSS 原子类框架 云数据库 ——...autoprefixer @tailwindcss/typography npx tailwindcss init -p 接下来将 pages 和 styles 文件夹重新移动到 src 目录下,这一步我个人习惯...这样 tailwindcss 只会编译 src 目录下使用到 css 类,其中 @tailwindcss/typography tailwind 官方提供文章插件,小程序中题目和答案使用 markdown...然后修改 styles/globals.csscsstailwindcss 指令 @tailwind base; @tailwind components; @tailwind utilities...: string //选项,选择题 explanation: string // 答案解析 level: number // 难度等级 tagId: number // 标签 } 我们原来云函数代码如下

    4.9K30

    73个强无敌NPM软件包

    项目链接: https://www.npmjs.com/package/tailwindcss 6.Styled-components CSS-in-JS 类工具,纸弥合了组件与样式之间鸿沟,提供一系列功能...项目链接: https://www.npmjs.com/package/html-minifier 53.Clean-CSS用于 Node.js 平台以及一切现代浏览器快速高效 CSS 优化器,...项目链接: https://www.npmjs.com/package/clean-css 54.UglifyJS2 JavaScript 解析器、最小化工具、压缩器及美化工具包。...CLI 与调试器 58.Commander 提供流畅 API,用于定义 CLI 应用程序中各类元素,包括命令、选项、别名及帮助等。简化了命令行应用程序创建过程。...项目链接: https://www.npmjs.com/package/csv 71.Marked 用于解析 markdown 代码低级编译器,不会引发长时间缓存或阻塞。

    4.4K10

    上手体验TailwindCSS

    写作背景: 在热火朝天前端框架演进进程中,大多数的人都把目光关注到了 JavaScript / TypeScript 身上,TailwindCSS作为最有争议但也是最受欢迎一个 CSS 框架产品我们也来看一下它到底好不好用...@import "tailwindcss/base"; @import "tailwindcss/components"; @import "tailwindcss/utilities"; 全局样式文件在...在.vue、.html文件中使用@apply仍提示未知规则,建议在安装以上插件后再添加工作区配置禁止掉这个提示: { "css.lint.unknownAtRules": "ignore"...提高复用性; 对于没有必要或不应该提取为组件简单元素,可以使用@apply抽象CSS类,就跟我们以前编写 class 一样来组合 Tailwind 功能类; 响应式设计 下面的两张设计图在不同浏览器尺寸下分别应该显示样式...确实会有一些别扭,但是当我们在开发一些无法使用 UI 库项目就不得不面临编写大量 css 文件,还得考虑响应式布局,黑暗模式等等,但是这些对于 TailwindCSS 来说将是简单TailwindCSS

    2.3K20

    2022年面向前端开发人员9个最佳UI组件库框架

    介绍 如果你参与Web开发,很可能听说过UI组件库和CSS框架。UI组件库一组预制样式(如字体、组件或颜色),可用于快速构建网站。...这就是为什么在本文中,我们列出了当今市场上一些最好开源和免费CSS框架和组件库。 1)Bootstrap Bootstrap一个免费和开源前端网页设计框架,用于制作漂亮Web应用程序。...语义用户界面库可以使用npm安装: 或使用yarn: 3)TailwindCSS TailwindCSS用于快速Web开发实用程序优先CSS框架。...4)FlowBite FlowBite一个模块化CSS组件库,用于更快、更轻松地进行Web开发。它通过响应式网格、一致排版、可定制组件和可扩展架构为你项目奠定了坚实基础。...Flowbite库可以使用npm安装: 确保你首先在项目中安装和配置TailwindCSS 或使用yarn: 5)AntDesign AntDesign由AntGroup和阿里巴巴巴分支阿里巴巴云创建设计语言和

    16.7K73

    手把手教你用神器nextjs一键导出你github博客文章生成静态html!

    代码解析 想要实现上面所说功能,需要先把功能拆解一下。 发起请求拉取自己github仓库里博客,获取文章存成md格式在本地。...全局配置 全局一些配置我放在了config.js中,拉取我项目的小伙伴只需要更改里面的配置,就可以一键生成你自己静态博客了。.../md') module.exports = { mdDir, // 用于更改标题上用户信息 user: { name: 'ssh', }, // 用于同步github博客...Markdown.jsx:渲染markdown html文本组件,本项目中利用了react-highlight库去高亮显示代码。 Page.jsx:博客详情页,评论区也是在里面实现。...到此我们就完成了手动生成自己静态博客,nodejs真的很强大,nextjs也是ssr神器,在这里也推荐一下jocky老师nextjs课程 coding.imooc.com/class/334.h

    3.6K20

    Next.js + TypeScript 搭建一个简易博客系统

    创建项目 # nextjs-blog-1 我们项目名称 npm init next-app nextjs-blog-1 选择 Default starter app。...不会请求重复 HTML、CSS、JS。 自动在页面插入新内容,删除旧内容。 因为省了一些请求和解析过程,所以速度极快。 同构代码 什么同构?...业务逻辑也不需要在浏览器和服务端同时维护,减小了程序出错可能。 全局配置 Head, Metadata, CSS Head title 我们想让页面的 title 不同,应该怎么配置?...CSS 也是一样,全局 CSS 放在 _app.js 中。因为切页面的时候 App 不会被销毁,其他地方只能写局部 CSS。 imprort '../styles/global.css'。...首先准备博客文件,根目录下创建 markdown 文档,写入几篇 md 格式博客。 然后我们借助 gray-matter 从 md 文件中解析数据。

    3.7K20

    一起来写 VS Code 插件:VS Code 版 CNode 上线

    因此我们能在 extensions 中开发出跟网页一样内容,但实现远比网页更强大功能。 效果 首先来看下实现效果 主要分为 2 部分,左侧主题列表,右侧主题详情。...上述代码中, Nonce一个在加密通信只能使用一次数字。在认证协议中,它往往一个随机或伪随机数,以避免重放攻击。Nonce 也用于流密码以确保安全。...配置 tailwindcss 为了方便,我这边使用了 tailwindcss,因为我可以使用 tailwindcss-typography 这个插件,帮我生成漂亮文章类型排版。.../typography')], } mode jit 及时编译模式 tailwindcss 2.1 版本加,忽略掉我们不需要 css 代码。...状态保持 与浏览器标签不一样,当 webview 移动到后台又再次显示时,webview 中任何状态都将丢失。因为 webview 基于 iframe 实现

    2.4K10

    【译】73个超棒且可提高生产力 NPM 包

    27.NextJS[48] NextJS 首先支持服务器渲染以及静态生成内容。你还可以将 serverless 功能定义为 API 端点。...28.NuxtJS[49] 在 Vue 生态系统中,NuxtJS 基本上 NextJS 替代品。NuxtJS 目标让 web 开发功能强大,并且让开发者具有良好开发意识。 ?...48.Puppeteer[71] Puppeteer 被广泛用于自动执行浏览器任务,并且只能与谷歌 chrome 无浏览器(即 chromium)一起工作。...53.Clean-CSS[76] 适用于 Node.js 平台和任何现代浏览器快速高效 CSS 优化器。具有高度可配置和多种兼容模式。...71.Marked[95] 用于解析 markdown 而不需要缓存或长时间阻塞低级编译器。 72.Randomcolor[96] 一个用于生成有吸引力随机颜色小脚本。

    5.9K30

    基于 Next.js SSRSSG 方案了解一下?

    SSR 另一概念同构渲染,可以看看知乎中讨论:什么前端同构渲染?...SSR 原理,本文就不再赘述了,感兴趣朋友推荐阅读这篇文章:《彻底理解服务端渲染 - SSR原理》 二、Next.js Next.js[2] 一款用于生产环境 React 框架,无需配置,默认提供了生产环境所需所有功能最佳开发实践...支持嵌套文件路由,如果您创建嵌套文件夹结构,文件仍将自动以相同方式路由解析。.../blog/first-post 4.3 动态参数路由 常见于比如博客文章详情页面,文章 id 动态变化,Next.js 中可以使用中括号解析到对应命名参数 文件路径对应路由pages/blog...}>{children} } 全局 CSS 注入,则在根目录 .

    5.5K30

    一起来写 VS Code 插件:VS Code 版 CNode 上线

    因此我们能在 extensions 中开发出跟网页一样内容,但实现远比网页更强大功能。 效果 首先来看下实现效果 主要分为 2 部分,左侧主题列表,右侧主题详情。...上述代码中, Nonce一个在加密通信只能使用一次数字。在认证协议中,它往往一个随机或伪随机数,以避免重放攻击。Nonce也用于流密码以确保安全。...配置 tailwindcss 为了方便,我这边使用了tailwindcss,因为我可以使用 tailwindcss-typography 这个插件,帮我生成漂亮文章类型排版。.../typography")], }; mode jit 及时编译模式 tailwindcss 2.1 版本加,忽略掉我们不需要css 代码。...开发工具,英文版应该是Open Webview Developer Tools: 从上图也可以看 在html标签上注入了当前皮肤 css 变量。

    1.4K40

    研究三天,我找到了 tailwindcss 正确打开姿势

    我结合群友使用经验,又整合了一些以前封装组件使用思路,并且借鉴了 unocss 语法,摸索出了一套使用简洁最佳实践分享给大家 一、最显眼那个痛点可能并不存在 二、无 CSS 准确方向 三、封装思维小转变...这也是我很长一段时间都没有使用 tailwindcss 重要原因。 一条属性一句代码,必然会导致某些元素 class 名会非常长冗长。...目的其实是为了少创建一个 css 文件,因此,就近声明变量我认为最好方式,只有一些全局、共用可以单独提炼出来放到一个单独文件中去 基于这个思路,按照我以前使用 css 经验,我们可能会提取一些常用...在一些个人/练手/ demo 项目中,我们可以轻量这样使用,用于设置一些单一元素组件一样,例如 button、input 等,这非常方便。...我们在 css 中定义如下两个样式用于设置背景色 .red { background-color: #f44336; } .orange { background-color: orange;

    78710

    解锁网页设计新境界:一文掌握Tailwind CSS

    Tailwind CSS就像这样一盒精心设计积木,每块积木代表一个CSS工具类——这是你用来搭建和设计网页基本元素。...组合积木: 接着,你将这些积木(工具类)组合在一起,应用到HTML元素上,就像是把不同积木拼凑在一起搭建一个房子或是造一辆车。...简而言之,content 属性 Tailwind CSS 配置中一个非常重要部分,它确保了最终部署 CSS 文件精简和高效。...在package.jsonscripts部分定义两个子命令,例如,一个用于启动Tailwind CSS构建和监视进程,另一个用于启动live-server。...记住,每个伟大探险者在开始他们旅程时都可能会觉得有点不适应。但正是这些不断探索和学习,最终使他们成为了领航者。

    42010
    领券