ウェブページ制作TDは隠し表示もオーバーフロー可能

ウェブページ制作TDは隠し表示もオーバーフロー可能
おそらく、この記事にこのようなタイトルを付けると、誰かがこう尋ねるでしょう。「なぜまだテーブルに注目しているのですか? テーブルはすでに時代遅れです... 急いで Xhtml を使用してください... div は良いです... ul は良いです... ol は良いです... dl は良いです... 以上です。他に何が良いのかわかりません。」

テーブルは本当に時代遅れなのでしょうか?あなたは本当にテーブルを理解していますか?あなたは本当にテーブルの使い方を知っていますか?

私たちは言葉の戦いをするためにここにいるわけではない。それは時間に余裕のある人たちに任せよう。

話を元に戻しましょう:

いつだったか覚えていませんが、テーブルを使用して DataGrid をシミュレートするときに、固定幅を超える td 内のテキストが非表示にできず、直接折り返されるのはなぜかと誰かが私に尋ねました。

はい、それは本当です。以下がそれを示しています。

ヒント: 実行前にコードの一部を変更することができます

上記のコードを実行すると、固定幅を超えるセル内のテキストは非表示にならず、新しい行に表示されます。明らかに、これは私の意図ではありません。

これはテーブルの特性のようです。{width:*px;white-space:nowrap;overflow:hidden;} の組み合わせをうまくサポートできません。結局のところ、white-space:nowrap は機能しないので、overflow:hidden は無効のようです。 {注: これは、意味のない文字の連続である場合に機能します。たとえば、<td class="col1">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td> の場合、この連続した a は 1 つの単語と見なされ、折り返されないため、{white-space:nowrap} を使用して 1 行に強制的に表示する必要はありません。したがって、.col1 の幅を超える a は非表示になります。}

[解決策1:]

後で、パーセンテージ幅を使用すると問題ないという人がいました。テストしたところ、本当にうまくいきました。最初の段落のいくつかの行のスタイルを少し変更し、他の行は変更しません。

.col1 {幅:20%;}
.col2 {幅:40%;}
.col3 {幅:40%;}

変更したコードを実行すると、幅を超えるテキストが実際に非表示になり、目的の効果が達成されていることがわかります。

実際、パーセンテージ幅を使用するとテキストが隠れる問題は確かに解決できますが、パーセンテージ幅ではなく固定幅が必要になる場合もあるため、これは最善の解決策ではないようです。

これらすべての根本は、セル内のテキストを折り返さずに 1 行で表示する方法にあります。

[解決策2:]

この要件を満たすには、スタイルの使用に加えて、長い間使用されていないタグ <nobr> も考えられます。この要素の機能は、コンテンツを 1 行で表示するように強制することです。上記のコードは次のように変更され、残りは変更されません。

<table border="1" cellspacing="0" summary="表を振り返る: TD も overflow:hidden を使用しています">
<tr>
<td class="col1"><nobr>神州エレガント Q400N</nobr></td>
<td class="col2"><nobr>Intel Core2 Duo (Merom) T5450 (1.66G) プロセッサを搭載したエレガントな Q400N</nobr></td>
<td class="col3"><nobr>Centrino 4 プラットフォーム、優れたコストパフォーマンス、美しい外観</nobr></td>
</tr>
</テーブル>

この変更を行った後、確かに効果が達成されていることがわかります。ワクワクしませんか?いいえ、これは最善の解決策ではないようです。結局のところ、長い間使用されておらず、推奨されていない要素タグを使用しているため、人々は少し不快感を覚えます。

この考え方に従って、私は問題を別の角度から検討し、その問題は簡単に解決できることを発見しました。

固定幅のセルの th と td に単純に white-space:nowrap を追加することはできないので、固定幅のセルにマーカー要素を追加するのはどうでしょうか。

ベストプラクティス:

ヒント: 実行前にコードの一部を変更することができます

上記のコードを実行すると、このアプローチが実行可能であり、コードのシンプルさ、読みやすさ、合理性の点で以前のソリューションよりも優れていることがわかります。

{固定幅を超えるセルの内容を非表示にすることをまだ試したことがない方は、まず自分のマシンで試してみてから、この記事をお読みください。}

実際、テーブルは面白くて、非常に遊びやすいものです。私たちはそれを色眼鏡で見るべきではありません。なぜなら、それは存在する理由があるからです。

私自身の楽しみのためにも、テーブルについての記事を書き続けるつもりです。

<<:  全体的なユーザーエクスペリエンスを確保する方法

>>:  MySQL で explain ステートメントを使用する基本的なチュートリアル

推薦する

MYSQLクエリデータの結果に自動的に番号を付ける方法

序文実際、クエリ中に結果に番号が付けられるこのような状況に遭遇したことは一度もありません。同僚が転職...

JavaScriptの基本的なインタラクションの詳細な説明

目次1. 要素の入手方法文書から入手ID取得クラス名 (className) を取得します。タグ名 ...

MySQL で左結合を使用して where 条件を追加する問題の詳細な分析

現在の需要:グループとファクターの 2 つのテーブルがあります。1 つのグループは複数のファクターに...

Ubuntu 16.04 で MySQL マスター スレーブ同期を設定する方法

準備1. マスターとスレーブのデータベースのバージョンは一致している必要があります2. マスターデー...

Dockerがsudo操作を使用する必要がある問題を解決する

手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...

TypeScriptのインストールと使用方法と基本的なデータ型

最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...

Centos7 で mysqldump を使用して MySQL データベースの毎日の自動バックアップを作成する

1. 要件:データベースのバックアップは、実稼働環境にとって特に重要です。データベースのバックアップ...

Docker-compose におけるdepends_on 順序問題を解決する方法についての簡単な説明

コンテナをソートするためにdepends_onを使用しても、コンテナ間の依存関係の問題は完全には解決...

MySQL でのテーブルの作成と削除の詳細な例

テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...

Linux で SSH サーバー エイリアスを作成する 2 つの方法

序文SSH 経由でさまざまなリモート システムに頻繁にアクセスする場合は、このトリックを使用すると時...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

Vue3+スクリプト設定+ts+Vite+Volarプロジェクト

目次Viteを使用してvue + tsプロジェクトを作成するVue 3の3つの構文オプションAPIコ...

CSS はこのように使用できますか?気まぐれなグラデーションの芸術

前回の記事「1行のCSSコードの魅力」では、たった1行のCSSコードで生成できる美しい(奇妙な感じと...

今日、今週、今月、先月のMySQLクエリデータ

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...