zoukankan      html  css  js  c++  java
  • div模拟textarea文本域轻松实现高度自适应

    使用很简单,一个普通的block元素上加个contenteditable="true"就ok了,如下:

    <div contenteditable="true"></div> 

    true外面的引号甚至去掉都没关系。

    contenteditable属性虽是HTML5里面的内容,但是IE似乎老早就支持此标签属性了。所以,兼容性方面还是不用太担心的。

    ok,最麻烦的模拟textarea的可编辑效果已经解决了,现在想要使用<div>实现高度自适应那就像是给花花草草松松土一样容易的。使用min-height属性基本上就一步到位了,考虑到IE6浏览器对min/max家族不屑一顾,结合其内部元素溢出会撑开父标签高宽的特性,IE6浏览器直接定高就可以了。于是,假设我们要实现默认200像素高度,高度可随内容自适应的效果,直接下面两个样式就可以了:

    { min-height: 200px; _height: 200px; }

    于是,把说到现在的内容结合一起,就可以使用div模拟textarea文本域轻松实现高度自适应了。

    当然,也是可以设置垂直方向和水平方向的滚动条

    {
        overflow-x: hidden;    //水平方向禁止滚动
        overflow-y: auto;      //垂直方向可以滚动
    }

    如下测试代码——
    CSS代码:

    .test_box {
        width: 400px; 
        min-height: 120px; 
        max-height: 300px;
        _height: 120px; 
        margin-left: auto; 
        margin-right: auto; 
        padding: 3px; 
        outline: 0; 
        border: 1px solid #a0b3d6; 
        font-size: 12px; 
        word-wrap: break-word;
        overflow-x: hidden;
        overflow-y: auto;
        _overflow-y: visible;
    }

    HTML代码:

    <div class="test_box" contenteditable="true"></div> 
    结果如下图(全部截自IE6浏览器):

    IE6下div模拟的textarea默认 张鑫旭-鑫空间-鑫生活

    一个简单demo

    当然了,网上的大神们,为了实现这种效果也是操碎了心,还有很多黑科技写法,按需使用即可。附上张鑫旭大神的这篇文章: div模拟textarea文本域轻松实现高度自适应

  • 相关阅读:
    《浪潮》影评
    《白日梦想家》影评笔记
    mac清理磁盘方法
    java性能监控器VisualVM
    python部署工具fabric
    linux缓存nscd
    ajax取返回值的方法
    python中__name__ = '__main__' 的作用
    使用nsswitch控制linux dns解析顺序
    SQLAlchemy中filter()和filter_by()的区别
  • 原文地址:https://www.cnblogs.com/cap-rq/p/9999825.html
Copyright © 2011-2022 走看看