skillup

技術ブログ

デザイン

tableでのヘッダー固定に関して+borderを描く時のコツ

投稿日:2019年9月29日 更新日:

tableでのヘッダー固定について

超小ネタですが、tableのヘッダー固定に関して。

ソースは下記リンクに。

https://github.com/umanari145/css

注意したいポイントとして、

  • tableをいうことを頭から消して、あくまでblockとflexで組む。
  • 固定のヘッドは position:sticky
  • 内包要素は動的に変わることが多いので、幅を%指定しておく。親も指定。
  • th、tdをテーブルではなく display:block にする。高さを内包要素依存にするためにこれが必要。(内包要素のセンタリングなどを考えるとflexもいいかも・・・)
  • 横並びにするためにstickyを使うタイプはtrに display:flex を入れる。
  • boarderを二重にしないことが大切。(全消ししてから,tr→th→tdといれて行くとわかりやすいかも)
  • ヘッドと明細の幅を統一。
  • paddingやborderの幅で少しずれることがあるため、 box-sizing:border-box をセット。

のようなところ。

サンプルソース(scss)

borderを描く時のコツ

上記と合わせてtableでborderを描く時のコツなんぞを。borderなかったり、二重線やドットが混じるケースですね。

  • sassを使った方がはるかに楽
  • まずは全てのbordrerを消す
  • 入れるのは基本 tr,th(td) のみ
  • 同一方向でのみborderを定義(例:trなら上のみ、tdなら左のみなど)
  • last-child,first-child でイレギュラーパターンを押させる tr の下端や td 右端

サンプル

https://github.com/umanari145/css/blob/master/table_border.html

すげー基礎的なことかもしれませんが、以前こういう思考がなくて結構迷いましたね・・・

-デザイン
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

CSSネタに関して

何回か書いてきたCSSのまとめネタ的なもの。 紙で印刷しておくと生産性が3倍ぐらいになる。思った以上にコーディングがしやすい。 良く使うユーティリティ系の操作をまとめる。ベンダープレフィックス以外にも …

no image

flexショートハンドに関して

実務でflexをちょこちょこ使うようになりました。 やはりfloatなどで組むことと比べると圧倒的に楽ですね・・・ んで、あまり理解してなかったショートハンド要はgrow,basis,shinkに関し …

no image

チェック状態のradio,checkでの要素の表示、非表示

CSS小ネタ系。 チェックボックスやラジオと隣接するテキストボックスがあって、チェックがあった時のみ表示したい。(例えばその他の自由入力欄) 完全に隣接の場合にはCSSの+が使えるんですが、そうもいか …

no image

AngularJS カスタムディレクティブ

AngularはHTMLの中にng-clickなどと書いておけばイベントを紐づけて、特定動作時にメソッドを呼び出すことができます。 これをオリジナルで自作することができます。 customer_dir …

no image

CSSのレイアウト例 その4 グリッドレイアウト

本日はグリッドレイアウトについて。 このサイトだけ見ても多分、デザインのイメージはわかないと思います(汗) サイトが具体的にどうなっているかを知りたい方は「プロとして恥ずかしくない 新・CSSデザイン …

アーカイブ