CSS实现输入框宽度随内容自适应效果
有时候我们会遇到如下需求:输入框的宽度随内容长度自适应,当输入框宽度增大到一定值时,里边的内容自动隐藏。
面对这种需求,我们首先想到的是使用input元素标签,但是发现input标签的宽度默认设定的是固定的,不支持min-width和max-width样式,所以如果想实现宽度随内容自适应就必须通过js动态修改input元素的样式(width),这样做就会有点麻烦,毕竟很多人更愿意接受只用css就能解决这个问题的方法。如此,HTML中的 contentEditable属性需要了解一下。
具体代码如下:
// react项目中示例
<div contentEditable="true" class="editable_div" onKeyDown={this.handleKeyDown} />
.editable_div{
white-space: nowrap;
overflow-x: hidden;
display: inline-block;
font-size: 12px;
color: #b63f41;
background-color: #ffffff;
padding: 2px 8px 2px 4px;
max-width: 100%;
}
handleKeyDown = (e) => {
if (e.keyCode === 13) {
e.preventDefault()
const { inputInformationBox } = this.state
inputInformationBox.push(this.inputValueElem.innerText)
this.setState({ inputInformationBox }, () => {
this.scrollWrapElem.scrollTop = this.informationWrapElem.offsetHeight - this.scrollWrapElem.clientHeight
})
this.inputValueElem.innerText = ''
}
}
这样,我们就可以实现这样的需求啦。
CSS实现输入框宽度随内容自适应效果的更多相关文章
- CSS - DIV标签width根据内容自适应
设置样式: 父标签{ width: auto; display: inline-block; } 子标签 { // 内容自动填充父节点宽度: } JSFiddle Demo: http://jsfid ...
- css 使容器宽度适应内容宽
p{ width:intrinsic; width: -moz-max-content; width: -webkit-max-content; float:right; width:auto; /* ...
- 【转】纯 CSS 实现高度与宽度成比例的效果
先来演示页面:Demo; 转的内容: 最近在做一个产品列表页面,布局如右图所示.页面中有若干个 item,其中每个 item 都向左浮动,并包含在自适应浏览器窗口宽度的父元素中. item 元素的 C ...
- select 宽度跟随option内容自适应
传统的select在没有设置固定宽度的情况,会因为自身的 option 选项的里,宽度最宽的option作为select本身的宽度 例如 可见效果为: select的宽度因为"宽度最宽的op ...
- [转]css实现左侧宽度自适应,右侧固定宽度
原文地址:https://segmentfault.com/a/1190000008411418 页面布局中经常用会遇到左侧宽度自适应,右侧固定宽度,或者左侧宽度固定,右侧自适应.总之就是一边固定宽度 ...
- 最简单的css实现页面宽度自适应
<div class="rxs"> <div class="rxleft"> 第一段内容,可以是任何html标签 </div> ...
- CSS如何让DIV的宽度随内容的变化
[css]CSS如何让DIV的宽度随内容的变化 让div根据内容改变大小 div{ width:auto; display:inline-block !important; display:inlin ...
- css布局-内容自适应屏幕
css页面布局,实现内容部分自适应屏幕,当内容高度小于浏览器窗口高度时,页脚在浏览器窗口底部:当内容高度高于浏览器窗口高度时,页脚自动被撑到页面底部. <style type="tex ...
- [刘阳Java]_纯CSS代码实现内容过滤效果
继续我们技术专题课,我们今天给大家带来的是一个比较酷炫的"纯CSS代码实现内容过滤效果",没有加入任何JS的效果.全部都是应用CSS3的新增选择器来实现的.先看效果截图 实现思路 ...
随机推荐
- ECMAScript基础
概念: 1):区分大小写 2):变量是弱类型的. 3):每行结尾的分号可有可无 4):注释与Java,C和PHP语言的注释相同 5):括号表明代码块 原始值:是存储在栈中的简单数据段,也就是说他们的值 ...
- MySQL常用运算符:算术运算符、比较运算符、逻辑运算符
(一) 算术运算符 注意: 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL. div运算符主要是求两个数相除的商 (二) 比较运算符:比较运算符的运算结果为1(条件为真),0 ...
- spark-sql将Rdd转换为DataFrame进行操作的两种方法
SparkConf sparkConf = new SparkConf() .setMaster("local").setAppName("ClzMap"); ...
- 解决秒杀活动高并发出现负库存(Redis)
商城在秒杀活动开始时,同时有好多人来请求这个接口,即便做了判断库存逻辑,也难免防止库存出现超卖,造成损失 Django中的ORM本身就对数据库做了防范,但再过亿级访问也扛不住 下面利用Redis的过载 ...
- docker+gitlab的安装和迁移
docker+gitlab的安装 docker search gitlab docker pull docker.io/gitlab/gitlab-ce docker run --name=: -- ...
- Redis入门到高可用(十八)—— 主从复制
一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离) 简单总结: 三.主从复制配置 四.主从复制配置-实验演示 ...
- Go 初体验 - 令人惊叹的语法 - defer.4 - defer 对宿主函数返回值的影响
defer 函数可以影响宿主函数的返回值 看代码: 调用: 输出: 结果又让人意外了. coo1:因为传引用,return 时 i = 100, return 返回的也是 100,return 执行之 ...
- easy ui datatimebox databox 当前时间
databox 当前日期: class="easyui-datebox" var curr_time = new Date(); var strDate = curr_time. ...
- introduce myself
大家好啊,我是来自计算机一班的喻达龙,是2018届的萌新一个,很高兴与大家相约在这里.我想,大家都是怀抱相同的梦想带着一样的抱负走进涉外.我们从稚嫩蜕化为成熟,我相信我们在这里会从菜鸟变为大佬的,当然 ...
- .net core webapi+vue 跨域访问
最近在做一个前后端分离的示例,以下代码完美解决跨域的问题 一.后端服务 1.首先我们建一个.net core webapi的项目 2.项目引用Microsoft.AspNetCore.Cors 包 3 ...