有没有一种简单的方法可以使html textarea和输入类型的文本相等地变宽?

时间:2020-03-05 18:43:27  来源:igfitidea点击:

是否有一种简单的方法来获取HTML文本区域和输入type =" text"来呈现(大约)相等的宽度(以像素为单位),并且可以在不同的浏览器中使用?

CSS / HTML解决方案将是出色的。我希望不必使用Javascript。

谢谢
/埃里克

解决方案

回答

我们应该可以使用

.mywidth {
  width: 100px;   
}
<input class="mywidth">
<textarea class="mywidth"></textarea>

回答

就在这里。尝试做这样的事情:

<textarea style="width:80%"> </textarea>
<input type="text" style="width:80%" />

两者应等于相同的大小。我们可以使用绝对尺寸(px),相对尺寸(em)或者百分比尺寸来实现。

回答

只需注意一点,宽度总是受客户端发生的事情影响的,PHP不会影响这些事情。

在元素上设置通用类并在CSS中设置宽度是我们最干净的选择。

回答

有人提到了此内容,然后将其删除。如果要对所有文本区域和文本输入进行样式设置而没有类,请使用以下CSS(在IE6中不起作用):

input[type=text], textarea { width: 80%; }

回答

使用CSS类来确定宽度,然后将元素放入HTML DIV中,DIV具有上述类。

这样,布局控制总体上应该更好。

回答

这是一个CSS问题:宽度包括边框和填充宽度,在不同的浏览器中,它们的INPUT和TEXTAREA默认值不同,因此也要使它们相同:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>width</title>
<style type="text/css">
textarea, input { padding:2px; border:2px inset #ccc; width:20em; }
</style>
</head>
<body>
<p><input/><br/><textarea></textarea></p>
</body>
</html>

CSS规范的"框尺寸"部分对此进行了说明,其中说:

The box width is given by the sum of the left and right margins, border, and padding, and the content width.

回答

回答第一个问题(尽管已经被回答死了):CSS宽度是我们所需要的。

但是我想在答案中回答盖乌斯的问题。 Gaius,问题是我们要在em中设置宽度。这是一个很好的想法,但是我们需要记住em是基于字体大小的。默认情况下,输入区域和文本区域具有不同的字体和大小。因此,当我们将宽度设置为35em时,输入区域使用其字体的宽度,而textarea使用其字体的宽度。文本区域的默认字体较小,因此文本框较小。设置宽度(以像素或者点为单位),或者确保输入框和文本区域具有相同的字体和大小:

.mywidth {
  width: 35em;
  font-family: Verdana;
  font-size: 1em;
}
<input type="text" class="mywidth"/><br/>
<textarea class="mywidth"></textarea>

希望能有所帮助。

回答

如不相等的HTML文本框和XHTML 1.0严格的下拉宽度中所述,它也取决于文档类型。
我注意到,当使用XHTML 1.0 strict时,确实出现了宽度上的差异。