最近、HTML テーブルのデザインの問題に遭遇しました。CSプログラムをBSプログラムに再構築したい。これは UI スクリーン キャプチャです。
ご覧のとおり、列が多すぎます。水平スクロールバーが表示されます。ユーザー エクスペリエンスを向上させるにはどうすればよいですか?
いくつかの列を 1 つに結合しようとしましたが、いくつかの新しい問題が発生しました — 混乱、フィルター処理と並べ替えがうまくいきません。
いい例があれば見せてください。
最近、HTML テーブルのデザインの問題に遭遇しました。CSプログラムをBSプログラムに再構築したい。これは UI スクリーン キャプチャです。
ご覧のとおり、列が多すぎます。水平スクロールバーが表示されます。ユーザー エクスペリエンスを向上させるにはどうすればよいですか?
いくつかの列を 1 つに結合しようとしましたが、いくつかの新しい問題が発生しました — 混乱、フィルター処理と並べ替えがうまくいきません。
いい例があれば見せてください。
長い間考えた後、完全ではありませんが、いくつかの回避策を見つけました。参照用にここに私のソリューションを投稿します。
1、長すぎる列の水平スクロールバーを許可します。 これは、次のようにテーブルをラップする DIV タグを追加することで簡単に実行できます。
<div style="overflow-x: auto;">
<table class="no-wrap">
<!-- stuff -->
<!-- no-wrap is a AdminLTE style which makes the text in the table do not wrap -->
</table>
</div>
2,表示する列をユーザーが制御できるようにします。これは、Bootstrap に基づくモーダル ダイアログを追加することで実現しました。 表示列数を減らすと、狭い画面でも見やすくなります。
これは、いくつかの JavaScript コードを作成し、プロジェクトで一般的にすることで難しくありません。ユーザーの構成をローカルに保存し、次にユーザーがこのページを開いたときに状態を復元するために、ローカル ストレージテクノロジを十分に活用することを忘れないでください。私のソリューションでは、ローカル ストレージ キーは次のようになります。
my-datatable-hide-col:/business/order:tb-order
my-datatable-hide-col
は固定、/business/order
はパス、tb-order
はテーブルの ID です。このローカル ストレージ キーの値は次のようになります。
[0, 3, 4]
これは、列 0、列 3、および列 4 が非表示になることを意味します。値が存在しないか空の場合、列は非表示になりません。
3,ユーザーが列の順序を制御できるようにします。上記の列の表示状態の制御に似ています。
これは、JavaScript コードを記述して一般化することでも実現できます。
より良いユーザー エクスペリエンスに関連して、1 行おきにわずかに異なる色が付けられていると役立ちます (iTunes 11 がデザイン全体を変更する前に iTunes が行っていたように)。これにより、ユーザーは各行を簡単に区別できます。
これが私が意味することの例です: http://alistapart.com/article/zebratables
これを実装する方法は次のとおりです(非常に簡単です): http://css-tricks.com/snippets/css/css3-zebra-striping-a-table/
また、これはクライアントが何を望んでいるかによって異なりますが、明らかに、実際には使用されていない列を削除する必要があります。値が小さい列 (1 桁の数字など) は、できるだけ小さくします。
これのいくつかが役立つことを願っています...