当前位置: 首页 > news >正文

css的white-space: pre

用户从别的地方复制的配置文件,粘贴到输入框内,需要保留原始格式发送给后端。

核心步骤:

### 1. 格式保持机制
- white-space: pre :这是最关键的CSS属性,确保所有空格、制表符、换行符都被保留
- wrap="off" :防止浏览器自动换行,保持原始的行结构
- 等宽字体 :使用Consolas等编程字体,确保字符对齐和格式清晰
### 2. 数据绑定
- 使用Vue3的 v-model="inputJson" 实现双向数据绑定
- 用户粘贴的内容会完整存储在 inputJson.value 中,包括所有格式字符
### 3. 用户体验
- 大尺寸textarea(400px高度)提供充足的编辑空间
- 关闭拼写检查避免干扰
- 聚焦时的视觉反馈
简单来说,这个组件的核心就是让用户能够粘贴任何文本内容(特别是配置文件、JSON等),并且保证粘贴的内容格式完全不变,然后可以原样发送给后端处理。

下面是一个小demo

<template><div class="json-input-container"><textarea v-model="inputJson" placeholder="请粘贴配置文件内容,将保持原始格式"class="json-textarea"rows="15"wrap="off"spellcheck="false"></textarea><div class="format-info"><small>保持原始格式,包括换行符、空格和缩进,内容将原样发送给后端</small></div></div>
</template><script setup>
import {ref,watch} from "vue";// 输入内容,保持原始格式
let inputJson = ref('');
watch(inputJson, (newValue) => {console.log(JSON.stringify(newValue));
})
</script><style scoped>
.json-input-container {width: 100%;max-width: 800px;margin: 0 auto;
}.json-textarea {width: 100%;min-height: 400px;padding: 16px;border: 2px solid #e1e5e9;border-radius: 8px;font-family: 'Consolas', 'Monaco', 'Courier New', monospace;font-size: 14px;line-height: 1.5;background-color: #f8f9fa;color: #333;resize: vertical;outline: none;transition: border-color 0.3s ease;white-space: pre;overflow-wrap: normal;overflow-x: auto;box-sizing: border-box;
}.json-textarea:focus {border-color: #007bff;background-color: #fff;box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}.json-textarea::placeholder {color: #6c757d;font-style: italic;
}.format-info {margin-top: 8px;text-align: center;color: #6c757d;
}.format-info small {font-size: 12px;
}
</style>

http://www.dtcms.com/a/344440.html

相关文章:

  • Docker 命令大全
  • VsCode 上的Opencv(C++)环境配置(Linux)
  • 四种方法把 Proxy 对象代理数组处理成普通数组
  • URP+Unistorm5.3.0 -> webGL天空黑屏的处理
  • 如何精准高效地比对两份合同的差异?
  • Java数据结构——7.2 二叉树-二叉树
  • MPLS原理
  • 新能源知识库(84)什么是IEC白皮书
  • 初识数据结构——Map和Set:哈希表与二叉搜索树的魔法对决
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行本地操作--读取店铺信息(6)
  • 循环神经网络实战:GRU 对比 LSTM 的中文情感分析(三)
  • UE5关卡蓝图能不能保存副本呀?
  • Pandas 合并数据集:concat 和 append
  • 2025年城市建设与公共管理国际会议(UCPM 2025)
  • Linux之Ubuntu入门:Vmware中虚拟机中的Ubuntu中的shell命令-常用命令
  • C++实现简易线程池:理解 function 与 bind 的妙用
  • CMake进阶:Ninja环境搭建与加速项目构建
  • JVM-(8)JVM启动的常用命令以及参数
  • 期货Level-2五档订单簿每250毫秒高频数据及分时、日度历史行情深度解析
  • 【大模型采样策略(Greedy、Top-k、Top-p、温度调节)三化学习】
  • 旧物新生,交易无界——探索二手交易小程序系统的绿色革命
  • 优考试局域网系统V6.0.0版
  • 谁才是多快好省的数据分析选择:SelectDB vs. ClickHouse vs. Snowflake
  • 关于常用线程池CompletableFuture和Future的介绍
  • 我从零开始学习C语言(13)- 循环语句 PART2
  • QT-左右侧边栏动画
  • 动态代理保姆级别
  • 大模型微调:从理论到实践的全面指南
  • 数据结构与算法之数组篇leetcode704 - 二分查找
  • kubernetes中pod的管理及优化