LoginSignup
1
0

CSSのtable-cellとwidthの競合と、DB設計とER図

Posted at

今日もCSSの競合で困った

今日も今日とて(昨日か)フロントエンドの修正をしておりました

laravel-adminのgridを使って、
データベースから取得したデータを表示しておりました

tableheaderとtabledataがありまして、
今日の議題はth(tableheader)の方でございます。

ヘッダーを横移動させつつ、縦スクロール時には固定して、tdの幅にthを合わせて、スクロール時にズレない様にしたい!

ということを実装しておりました。むりじゃろ。

overflowを使えばいいのですが、
tableが2つのレイヤーに分かれており、
下レイヤーのthを固定と横スクロールさせるのに苦戦したのは前の記事をみてくださいまし。

本日は、headerの幅をtdに合わせることに意外と苦戦してしまった話。

tdの横幅の値は、取得できた。
headerの初期位置も取得できた。
(取得するのに2時間ほどかかったが。)

さて、thに横幅を適応させたら終わりじゃおらぁ!
と思っていましたが、

position:table-cellと、
widthが競合するとのことでした。

検証ツールでは、width:(取得した値)pxと表示されているのに、
ブラウザ上では、変わっていない、、、

困っておりましたところ、その2つが競合しているということがわかりました。

対応方法はゴリラ式で。

なんとか対応はできましたので、共有をば。
table-cellと競合しているのならoverrideすればいいじゃない。

ということで、

lowerHeaderCells[index].style.setProperty('display', 'inline-block', 'important');

positionをoverride!!
これで上書き、ブロック要素にしてしまえばCSSが適応されました。
(今回は横一列にしたかったので、inline-blockで)

まとめ

いやー、こんな単純なことだったとは、、1時間で終わる予定が5時間くらいかかりましたよ。。
なかなかどうして、急がば回れということですな。
色々お勉強になりましたわ。

もうちょっとだけ続くのじゃ。

#DB設計とER図
今日はDB設計とやらをER図作ってみましたよ。

なんのデータが必要か、、、
正規化とは、、、

この辺が今日の学び。

第1正規化とやらをやりましたよ。
参考 https://tech.012grp.co.jp/entry/db_normalization

私なりの正規化の理解は、
一つのカラムに複数の値が入る場合は、
別にテーブルを用意した方が、管理しやすいよ。
ということだと思っていますがどうでしょう。

user table
id 1
follower 2,3,4,5
follows 3,5 

こうなると、データが管理しにくいぽい

user table
id 1
follows 1
follows table
id 1
follows 1:2

id 2
follows 1:3

id 3
follows 3:1

こんな感じでテーブル作って管理するのがいいらしい。
少し腑に落ちてはないが、
これから恩恵を受けることを信じて、バッチリ正規化していってみるでござる。

第2正規化、第3正規化は、また元気な時に。

まとめ

データベースの設計は楽しかったのだ、設計楽しい。まとめるの好き。

最近は刺身こんにゃくにハマっている。安くて日持ちしてうまい。
ダイエットにも最適かも。シュッと絞っていきますか。
でも運動はしたくない。

おわり。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0