惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
U
Unit 42
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
D
Docker
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
I
InfoQ
The Cloudflare Blog
小众软件
小众软件
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
V
V2EX
月光博客
月光博客
Martin Fowler
Martin Fowler

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
给IE/Edge写了个textarea resize拉伸的polyfill « 张鑫旭-鑫...
张鑫旭,zhangxinxu · 2019-08-07 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=8839
本文欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可以联系授权。

一、IE/Edge不支持CSS resize

IE/Edge直到叛变到Chrome内核之前,都没有支持CSS resize拉伸,兼容性如下图:

CSS resize兼容性

又不是移动端,不支持还可以理解,但是你IE/Edge就只有PC端才有人用好吧,居然不支持,我只能呵呵了,so interesting!

看看Chrome多棒:

Chrome resize拉伸效果

看看Firefox多靓:

Firefox浏览器的resize拉伸


没办法,谁叫我看不惯好东西不能共享呢,为了让IE/Edge浏览器也能享受CSS resize全身拉伸的quick感,于是写了个polyfill,效果还不错哟。

二、效果如何?请先看视频

下面的视频录制自IE9浏览器,如果视频没有自动播放,请点击播放。

可以看到效果棒棒哒:

  • 不仅支持内联文本域(display值为inlineinline-block),也支持块级状态(display值是block)。
  • 不仅右下角拉伸的元素自动跟随文本域的display状态变化,且动态插入的<textarea>元素也自带resize效果,完全不需要额外的初始化。

如果你手头有IE浏览器也可以亲自感受下,您可以狠狠地点击这里:IE/Edge CSS resize polyfill demo

三、使用说明文档

关于UI

使用了Firefox浏览器的点点点拉伸图形。

如何使用?

  1. 引入JS,例如:
    <script src="./resize-polyfill.js"></script>

    就可以,直接引入,没有什么调用,也没有什么初始化。

    resize-polyfill.js下载可以狠狠地点击这里(或右键另存为)

  2. 使用resize属性指定拉伸类型,值为both, horizontal和vertical,语义和CSS resize属性一致。例如:
    两个方向拉伸:
    <textarea resize="both"></textarea>
    
    水平方向拉伸:
    <textarea resize="horizontal"></textarea>
    
    垂直方向拉伸:
    <textarea resize="vertical"></textarea>

    为了让Chrome和Firefox浏览器保持一致,我们还需要如下所示的CSS:

    textarea {
        vertical-align: top;
        box-sizing: border-box;
        resize: none;
        overflow: auto;
    }
    textarea[resize] {
        resize: both;    
    }
    textarea[resize="vertical"] {
        resize: vertical;    
    }
    textarea[resize="horizontal"] {
        resize: both;
    }

就这样结束了,一点CSS,然后引入JS文件,一切都结束了,是不是使用非常方便,没有任何API需要学习,这才是真正上佳的polyfill。

其他说明

  1. IE9及其以上浏览器支持。
  2. 目前只支持<textarea>元素,普通元素的resize拉伸没有支持,实际开发很少使用,没必要支持。如果你非要支持,可以修改resize-polyfill.js,把其中的'textarea[resize]'选择器换一换就可以了。
  3. 实际开发场景千千万,我写的这个resize-polyfill.js肯定不能覆盖所有的场景,大家就中规中矩使用就好,建议<textarea>元素保持block块级,比较不容易出现细节问题。

四、咦,这么快就结语了

今天晚上去打篮球了,公司篮球协会的活动,每周一场球。之前2年没断过,去年因为忙碌,就没去,到现在差不多大半年有了。为什么今天又去了呢,前段时间发烧了,工作到现在,快10年没发烧,结果大半年不运动,就被小小的细菌乘虚而入了,这是免疫力低下的表现。还在这次是小小的细菌,万一什么糟糕的细胞没抑制住,那就麻烦了。

所以,为了健康,再忙也要运动,所以,这周开始,重拾每周一次的篮球运动。

你还别说,运动完了,身心舒畅,虽然到家快11点了,这工作状态很不错,注意力很集中,2个小时就把这篇文章给撸出来了,给自己点个赞。看来运动并不会占用使用,反而节约了时间。

大家也一起来运动吧!

本文为原创文章,欢迎分享,勿全文转载,如果内容你实在喜欢,可以加入收藏夹,永不过期,而且还会及时更新知识点以及修正错误,阅读体验也更好。
本文地址:https://www.zhangxinxu.com/wordpress/?p=8839

(本篇完)