« Select Option の代替品(8) | メイン | Select Option の代替品(10) »

2021年11月19日 (金)

Select Option の代替品(9)

MySelect の幅、%単位での指定は、うまくいかないので諦めました。親要素の幅が分かればいいんですけど、サーバー側からはクライアント上のブラウザの内にある情報なんか見えない。要素の幅をサーバーへ送信するページとかを作れば出来るはずですが、とっても面倒。結局%指定はあきらめて、「ウインドウ幅の1/20」を基準とした幅の単位を定義して%単位の代わりにしました。

ここで必用なのはウインドウ幅なんですが、これもクライアント上のブラウザ内の情報なので簡単には取得できません。そこで、直前のページの幅を基準として使う事にしました。これならば各ページが window.innerWidth の値を送信~受信して幅を算出すれば良い。なんとかなりました。(送受信するパラメータが、また1つ増えてしまった)

おまけ的な機能、背景色の指定を作っていたのですが、Html, CSS, JavaScript に遊ばれてしまいました。背景色の指定には bgColoe=...,、 style backgroundColor:...、element.style.backgroundColoe、element.style.background=... などがあり、同じ意味、目的なのに相手によって使い分けなくてはいけない。うっかり element.style.background-color などと書くとエラーになる。「-」が演算子と解釈されるみたい。

style="background-color:'red' はNGで、style="background-color:red と書かなくてはならない。一方、element.style.background=red と書くとエラー(そんな変数はない)で、element.style.background='red' と書かなくてはならない。

Html、CSS、JavaScript は統一的に設計~仕様を決定ではなくて、デファクトスタンダードを寄せ集めたように思えるので、仕方ないか。それにして何とかならんのか。と言って、今から仕様を追加しても古い仕様を捨てるわけにもいかない。せいぜい「古い仕様なので推奨しない」と警告するくらいしか出来そうにありませんね。

我慢して使うしかなさそうです。

コメント

コメントを投稿