ウェブページ制作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 ステートメントを使用する基本的なチュートリアル

推薦する

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux https://github.com/reactjs/...

MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...

MySQL サービスとデータベース管理

目次1. サービスの開始と停止の手順1.1 Windows での MySQL 5.7 の公式 MSI...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...

CentOS 7 での mysql 5.7 のインストール チュートリアル

1. 公式MySQL Yumリポジトリをダウンロードしてインストールする 実行ファイル: mysql...

Google Chromeの自動入力問題に対する完璧な解決策

Google Chrome では、ログインに成功すると、パスワードを記憶するかどうかを尋ねるメッセー...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

MySQL がデュアルマスターで構成されている場合にデータループの競合を回避する方法

あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...

docker で Apollo をデプロイする詳細なチュートリアル

1. はじめにここでは apollo について詳しく説明しません。公式サイト https://git...

Vue が Bibibili のホームページを模倣する際の問題

エンジニアリング構造プロジェクトは2つの部分に分かれています。bilibili-apiはAPIインタ...

Docker デプロイメント Consul 構成プロセスの分析

コマンドを実行docker run -d --name consul -p 8500:8500 co...

Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

Centos7 システムでの MySQL マスター スレーブ同期構成スキーム

序文最近、高可用性プロジェクトに取り組む際には、データの同期が必要になっています。ノードが 2 つし...