我尝试将position:absolute
然后left
,top
,right
和bottom
设置为固定值(以像素为单位),但除非我也设置{{1 }}和width
我无法让它在Firefox 11上正常运行。
渲染在safari / chrome上看起来没问题......但是这是一个Firefox bug还是其他不符合标准的东西?对height
和width
使用100%有时是一种解决方案,但在元素未完全覆盖父容器时则不行。
请参阅http://jsfiddle.net/EjS7v/6/
这是Chrome(以及所需的结果)
Firefox(宽度/高度为100%)
Firefox(没有宽度/高度)
是否有其他方法可以在运行时使用Javascript计算宽度和高度?
请注意,在此示例中,我使用固定大小的div作为容器,但最有趣和最有用的情况是容器是弹性的。
答案 0 :(得分:6)
实际上有一个简单的替代方案,使用表示性标记来包含该textarea,然后使用textarea本身的100%宽度高度。
确实,CSS非常有限。
答案 1 :(得分:4)
这是因为textarea
与div
不同,有一个default width and height:
如果元素具有
cols
属性,并且使用解析非负整数的规则解析该属性的值不会产生错误,那么用户代理应该使用该属性作为表示提示对于元素的width属性,其值为textarea有效宽度(如下定义)。否则,用户代理应该表现得好像它有一个用户代理级样式表规则,将元素的width属性设置为textarea有效宽度。
textarea
元素的 textarea有效宽度为 size × avg + sbw ,其中 size 是元素的字符宽度, avg 是元素主要字体的平均字符宽度,以CSS像素为单位, sbw 是滚动条的宽度,以CSS像素为单位。 (元素的字母间距属性不会影响结果。)如果元素具有
rows
属性,并且使用解析非负整数的规则解析该属性的值不会产生错误,那么用户代理应该使用该属性作为表示提示对于元素的height属性,值为textarea有效高度(如下定义)。否则,用户代理应该表现得好像它有一个用户代理级样式表规则,将元素的height属性设置为textarea有效高度。
textarea
元素的 textarea有效高度是CSS元素中指定元素字符高度的行数的高度,加上CSS像素中滚动条的高度。 / p>