react输入框输入的空格 样式 和输入后页面显示一致

为了确保在 React 输入框中输入的空格样式和输入后页面显示一致,你可以使用 CSS 的 white-space 属性来控制空格的显示。具体来说,可以使用 pre-wrap 值来保留空格和换行符。

import React, { useState, useEffect, useRef } from 'react';
import './App.css';const App = () => {const [text, setText] = useState('');const textareaRef = useRef(null);useEffect(() => {const textarea = textareaRef.current;// 重置高度,防止高度累积textarea.style.height = 'auto';// 设置高度为内容的高度textarea.style.height = `${textarea.scrollHeight}px`;}, [text]);const handleChange = (event) => {setText(event.target.value);};return (<div className="container"><textareaid="dynamic-textarea"ref={textareaRef}value={text}onChange={handleChange}placeholder="请输入文字..."/><div className="display-text">{text}</div></div>);
};export default App;
.container {width: 300px;margin: 50px auto;
}#dynamic-textarea {width: 100%;min-height: 50px;max-height: 150px; /* 设置最大高度 */overflow-y: auto; /* 当内容超过最大高度时显示滚动条 */padding: 10px;box-sizing: border-box;font-size: 16px;line-height: 1.5;resize: none; /* 禁止用户手动调整大小 */border: 1px solid #ccc;border-radius: 4px;
}.display-text {white-space: pre-wrap; /* 保留空格和换行符 */padding: 10px;margin-top: 20px;border: 1px solid #ccc;border-radius: 4px;background-color: #f9f9f9;font-size: 16px;line-height: 1.5;
}
  1. React 组件

    • 使用 useState 来管理输入框的内容。
    • 使用 useRef 来获取 textarea 的 DOM 节点。
    • 使用 useEffect 来监听 text 状态的变化,每次输入内容时动态调整输入框的高度。
    • handleChange 函数用于更新 text 状态。
  2. CSS 部分

    • #dynamic-textarea:设置输入框的最小高度(min-height)和最大高度(max-height)。当内容超过最大高度时,使用 overflow-y: auto 显示垂直滚动条。
    • resize: none:禁止用户手动调整输入框的大小。
    • white-space: pre-wrap:在 .display-text 类中使用 white-space: pre-wrap 来保留空格和换行符,使输入框中的内容和显示的内容样式一致。
  3. 动态调整高度

    • 在 useEffect 中,每次 text 状态变化时,重置输入框的高度为 auto,然后将高度设置为内容的实际高度(scrollHeight)。

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

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

相关文章

uniapp生成微信小程序二维码

文章目录 一、获取不限制的小程序码1、第一步&#xff1a;需要先获取ACCESS_TOKEN2、第二步&#xff1a;获取微信小程序二维码 二、获取小程序码1、第一步&#xff1a;需要先获取ACCESS_TOKEN2、第二步&#xff1a;获取微信小程序二维码 三、扫普通链接二维码打开小程序1、协议…

反向代购是怎么火起来的?今后的发展趋势如何?

反向代购和反向海淘的兴起可以归因于多个因素&#xff0c;这些因素共同推动了海外消费者对中国商品的需求和购买热潮。以下是对其火起来的原因的详细分析&#xff1a; 海外华人华侨的需求增加&#xff1a; 随着中国国际移民群体的扩大&#xff0c;海外华人华侨数量不断增多。这…

关于wx.config报错 invalid url domain 及 invalid signature 错误原因及解决方式

wx.config的初始化配置 wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来&#xff0c;若要查看传入的参数&#xff0c;可以在pc端打开&#xff0c;参数信息会通过log打出&#xff0c;仅在pc端时才会打印。appId: res.data.data.appId, // 必…

第三届仿真模拟、电子信息科学与技术国际学术会议(SMEI 2024,8月02-04)

随着仿真模拟技术的成熟和进步&#xff0c;仿真模拟技术越来越广泛地应用于工业工程、管理科学、社会经济、交通运输、生态环境、军事装备等各个科学领域&#xff0c;并深刻影响着信息技术和信息产业的发展。围绕仿真模拟、电子信息科学与技术等方面内容&#xff0c;为更好地促…

Gartner发布2024年企业高管增长议程:使网络安全投资与业务增长保持一致

网络安全投资和准备被视为推动企业发展的关键因素。除了避免损失之外&#xff0c;高管还应利用有效的以业务为中心的安全方法&#xff0c;通过大规模实现敏捷性和创新来推动收入增长。 主要发现 高增长公司通过扩大商业足迹来推动业绩&#xff0c;这需要大规模的创新、敏捷性和…

CUDA生态系统架构是什么样的?CUDA的技术原理是什么?底层原理是什么?怎么开发相关产品

CUDA生态系统架构是什么样的&#xff1f;CUDA的技术原理是什么&#xff1f;底层原理是什么&#xff1f;怎么开发相关产品 CUDA 生态系统及其技术原理 CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由 NVIDIA 开发的一种并行计算平台和编程模型&#xf…

爬虫 pandas Linux Flume Pig填空题

目录 试卷&#xff1a;Python网络数据处理 答案 试卷&#xff1a;Pandas基础操作 答案 试卷&#xff1a;Linux基础指令 答案 试卷&#xff1a;Apache Flume基础指令 答案 试卷&#xff1a;Apache Pig基础指令 答案&#xff1a; Hadoop题 答案 试卷&#xff1a;Pyth…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

时序分析基本概念介绍——min period 最小时钟周期

文章目录 前言一、什么是 min period&#xff1f;二、为什么检查 min period&#xff1f;三、如何设置 min period&#xff1f;四、如何检查 min period&#xff1f;五、如何修复 min period&#xff1f;总结 前言 我们在实际设计中可能会碰到这种情况&#xff0c;如果我们的m…

openstack Y版在ubuntu22.04上不能创建超过8个cpu的虚拟机问题解决

环境 openstack 版本&#xff1a; Y版25.2.1 操作系统&#xff1a;ubuntu22.04 问题 创建16 vcpu的虚拟机&#xff0c;报错&#xff1a; Failed to build and run instance: libvirt.libvirtError: error from service: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs…

leetcode-16-[530]二叉搜索树的最小绝对差[501]二叉搜索树中的众数[236]二叉树的最近公共祖先

一、[530]二叉搜索树的最小绝对差 重点&#xff1a;双指针 class Solution {int minResInteger.MAX_VALUE;TreeNode prenull;public int getMinimumDifference(TreeNode root) {traversal(root);return minRes;}void traversal(TreeNode cur){//中序遍历if(curnull){return;}…

介绍ES6中的class类:(一) 类的基本语法

一、类的由来与简介 1. 简介 很早很早之前&#xff0c;在JavaScript的世界里&#xff0c;生成实例对象的传统方法是通过构造函数。 嗯哼&#xff1f; function Point(x, y) {this.x x;this.y y; }Point.prototype.toString function () {return ( this.x , this.y )…

计算机图形学入门18:阴影映射

1.前言 前面几篇关于光栅化的文章中介绍了如何计算物体表面的光照&#xff0c;但是着色并不会进行阴影的计算&#xff0c;阴影需要单独进行处理&#xff0c;目前最常用的阴影计算技术之一就是Shadow Mapping技术&#xff0c;也就是俗称的阴影映射技术。 2.阴影映射 Shadow Map…

Kubernetes面试整理-如何配置和应用网络策略来控制Pod之间的通信

在 Kubernetes 中,网络策略(NetworkPolicy)用于控制 Pod 之间的通信以及 Pod 与外部网络之间的通信。通过定义网络策略,您可以指定哪些流量可以进出特定的 Pod,从而增强集群的安全性和隔离性。 配置网络策略 网络策略是基于命名空间的,并使用标签选择器(Label Selector)…

提升用户转化率秘诀!Xinstall的H5拉起应用技术让您领先一步!

在移动互联网时代&#xff0c;App的推广和运营面临着诸多挑战。其中&#xff0c;H5页面如何高效、便捷地拉起应用&#xff0c;成为了一个亟待解决的问题。今天&#xff0c;我们就来谈谈如何利用Xinstall品牌&#xff0c;轻松解决这一痛点&#xff0c;提升用户体验&#xff0c;助…

boss直聘招聘数据爬取及可视化分析2.0

boss直聘招聘数据爬取及可视化分析2.0 一、需求介绍二、完整代码2.1 爬虫代码2.2 数据可视化模块一、需求介绍 笔者在前两篇介绍boss直聘招聘数据爬取和可视化分析的博客的基础上,对代码和功能进行了完善。在数据爬取的模块,代码更加简洁易懂,且性能更加稳定;在数据可视化…

SpringBoot | 使用jwt令牌实现登录认证,使用Md5加密实现注册

对于登录认证中的令牌&#xff0c;其实就是一段字符串&#xff0c;那为什么要那么麻烦去用jwt令牌&#xff1f;其实对于登录这个业务&#xff0c;在平常我们实现这个功能时&#xff0c;可能大部分都是通过比对用户名和密码&#xff0c;只要正确&#xff0c;就登录成功&#xff…

关于 AD21导入电子元器件放置“3D体”STEP模型失去3D纹理贴图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139969415 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

C++高频面试题——内存管理、堆栈、指针

一、内存管理 1.1什么是动态内存分配&#xff1f;在C中&#xff0c;如何进行动态内存分配&#xff1f; 动态内存分配是在程序运行时&#xff0c;根据需要从堆中分配内存空间&#xff0c;以便于灵活地管理数据。 在C中&#xff0c;可以使用以下操作符进行动态内存分配&#x…

https网站安全证书的作用与申请办法

HTTPS网站安全证书&#xff0c;正式名称为超文本传输安全协议证书&#xff0c;是通过SSL/TLS加密协议&#xff0c;保障互联网用户与网站间数据交换的安全性的关键技术。 一&#xff1a;HTTPS网站安全证书的作用 1 消除不安全提示&#xff1a;未使用https协议的网站&#xff0c…