HTML textarea と input type="text" を (ほぼ) 等しい幅 (ピクセル単位) でレンダリングして、さまざまなブラウザーで機能する簡単な方法はありますか?
CSS/HTML ソリューションはすばらしいでしょう。Javascriptを使用する必要はありません。
ありがとう/エリック
あなたは使用できるはずです
.mywidth {
width: 100px;
}
<input class="mywidth">
<br>
<textarea class="mywidth"></textarea>
最初の質問に答えるには (とはいえ、答えは死んでいます): CSS の幅が必要です。
しかし、私は回答でガイウスの質問に答えたかった. Gaius、あなたの問題は、幅を全角で設定していることです。これは良い考えですが、em はフォント サイズに基づいていることを覚えておく必要があります。デフォルトでは、入力エリアとテキストエリアは異なるフォントフェイスとサイズを持っています。したがって、幅を 35em に設定すると、入力領域はフォントの幅を使用し、テキスト領域はフォントの幅を使用します。テキスト領域のデフォルト フォントが小さいため、テキスト ボックスも小さくなります。幅をピクセルまたはポイント単位で設定するか、入力ボックスとテキストエリアのフォントとサイズが同じであることを確認します。
.mywidth {
width: 35em;
font-family: Verdana;
font-size: 1em;
}
<input type="text" class="mywidth"/><br/>
<textarea class="mywidth"></textarea>
それが役立つことを願っています。
他の誰かがこれに言及し、その後削除しました。クラスを使用せずにすべてのテキストエリアとテキスト入力を同じ方法でスタイル設定する場合は、次の CSS を使用します (IE6 では機能しません)。
input[type=text], textarea { width: 80%; }
CSS3 を使用して、テキストボックスと入力が同じように機能するようにします。jsFiddleを参照してください。
.textarea, .textbox {
width: 200px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
これは 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 仕様のボックスの寸法セクションで次のように説明されています。
ボックスの幅は、左右のマージン、ボーダー、パディング、およびコンテンツの幅の合計によって決まります。
はいあります。次のようにしてみてください。
<textarea style="width:80%"> </textarea>
<input type="text" style="width:80%" />
どちらも同じサイズにする必要があります。絶対サイズ (px)、相対サイズ (em)、またはパーセンテージ サイズで行うことができます。
UnequalHtmlテキストボックスとXHTML1.0strictのドロップダウン幅で述べたように、それはDoctypeにも依存します。XHTML 1.0 strictを使用すると、幅の違いが実際に表示されることに気づきました。
input[type="text"] { width: 60%; }
input[type="email"] { width: 60%; }
textarea { width: 60%; }
textarea { height: 40%; }
ただ注意してください - 幅は常にクライアント側で起こっていることの影響を受けます - PHP はそのようなことには影響しません。
要素に共通のクラスを設定し、CSS で幅を設定するのが最も確実な方法です。
幅に CSS クラスを使用し、要素を HTML DIV に配置します。DIV は前述のクラスを持ちます。
このようにして、レイアウト制御全体が改善されるはずです。
最近、ブートストラップを使用する場合は、入力フィールドにform-control
クラスを与えるだけです。何かのようなもの:
<label for="display-name">Display name</label>
<input type="text" class="form-control" name="displayname" placeholder="">
<label for="about-me">About me</label>
<textarea class="form-control" rows="5" id="about-me" name="aboutMe"></textarea>
次の CSS も使用できます。
.mywidth{
width:100px;
}
textarea{
width:100px;
}
HTML:
<input class="mywidth" >
<textarea></textarea>