简单介绍下 VitePress 中的 vp-doc 和 vp-raw

VitePress 是一个轻量级的静态网站生成器,专为快速构建文档网站而设计。它是基于 ViteVue 3 构建的,旨在提供快速的开发体验和高效的构建过程。

存在两个需要注意的点:vp-doc 和 vp-raw,它们代表了不同的 CSS 样式类和用途,涉及页面内容的呈现方式。

1. vp-doc 的含义与用法

1.1 含义

vp-doc 是 VitePress 用来构建文档页面时,应用于整个页面布局的一种 CSS 样式类。它是 VitePress 内部定义的一个类,作为页面的根容器元素,包含了文档的结构样式,确保文档内容的排版、间距、背景色等统一性。

1.2 用法

vp-doc 作为文档页面的根容器,包含了所有文档内容。它通常用于包裹整个文档站点的 HTML 结构。

通过对 vp-doc 类样式进行修改,可以自定义整个文档站点的布局和样式。

在 VitePress 中,vp-doc 是自动添加的,无需手动去创建这个类。它作为 VitePress 渲染文档的一个基础,控制页面的整体布局。

因此,当遇到自定义样式不生效时,需要考虑是否优先使用了 vp-doc 样式。

举个 🌰

当编写一个 table 组件时,展示为:

代码为:

import { defineComponent } from "vue";
import { ElButton, ElTable, ElTableColumn } from "element-plus";
import "./index.less";export default defineComponent({setup() {const tableData = [{ name: 'Sophia', age: 18, country: '美国' },{ name: 'William', age: 20, country: '新加坡' },{ name: 'Alice', age: 25, country: '中国' },{ name: 'Evelyn', age: 30, country: '法国' },{ name: 'Emma', age: 10, country: '俄罗斯' },];return () => (<div class="table-container"><ElTable data={tableData} style={{ width: '100%' }} border stripe><ElTableColumn prop="name" label="姓名" /><ElTableColumn prop="age" label="年龄" /><ElTableColumn prop="country" label="国家" /><ElTableColumn min-width="120" label="操作">{{default: () => (<div class="operation"><ElButton link type="primary" size="default">查看</ElButton><ElButton link type="primary" size="default">编辑</ElButton><ElButton link type="primary" size="default">删除</ElButton></div>)}}</ElTableColumn></ElTable></div>);}
});

问题来了:为什么表格展示有问题呢?

翻看一下元素就明白了,vp-doc 样式起作用,全部注释掉之后,就恢复为正常表格。

也就是给属性默认值:

.vp-doc table:not(:where(.vp-raw, .vp-raw *)) {border-collapse: initial;margin: 0 auto;display: table;
}

注意📢:这个样式的位置要考虑全面,避免影响到全局。 

正常展示为:

遇到其余类似情况,也是一样的处理。 

1.3 注意事项

vp-doc 是 VitePress 内部使用的一个类,通常不需要直接去修改它,除非需要全局定制样式。它是页面的主要结构,包含了 VitePress 的默认布局,除非有特殊的需求,通常不建议直接去删除或修改这个类的结构。

2. vp-raw 的含义与用法

2.1 含义

vp-raw 是 VitePress 中用于处理原始 HTML 或未经过解析的内容的一个特殊类。它允许用户在文档中插入原始 HTML 或其他不会被 VitePress 处理的内容。

2.2 用法

vp-raw 通常与 VitePress 渲染过程中需要“原生”呈现的内容结合使用。

举个 🌰

在 VitePress 中,使用普通 class 类名和 vp-raw 类名直接插入 HTML 代码块的区别。

普通 class

<div class="custom-html"><p>This content is implemented using a regular class name.</p>
</div>

vp-raw 类

<div class="vp-raw"><p>This content is implemented using the vp-raw class name.</p>
</div>

区别:二者的 p 元素样式是不同的。

2.3 意义

vp-raw 类的关键在于,它可以防止内容在渲染过程中被 VitePress 进一步解析,保留其原始形式。这样可以让开发者插入非 Markdown 或非 VitePress 处理的内容。

注意:尽量避免过度使用 vp-raw,因为直接插入 HTML 可能会破坏 VitePress 的一致性和文档结构。只有在必要时,才建议使用该类。

2.4 特别使用

当项目中不想使用额外的 vp-doc 的样式,也就是 VitePress 本身的样式文件,可以在目录:vitepress/vp-demo/index.vue 内部代码的最外层设置:

<div class="vp-raw">...
</div>

即可实现页面应用的都是自定义样式。

3. 额外补充一点「::: demo」

在 VitePress 中,::: demo 是一个非常有用的语法,它是 VitePress 中的一个自定义容器,用于创建一个可交互的代码演示区域。通过包裹代码块的方式,使得代码示例可以在页面上呈现出来。

也就是上述表格的展示方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】LinkedList与链表

LinkedList与链表 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3.链表面试题 【本节目标】 ArrayList的缺陷链表链表相关ojLinkedList的模拟实现LinkedList的使用ArrayList和LinkedList的区别 1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用&#xf…

Matrix Multiplication

lab要求如下&#xff1a;

Laravel8.5+微信小程序实现京东商城秒杀方案

一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案&#xff08;3种&#xff09; 下单减库存 优点是库存和订单的强一致性&#xff0c;商品不会卖超&#xff0c;但是可能导致恶意下单&#xff…

esp8266 编译、烧录环境搭建

一、准备 xtensa-lx106-elf-gcc8-4-0-esp-2020r3-win32下载&#xff1a;点击跳转 MSYS2 压缩包文件&#xff1a; 固件烧录工具&#xff1a;点击跳转 esp8266源码地址&#xff1a;点击跳转 二、搭建编译环境 1、在D盘创建一个ESP8266目录&#xff0c;解压MSYS2.zip到里面&a…

WEB攻防-通用漏洞CSRFSSRF协议玩法内网探针漏洞利用

CSRF构造工具&#xff0c;也可以用bp构造 选中要保存的请求&#xff0c;点击Generate HTML,生成带有添加用户请求的html文件&#xff0c;然后将构造的html放在网站上&#xff0c;生成访问地址&#xff0c;诱导管理员点击链接&#xff0c;就会添加用户 start Recording之后就会…

2-7 C函数指针与回调函数

前言&#xff1a; 对函数指针与回调函数知识回顾&#xff0c;仅供学习参考... 目录 前言&#xff1a; 1.0 函数指针 2.0 函数指针变量 3.0 函数指针与指针函数 4.0 函数指针类型 5.0 卡点 后记&#xff1a; 1.0 函数指针 函数指针&#xff0c;简单来说就是指向函数的指针…

分布式FastDFS存储的同步方式

目录 一&#xff1a;FatsDFS的结构图 二&#xff1a;FatsDFS文件同步 前言&#xff1a; 1&#xff1a;同步日志所在目录 2&#xff1a;binlog格式 3&#xff1a;同步规则 4&#xff1a;binlog同步过程 1 &#xff1a;获取组内的其他Storage信息 tracker_report_thread_e…

【大模型】ChatGPT 提示词优化进阶操作实战详解

目录 一、前言 二、ChatGPT 提示词几个基本的优化原则 2.1 明确的提示词 2.1.1 提示词具体而清晰 2.1.1.1操作案例演示 2.2 确定焦点 2.2.1 操作案例演示 2.3 保持提示词的相关性 2.3.1 什么是相关性 2.3.2 提示词相关性操作案例一 2.3.2 提示词相关性操作案例二 三…

C 语言学习的经典书籍有哪些?

学习C语言的理由 C语言是一种程席设计语言&#xff0c;它是由美国AT&T公司贝尔实验室的Dennis Ritchie于1972年发明的。C语言之所以流行&#xff0c;是因为它简单易用。学习C语言的几个理由如下&#xff1a; (1)C、C#和Java使用一种被称为面向对象程序设计(0bject-Orient…

在鲲鹏麒麟服务器上部署MySQL主从集群

因项目需求需要部署主从MySQL集群&#xff0c;继续采用上次的部署的MySQL镜像arm64v8/mysql:latest&#xff0c;版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101 部署MySQL主节点 在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/l…

Transformers在计算机视觉领域中的应用【第2篇:MAE——BERT的CV版本】

目录 1 介绍2 模型示意图3 MAE算法4 总结 论文&#xff1a;Masked Autoencoders Are Scalable Vision Learners 代码&#xff1a;https://github.com/facebookresearch/mae 1 介绍 MAE是基于ViT的&#xff0c;将整个训练拓展到没有标号的数据上面&#xff0c;和BERT一样&#…

WebGL vendor [显卡]指纹

一、WebGL vendor&#xff1a;(厂商) Google Inc. (NVIDIA) c定义在 third_party\angle\src\libANGLE\Display.cpp 格式化Google Inc.字符在Display::initVendorString()函数里面&#xff0c;可以在此修改值。 void Display::initVendorString() {mVendorString …

stable diffusion实践操作-大模型介绍:SD的发展历史,SD1.5和SDXL之间的差别

大家有没有这样的困惑&#xff1a;在找模型时&#xff0c;老是会出现一些奇怪的标签&#xff0c;像 sd1.5、sdxl 之类的模型后缀&#xff0c;真让人摸不着头脑&#xff0c;一会儿 1.0&#xff0c;一会儿 1.5&#xff0c;一会儿 XL&#xff0c;完全搞不清楚状况。今天就来给大家…

网络编程第二课

预备知识 1、操作系统的用户态和内核态&#xff1a; 用户态指的是用户自己定义工作空间&#xff0c;自己申请变量、定义函数的操作。 内核态指把一些工作交给操作系统去玩成&#xff0c;用户本身看不到执行过程&#xff0c;只能获取操作系统最后执行完成的结果。其中&#x…

Python酷库之旅-第三方库Pandas(252)

目录 一、用法精讲 1191、pandas.tseries.offsets.BusinessMonthBegin.n属性 1191-1、语法 1191-2、参数 1191-3、功能 1191-4、返回值 1191-5、说明 1191-6、用法 1191-6-1、数据准备 1191-6-2、代码示例 1191-6-3、结果输出 1192、pandas.tseries.offsets.Busine…

IO流之文件

1. 文件流 2. 常用文件操作 2.1 文件创建 方式1 new File(String pathname) // 根据路径创建一个File对象 方式2 new File(File parent,String child) //根据父目录文件子路径构建 方式3 new File(String parent,String child) //根据父目录子路径构建 package com.hspedu.fil…

【从零开始的LeetCode-算法】35. 搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入: …

C++(4个类型转换)

1. C语言中的类型转换 1. 隐式 类型转换&#xff1a; 具有相近的类型才能进行互相转换&#xff0c;如&#xff1a;int,char,double都表示数值。 2. 强制类型转换&#xff1a;能隐式类型转换就能强制类型转换&#xff0c;隐式类型之间的转换类型强相关&#xff0c;强制类型转换…

深度学习7 梯度下降优化、过拟合、手机价格预测

三、BP算法 3、梯度下降 w w - lr * grad&#xff1a; w 表示权重&#xff0c;lr表示学习率&#xff0c;grad表示梯度 传统下降方式分三类&#xff1a;&#xff08;BGD&#xff09;批量梯度下降、&#xff08;MBGD&#xff09;小批量梯度下降、&#xff08;SGD&#xff09;随…

计算机的错误计算(一百七十二)

摘要 探讨 MATLAB 对于算式 的计算误差。 例1. 在 MATLAB 中计算 的值。 直接贴图吧&#xff1a; 这样&#xff0c;MATLAB 的输出中只有3位正确数字&#xff0c;有效数字的错误率为 (16-3)/16 81.25% . 因为16位的正确输出为 0.2971242332737277e-18&#xff08;ISReals…