IE7下textarea自适应高度问题

lgzxz999 2008-11-09 01:19:05
运行在IE7下面的时候:
这样的代码会有问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<textarea id="textarea" style="width:100%;overflow-y:visible" readonly="readonly">
I have to agree with Niall Doherty
basically means "traverse every css element and give it these
attributes". That is a very unnecessary strain on the server and
a bad semantic practice, as you have to give some elements
padding/margin again, after stripping them.
basically means "traverse every css element and give it these
attributes". That is a very unnecessary strain on the server and
a bad semantic practice, as you have to give some elements
padding/margin again, after stripping them.
basically means "traverse every css element and give it these
attributes". That is a very unnecessary strain on the server and
a bad semantic practice, as you have to give some elements
padding/margin again, after stripping them.
</textarea>
</body>
</html>

如果把其中的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
改成
<html>

就可以达到IE7自适应高度的效果,是过渡的DTD有什么限制吗?
现在我只要textarea高度自适应,并让IE6与IE7兼容,有什么更好的办法吗?前提要加上<!DOCTYPE...>
...全文
1465 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
beierniu 2011-05-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cngothic 的回复:]

你用到了。readonly="readonly" 无法修改。
那你还不如把内容写进div尼。用div来做更容易。
也许你要问。如何获取textarea的值。
如asp:
request.form("textarea")
这样是无法获取的。
1:你可以添加一个隐藏域存储request.form("textarea")的值。显示的时候用div来显示
2:不采用隐藏域。你可以用js来实现……
[/Quote]
div.innerhtml 不同的浏览器处理的结果不一样
beierniu 2011-05-01
  • 打赏
  • 举报
回复
<div id="msg"></div>
<input id='txt' value="" />
<script>
//当状态改变的时候执行的函数
function handle()
{document.getElementById('msg').innerHTML='输入的文字长度为:'+document.getElementById('txt').value.length;
}
//firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。
if(/msie/i.test(navigator.userAgent)) //ie浏览器
{document.getElementById('txt').onpropertychange=handle
}
else
{//非ie浏览器,比如Firefox
document.getElementById('txt').addEventListener("input",handle,false);
}
</script>
兼容所有浏览器
chenxi___007 2011-03-24
  • 打赏
  • 举报
回复
我也遇到同样的问题,很费解,同求真相。
DEEpswAMp 2009-06-19
  • 打赏
  • 举报
回复
用<pre>不就解决了么!!!
caritasem 2008-11-24
  • 打赏
  • 举报
回复
呵呵,回答问题的很牛气啊
cngothic 2008-11-10
  • 打赏
  • 举报
回复
对于HTML和JS,写基本的可以,对于各浏览器兼容的写法还是菜的很.

没有完美的东西.只有更美.你也无法让浏览器他们都完全统一.写写针对主流的浏览器(IE6,IE7,FF)XHTML,JS完全可以.
css中有hack写法.JS中肯定也有很多支持各各浏览器的写法.对于一般的函数等基本上所有的浏览器都支持.
如像IE支持 函数A(), FF则不支持.那就换种思路去做来达到你想要的效果.本身FF就不支持函数A().没办法自己写个函数来达到想要的效果吧.
lgzxz999 2008-11-10
  • 打赏
  • 举报
回复
1.用textarea只是用来显示从数据库读出来的信息,不用再得到了
2.我不是说textarea存在兼容问题,而是说textarea自适应高度,在IE6IE7FF中有兼容问题
3.可能你保存数据库之前做了些转换,所以说用DIV显示可以得到相应的格式,
我没有进行什么转换,所以觉得用DIV显示会出问题,这是我个人"觉得",而用textarea显示就不用管什么转换问题了
4.
用JS方法,我也在JS版发了帖,理论上讲问题已经解决了.你的方法也挺好
5.
我只是想知道
在IE7下写
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
和IE7下写
<html>
为什么会出现效果的区别哪?想听大家说说看法,是不是过渡的DTD的问题
6.对于HTML和JS,写基本的可以,对于各浏览器兼容的写法还是菜的很,呵呵,cngothic再帮忙看一看,解决方法有了,我想听听你对出现这种区别的看法,是什么
原因造成的哪
lgzxz999 2008-11-10
  • 打赏
  • 举报
回复
JS我肯定会用,一点也没有排斥的意思..只是就这个问题而言我想知道什么原因造成的而已....辛苦辛苦,呵呵,我去结帖了
cngothic 2008-11-09
  • 打赏
  • 举报
回复
怎么想的。textarea 你加上 readonly="readonly", textarea本身就无法再修改我不是说你删除后就能解决了你的问题。
是无法改textarea内的内容。你不想改内容你干吗用textarea来做?头晕啊
你是不想做图片而已。
对于textarea还存在ie6,ie7的说兼容问题(你遇到过多少兼容性的问题尼?别见风就是雨。别听人家说中文在ie6与ie7也丰在兼容性的问题)。你是高人。头回听说。


给你说个思路。textarea 换行符是什么?在JS中textarea 的换行符又是什么?
document.getElementById("textarea").innerHTML 中有多少个换行符。
用split来转化为数组。然后取数组上限+1
textarea 中 显示的文字行高为多少应该是12px.你也可以记设置。
(数组上限+1) * 行高 + 额外的 textarea 高度(这个取个适当就OK了)= textarea 的高度
然后document.getElementById("textarea").style.height="textarea 的高度"

lgzxz999 2008-11-09
  • 打赏
  • 举报
回复
1.在代码里面把readonly="readonly"去掉后,在IE7下还是没效果
2.我不用DIV来显示,是觉得如果是用textarea来发表的东西,用DIV显示会出现格式等问题,而用textarea加readonly会正常显示
3.如果用DIV来显示的话,我也想知道用textarea怎么做到IE6,IE7兼容,呵呵,麻烦大家看一下
cngothic 2008-11-09
  • 打赏
  • 举报
回复
你用到了。readonly="readonly" 无法修改。
那你还不如把内容写进div尼。用div来做更容易。
也许你要问。如何获取textarea的值。
如asp:
request.form("textarea")
这样是无法获取的。
1:你可以添加一个隐藏域存储request.form("textarea")的值。显示的时候用div来显示
2:不采用隐藏域。你可以用js来实现document.getElementById("texttarea").innerHTML

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧