vue页面中怎么显示多个空格-从普通空格到非断行空格与v-html的使用

一、问题描述

当想通过给页面增加空格对齐文字时,无论增加了多少个空格,都没有任何效果。

二、解决方案

产生的原因是因为在浏览器进行解析的时候, 会将多个空格合并成分成一个空格。因此无论使用多少个空格,在页面中均显示一个空格。

方案一

首先,想到了 ****  ,全称为Non-breaking Space,表示不在此处换行。将空格换成** **。看下效果:

方案二

ps: 很是奇怪啊,写这篇博客之前通过   来实现多个空格是不能实现的。可能跟使用vue2有关吧,上述的演示的代码使用的是vue3。下面是当时的实现方案:

使用v-html来实现了:

  v-html 的内容直接作为普通 HTML 插入------ Vue 模板语法是不会被解析的。在单文件组件,scoped 样式将不会作用于 v-html 里的内容,因为 HTML 内容不会被 Vue 的模板编译器解析。

实现方法如下:

复制代码
<div v-html="labelAccessory" />
computed: {
  labelAccessory() {
    return `阿&nbsp;&nbsp;叶&nbsp;&nbsp;
    今&nbsp;&nbsp;天&nbsp;&nbsp;
    敲&nbsp;&nbsp;代&nbsp;&nbsp;
    码&nbsp;&nbsp;了&nbsp;&nbsp;吗`
  }
}

实现效果如下:

需要注意的是:

  在你的站点上动态渲染任意的 HTML 是非常危险的,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要将用户提供的内容作为插值。

对以上提到的可信内容简GPT了一下,仅供参考:

"可信内容"指的是你信任并且确定是安全的内容,例如:

  1. 你自己的静态内容:你自己创建的、没有包含用户提供数据的 HTML 内容,例如网站的静态文本或者固定的 HTML 标记。
  2. 从受信任来源获取的内容:从可信任的数据源、API 或数据库中获取的数据,例如你自己的数据库中存储的内容。
  3. 经过适当转义和过滤的用户输入:用户提供的内容经过了严格的输入验证和过滤,确保其中不包含任何恶意代码或脚本,并且在插值到 HTML 中之前进行了正确的转义以防止 XSS 攻击。
相关推荐
Eiceblue12 分钟前
如何构建一个纯前端 Word 转 Markdown 转换器(React + WebAssembly)
前端·react.js·word
平头哥~25 分钟前
Day 15 | 不改一行 HTML,给页面加上引号、角标和标签
前端·javascript·css·html·css3·学习资料
风骏时光牛马29 分钟前
后端系统性能监控与异常告警管理
前端
Fluxart.ai1 小时前
GPT Image 2 国内怎么用?在 Flux Art 完成图片生成与编辑
前端·javascript·gpt
tanzongbiao2 小时前
Dorado7文件上传 解决HttpServletResponse返回值中文乱码的问题
java·服务器·前端
郑州光合科技余经理5 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
平头哥~9 小时前
Day 07 _ 那条 1px 的线,为什么在手机上忽粗忽细
前端·css·样式·学习资料
小江的记录本10 小时前
【CSS】CSS 动画:transition、animation、transform、CSS3 新特性(附《思维导图》)
前端·css·安全·spring·前端框架·css3·动画
circuitsosk10 小时前
任务规划器的三种范式对比:ReAct、Plan-and-Execute 与 Tree-of-Thought 在真实业务中的取舍
前端·javascript·python·react.js·llm·ai agent
hzxpaipai11 小时前
企业官网技术架构拆解:前端、后台、数据库、服务器如何协同
前端·数据库·架构