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文本域轻松实现高度自适应

  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/cap-rq/p/9999825.html
Copyright © 2011-2022 走看看