前端富文本设置的表格样式无法展示解决方案

news2024/11/22 6:15:38

当我们在富文本编辑器里编辑好文本后,发布一看,为什么编辑器预览的内容和实际保存后展示的内容不一致呢。这是因为,大部分编辑器本身会自带一些样式属性,而当获取富文本内容的时候往往是不带这些样式属性的,所以才导致了实际看到的和编辑器里预览的不一致的问题。

解决方案一:

在使用富文本内容的展示代码里自行增加样式基础属性。

缺点:如果是多端需要没端都加样式代码。

解决方案二:

在保存富文本内容时,追加对应的样式代码。

缺点:样式可能需要考虑多端,文本需要重新编辑时要先过滤样式代码再编辑。

解决方案三:

自定义富文本的组件,在追加标签时自动添加基础样式属性。

缺点:富文本的内容长度会变长。

案例:

Vue项目使用vue-ueditor-wrap富文本组件。

富文本页面代码

<template>
  <vue-ueditor-wrap v-model="content" :config="config" style="width: 100%"></vue-ueditor-wrap>
</template>

<script>
  import VueUeditorWrap from 'vue-ueditor-wrap'
  export default {
    name: 'ueditor',
    components: {
      VueUeditorWrap
    },
    data() {
      return {
        content: '',
        config: {
          toolbars: [
            [
              'anchor', //锚点
              'undo', //撤销
              'redo', //重做
              'bold', //加粗
              'indent', //首行缩进
              'snapscreen', //截图
              'italic', //斜体
              'underline', //下划线
              'strikethrough', //删除线
              'subscript', //下标
              'fontborder', //字符边框
              'superscript', //上标
              'formatmatch', //格式刷
              // 'source', //源代码
              'blockquote', //引用
              'pasteplain', //纯文本粘贴模式
              'selectall', //全选
              'print', //打印
              'preview', //预览
              'horizontal', //分隔线
              'removeformat', //清除格式
              'time', //时间
              'date', //日期
              'unlink', //取消链接
              // 'insertrow', //前插入行
              // 'insertcol', //前插入列
              // 'mergeright', //右合并单元格
              // 'mergedown', //下合并单元格
              // 'deleterow', //删除行
              // 'deletecol', //删除列
              // 'splittorows', //拆分成行
              // 'splittocols', //拆分成列
              // 'splittocells', //完全拆分单元格
              // 'deletecaption', //删除表格标题
              // 'inserttitle', //插入标题
              // 'mergecells', //合并多个单元格
              // 'deletetable', //删除表格
              'cleardoc', //清空文档
              'insertparagraphbeforetable', //"表格前插入行"
              // 'insertcode', //代码语言
              'fontfamily', //字体
              'fontsize', //字号
              'paragraph', //段落格式
              // 'simpleupload', //单图上传
              'insertimage', //多图上传
              'edittable', //表格属性
              'edittd', //单元格属性
              'link', //超链接
              'emotion', //表情
              'spechars', //特殊字符
              'searchreplace', //查询替换
              // 'map', //Baidu地图
              // 'gmap', //Google地图
              'insertvideo', //视频
              'help', //帮助
              'justifyleft', //居左对齐
              'justifyright', //居右对齐
              'justifycenter', //居中对齐
              'justifyjustify', //两端对齐
              'forecolor', //字体颜色
              'backcolor', //背景色
              'insertorderedlist', //有序列表
              'insertunorderedlist', //无序列表
              'fullscreen', //全屏
              'directionalityltr', //从左向右输入
              'directionalityrtl', //从右向左输入
              'rowspacingtop', //段前距
              'rowspacingbottom', //段后距
              'pagebreak', //分页
              'insertframe', //插入Iframe
              'imagenone', //默认
              'imageleft', //左浮动
              'imageright', //右浮动
              'attachment', //附件
              'imagecenter', //居中
              'wordimage', //图片转存
              'lineheight', //行间距
              'edittip ', //编辑提示
              'customstyle', //自定义标题
              'autotypeset', //自动排版
              // 'webapp', //百度应用
              'touppercase', //字母大写
              'tolowercase', //字母小写
              'background', //背景
              'template', //模板
              // 'scrawl', //涂鸦
              'music', //音乐
              'inserttable', //插入表格
              // 'drafts', // 从草稿箱加载
              // 'charts', // 图表
            ]
          ],
          // 编辑器不自动被内容撑高
          autoHeightEnabled: false,
          // 初始容器高度
          initialFrameHeight: 600,
          // 初始容器宽度
          initialFrameWidth: '100%',
          // 上传文件接口
          serverUrl: process.env.VUE_APP_SERVER_DOMAIN + "***.json",
          // UEditor 资源文件的存放路径,如果你使用的是 vue-cli 生成的项目,通常不需要设置该选项,vue-ueditor-wrap 会自动处理常见的情况,如果需要特殊配置,参考下方的常见问题2
          UEDITOR_HOME_URL: '/UEditor/'
        },
      }
    }
  }
</script>

使用解决方案一:

<div class="rich-text-area" v-html="richText"></div>
<style>
.rich-text-area table{
  border-collapse: collapse;
}
.rich-text-area table td{
  border:1px solid #DDD;
  padding:5px 10px;
  box-sizing: unset;
}
</style>

这里的样式可以自己根据实际需求进行修改,如果想要和编辑器完全一致的样式,推荐通过浏览器的开发者工具,查看富文本编辑器里使用的哪种样式,然后进行对应的样式增加。

使用解决方案二:

this.content + '<style>table{margin-bottom: 10px;border-collapse:collapse;display: table;}td,th{padding:5px 10px;border:1px solid #DDD;box-sizing: unset;}</style>'

后面的追加样式同方案一一致,但是因为时标签样式,所以会造成样式污染,此方法用在单页面展示富文本会相对方便。

使用解决方案三:

这里我就讲一下逻辑,部分富文本是支持自定义组件生成效果的,比方默认添加段落标签时代码如下

<p></p>

那自定义时可以做成附带基础样式的,代码如下

<p style="font-size: 20px;"></p>

这样每个p标签都会自带此样式,就不需要额外定义样式了。

如果富文本组件不支持自定义的组件,那么可以在获取富文本内容之后进行数据处理,可使用正则或者xpath等方式进行标签样式追加。

题外:

如何查看富文本的样式。

使用工具谷歌浏览器,Windows按F12,苹果电脑右键检查。

然后点击此按键,然后选中左边的表格区域,选中后,就可以在Styles里看到对应的样式

 

 

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

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

相关文章

【Java_GUI编程】--基本操作你要知道

文章目录一、组件和容器1、JFrame2、面板JPanel3、布局管理器流式布局&#xff08;从左到右&#xff09;东南西北中网格布局4、事件监听输入框事件监听键盘监听5、JDialog弹窗6、Icon、ImageIcon标签IconImageIcon7、按钮单选按钮复选按钮8、列表下拉框列表框9、文本框密码框文…

醉三皇酒特别的爱:孙子15年买酒送爷爷,爷爷90箱好酒赠重孙

小强没有万万没有想到&#xff0c;自己不仅会被裁员&#xff0c;而且还妻离子散&#xff0c;最敬爱的爷爷又意外去世。 一、惨遭裁员&#xff0c;一蹶不振 都说程序员是吃年轻饭的&#xff0c;以前不以为然&#xff0c;现在看着手里的裁员告知单&#xff0c;小强也不得不信了。…

Mybatis源码分析(三)SqlSessionFactoryl的初始化

目录一 解析配置文件入口二 解析properties文件三 解析settings文件四 解析typeAliases文件五 解析 Plugin文件六 解析 Environments 文件七 解析Mapper 文件官网&#xff1a; mybatis – MyBatis 3 | 简介参考书籍&#xff1a;《通用源码阅读指导书&#xff1a;MyBatis源码详解…

vscode无法读取头文件问题,改变exe生成路径问题,头文件,源文件分离问题

首先声明一点&#xff0c;我这里演示的基础是源文件都位于项目根目录下的&#xff0c;然后exe文件和头文件可以放在项目的其他任何文件夹中的。 目录 1. vscode自定义头文件包含问题 1.1 首先是我们的c_cpp_peoperties.json文件 1.2 接下来是我们的settings.json文件 2.改变…

String(2)

字符串中的库函数&#xff0c;基本上只要对原来的字符串进行修改&#xff0c;基本上返回的都是一个新的对象 我们先来看一个内存布局图: String s1new String("hello"); String s2new String("world"); String s3s1; 下列程序的输出结果是:输出good和gbc p…

Go开发环境搭建

文章目录Go环境搭建开发工具Visual Studio Code Go 扩展插件时间2022-12-15 Go环境搭建 下载安装Go 国外的官网: https://golang.org/dl/国内的官网: https://golang.google.cn/dl/ 检查版本go version 必须在安装目录执行命令&#xff1a;C:\Program Files\Go>go version…

软考信息安全工程师备考笔记

上午 信息安全的5个基本要素为&#xff1a;机密性、完整性、可用性、可控性、可审查性。 法律 《中华人民共和国网络安全法》已由中华人民共和国第十二届全国人民代表大会常务委员会第二十四叫次会议于2016年11月7日通过&#xff0c;自2017年6月1日起施行。 第八条明确规定了…

ADI Blackfin DSP处理器-BF533的开发详解53:CMOS摄像头采集图像+LCD显示(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了摄像头拍摄一张 640480 大小&#xff0c;YUV422 格式的图片&#xff0c;然后将图片转成 RGB565 格式&#xff0c;裁剪为 480…

Latex 中插入 Matlab 代码

这篇文章将介绍如何在 Latex 排版过程中添加 Matlab 代码 功能效果 主要有如下排版功能&#xff1a; 语法高亮自动添加边框自动添加行号 先上图&#xff0c;大家感受一下效果&#xff1a; 而实现这些只需要一行代码加一个包&#xff01; 插入代码块 \usepackage{listings…

JavaScript刷LeetCode拿offer-二叉树层序遍历篇

前言 博主最近在刷leetcode&#xff0c;做到二叉树套题的时候发现很多题的解题思路都是基于二叉树的层序遍历来完成的&#xff0c;因此写下这篇文章&#xff0c;记录一下二叉树层序遍历这件"神器"在实战的运用。 [leetcode] 102.二叉树的层序遍历 二叉树的层序遍历…

[附源码]Python计算机毕业设计高校宿舍管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Vue渲染器(五):快速diff算法

渲染器&#xff08;五&#xff09;&#xff1a;快速diff算法 这章开始讨论第三种用于比较新旧vnode的方式&#xff1a;快速diff算法。跟它的名字一样&#xff0c;它很快。Vue3采用的就是这种算法&#xff0c;Vue2采用的是上一章中的双端diff算法。 接下来就来着重了解它的实现…

宝塔部署前后端分离项目(Vue+SpringBoot)

目录 后端部分 配置Redis 前端部分 后端部分 1 先修改自己的speingboot配置文件&#xff0c;我的是yml文件 保证宝塔上建的数据库和自己代码里&#xff0c;就是配置文件中所建的数据库的名字是一致的密码也要保持一致&#xff0c;Redis也一样&#xff0c;如果有的话 2 记录…

关注电动汽车能效水平 提高续航能力

电动汽车&#xff08;EV&#xff09;近些年发展迅猛&#xff0c;已被汽车业内普遍认为是未来汽车发展的新方向&#xff0c;但是现如今电动汽车仍然存在一些短板&#xff0c;导致其还无法替代传统燃油车。对此&#xff0c;先想到的是电动车的续航问题。其实解决电动车续航问题主…

python 插值处理一维数据 interpolate

scipy库&#xff1a; 原码&#xff1a; https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html kind可选“linear”、“nearest”、“nearest-up”、“zero”、“slinear”、“quadratic”、“cubic”、“previous”或“next”之一。 “zero…

JSP sshOA办公系统myeclipse开发oracle数据库MVC模式java编程计算机网页设计

一、源码特点 JSP sshOA办公系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开 发。开发环境为TOMCAT7.0,Myecl…

音视频编解码流程与如何使用 FFMPEG 命令进行音视频处理

一、前言 FFMPEG 是特别强大的专门用于处理音视频的开源库。你既可以使用它的 API 对音视频进行处理&#xff0c;也可以使用它提供的工具&#xff0c;如 ffmpeg, ffplay, ffprobe&#xff0c;来编辑你的音视频文件。 本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能&#…

OpenWrt 安装 WireGuard

下载 img镜像 https://downloads.openwrt.org/releases/22.03.2/targets/x86/generic/openwrt-22.03.2-x86-generic-generic-squashfs-combined-efi.img.gz解压 转化格式我的是Linux # 解压 gzip -d openwrt-22.03.2-x86-generic-generic-squashfs-combined-efi.img.gz #vmwa…

如何将数学曲线变为机器人轨迹-花式show爱心代码-turtlesim篇

第一步&#xff1a;找到曲线数学描述的网址。 阅读后了解曲线所对应的xy函数。 不要选太复杂的&#xff0c;毕竟先复现出来最重要的。 第二步&#xff0c;这个函数转为C代码。 //Lovegoal_x5.54.0*pow(sin(curve_t/200.0),3);goal_y5.5((13.0*cos(curve_t/200.0)-5.0*cos(curv…

网络工程师备考6章

6.1 OSI参考模型概述 计算机的整套理论是图灵提出来的,自此创办图灵奖(计算机类最高奖项)。科学远远比技术更重要。 OSI七层模型就是科学,就是理论,所以非常重要! 注:ISO是一个机构,OSI是一个协议:分别七层 6.2 OSI参考模型 注:在传输层中,什么是端到端,例如A,…