ホームページ >ウェブフロントエンド >htmlチュートリアル >HTMLのテキストエリアの列数、行数属性と幅、高さの関係に関する研究_html/css_WEB-ITnose

HTMLのテキストエリアの列数、行数属性と幅、高さの関係に関する研究_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:27:251338ブラウズ

1. textarea 要素のcols 属性と rows 属性について

一般に「テキストエリア」または「複数行テキストボックス」として知られる 4750256ae76b6b9d804861d8f69e79d3 要素には、表現する独自のネイティブ HTML 属性行があります。

<textarea></textarea><textarea cols="30" rows="5"></textarea>

以下のサイズは、cols および rows 属性値がない場合よりも明らかに大きいことがわかります。

次の質問は、列と行がテキストフィールドのサイズに影響を与える可能性があることを多くの友人が知っていると思いますが、列と行のさまざまな値と最終的な表示のピクセルサイズの間には何か関係があるのでしょうか? ?計算式を使って計算できるのでしょうか?最終的なパフォーマンスは他の CSS プロパティの影響を受けますか?

上記の問題について知っている人は私も含めてほとんどいないと思いますが、この記事を書く前は漠然と理解していました。

今からくだらない話をしますが、この記事を書いたとき、私は実は心の中で孤独でした。この感覚は、目の前に川があるのはわかっているけど、釣りに適しているかどうかわからない、という感覚に似ています。結果は自分で確認する必要があります。しかし、川岸への道は誰も歩いたことがなく、つまり道はなく、目の前にあるのは人の背丈ほどもある不毛の草原であり、とても高く遠くにあります。終わりが見えない草原には、いつ毒ヘビやイノシシが現れるかわかりません。それでも、自分の情熱に従って、私は果敢に未知の道を探索しに行きました。草や木が生い茂り、手で押しのけたり、踏みしめたりするしかありませんでした。茎と蔓、刃のような葉が手と顔に跡を残し、半分進んで草原全体の真ん中に到達すると、周りには誰もおらず、絡み合った草の葉が穏やかな風に吹かれているだけです。 . ささやくような音、自然と湧き上がる孤独感、どんなに強い心でも迷ってしまう、このまま進んでいいのか…

そうだ、進めばいいのか! ?最近、私の心に大きな影響を与え、繰り返し言及される言葉があります。それは、「これを行う目的は何ですか?」です。いいですか?私はただ自分の興味を追求しているだけです!これが私の最初の反応でした。

しかし、ふと見上げると周りには誰もおらず、棘だらけであることに気づくと、例えばこの記事は、功利主義と目的について語らなければならない場合、次のようになります。本当に何もないのですか?気にする人はいますか?時間を費やす価値はありますか?なぜ誰も気にも留めないものを構築するのでしょうか?あなたのプロジェクトに役立つトレンドのものに焦点を当ててみてはいかがでしょうか?他の人が空を飛んでいる中、なぜあなたは一人で茨の中を歩かなければならないのでしょうか? (下のビデオ:通行人が路上の黒板に人生最大の後悔を書きました)

さて、みんなで行こう、まだ渡ったことのない草原を越え、呼ぶ川に向かって進み続けた待っていたら見つけた、憧れの未開の漁場。

2. Cols 属性の値と幅

ここをクリックしてください: textarea テキストエリアの Cols 属性と幅の関係のデモ

インターフェースは次のとおりです:

テキストのサイズと幅を変更するにはドロップダウンを選択できます。テキストエリアのフォントや文字間隔など、テキストフィールドの幅に影響するかどうかを確認します。結果と結論は次のとおりです。

font-sizeフォントファミリー文字間隔

ご覧のとおり、Chrome ブラウザは文字サイズのみに影響を受け、フォントと文字間隔には影響を受けません。一方、FireFox ブラウザはそれぞれの影響を受けません。IE ブラウザは文字間隔には影響されません。 。

次に、最も懸念される質問ですが、cols の値と最終的に表示される幅の間には関係や公式はありますか?

simsun フォント、つまり Songdynasty では、次の関係を簡単に確認できます:

  • Chrome: 8px *cols + 17px
  • IE: 8px *cols + 17px
  • Firefox: 8px *cols + 29px

CSS と HTML は外国人によって発明されたものなので、cols の各単位の相対的な幅は、Song フォントでは 8px と考えられ、次に 17px が実際には簡単です。スクロール バーの幅を理解し、表します。ウィンドウ システムでは、デフォルトで、すべてのブラウザのスクロール バーが占める幅は 17 ピクセルです。したがって、Chrome および IE ブラウザの場合、テキスト フィールドの最終的な幅 (パディングと境界線のサイズは現時点では考慮されません) は、1 文字の幅 * 列の値 + スクロール バーの幅になります。ただし、FireFox ブラウザでは、増加した幅は 29 ピクセルになるため、29 ピクセルが何であるかがわかりにくくなります。

IE ブラウザでは、4750256ae76b6b9d804861d8f69e79d3 の overflow 属性値が非表示になっている場合、追加の 17px は発生しませんが、他のブラウザではこの現象は発生しません。

次に、他のフォントを使用すると、最終的な幅のパフォーマンスはより微妙になります。したがって、1 つの列に対応する単位は整数ではなく、8.1px または 7.7px ~ 7.8px になる場合があります。

要約すると:

Chrome ブラウザではある程度の実用的な価値があるようです。他のブラウザでは幅の変動があまりにも明白であり、環境内で他の変更があれば幅も異なるためです。これは実際には非常に大きな問題です。 Web ページのレイアウトで重要です。 Web ページは上から下に流れるため、高さは非常に長くなる可能性がありますが、幅は通常固定されており、リソースが限られているため、レイアウトは正確である必要があるため、ブラウザーごとに幅が異なると、その幅は大きくなります。必然的に実用価値に大きく影響します。したがって、実際の Web 制作では、幅の要件が高くない状況を除き、テキスト フィールドの幅を制御するために CSS の width 属性が使用されます。

3. 行の属性値と高さ

ここをクリックしてください: textarea テキストエリアの行属性と高さの関係のデモ

インターフェースは次のとおりです:

テキストのサイズと高さを変更するには、ドロップダウンを選択できます。テキストエリアのフォントや行の高さなど、テキストフィールドの高さに影響するかどうかを確認します。結果と結論は次のとおりです。

Chrome IE FireFox
Chrome IE FireFox
font-size
フォントファミリー
行の高さ

ご覧のとおり、Chrome ブラウザと FireFox ブラウザは行の高さのみに影響を受け、フォントと文字のサイズには影響を受けません。一方、IE ブラウザはまったく逆で、行の高さには目をつぶっていますが、そのことは認識していません。文字サイズとフォントが影響を受けます。

ここで最も懸念される質問が来ますが、行の値と最終的にレンダリングされる高さとの間には関係や公式はあるのでしょうか (パディングとボーダーの影響はさておき)。

Chrome ブラウザでは、最終的な高さは rows の値と line-height の行の高さの積になります。上のデモのスクリーンショットに示されているように、行の値が 2 で行の高さが 20 ピクセルの場合、最終的な高さはその積である 40 ピクセルになります。

FireFox ブラウザでも同様ですが、高さにスクロール バーのサイズを含める必要があるという違いが 1 つあります。そのため、以下のシーンでは、高さが Chrome ブラウザの高さより 17 ピクセル高くなります。 :

IE ブラウザでは、異なるフォントが切り替えられるため、高さは行の高さとは関係なく、テキストを含むコンテンツ領域の高さによって決まります (インライン ボックス モデルの概念)。たとえば、Microsoft Yahei フォントを使用すると、明らかに高さが高くなります。Microsoft Yahei のコンテンツ領域の高さは、通常のフォントよりも高くなります。したがって、テキストフィールドの高さと文字の関係を決定するために、高さ = 行数 * 係数という計算係数を決定することは困難です。たとえば、16px の Microsoft Yahei フォントの係数は約 21 (下図を参照)、宋代の simsun の係数は 18.2 ~ 18.5 などです。

要約すると:

互換性は依然として混乱しており、まったく同じように動作する 2 つのブラウザはありません。ただし、最終的なパフォーマンス設計は Cols よりも少し優れています。さらに重要な問題は、高さの要件が一般にそれほど厳密ではないことです。そのため、テキスト フィールドの高さを確認するために CSS を再作成したくない場合があります。これを行うには rows 属性値を使用することもできます。

4. 最後に

最終的な調査の結果、互換性は非常に低く、各ブラウザで同じパフォーマンスを実現するには非常にコストがかかることがわかりました。したがって、テキストフィールドのレイアウト要件が厳しい場合は、CSS の幅 / 高さ属性を使用して正確に制御することをお勧めします。

唯一の収穫は、ブラウザごとに互換性がどのように異なるのか、最終的なレンダリングサイズの計算方法や関連する要素などがわかったことです。将来、特定の機能を実装する際に別のアイデアが得られるかもしれません。 !

以上です!

この記事は、スクリプトの動作を含むオリジナルの記事です。したがって、再印刷する場合は、追跡可能性を高めるために、元のソースを保持してください。古くて間違った知識による誤解を避けると同時に、より良い読書体験を得ることができます。

この記事のアドレス: http://www.zhangxinxu.com/wordpress/?p=5240

(この記事はここまで)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。