昨日のぼやきのところでおのひろきさんによる解決策を紹介したけど、この方法では リングをクリックした時に表示されるメニューアイコンまでもが40pxになってしまいメニュー表示をしたときに美しくない。 子供セレクタに対応していないIEでは正しく表示されない。
…と、どうにかならないか試行錯誤していたら、kosakaさんが解決方法を発見していた。下のような内容を
div#hatena-ring-XXXXX img{ width: 40px; }
スタイルシートに追加すればいいみたい。XXXXXにはリングロゴをクリックしたときに表示されるメニューのrandomやprev,nextで使われているURLのパラメータsidの数字5-6桁を入力する。例えば、この日記のtDiaryリングの場合だと
http://tdiary.ring.hatena.ne.jp/go?type=random&sid=21461
という感じのURLなのでXXXXXには21461を書く。ちなみにリングごとにこのsidの数値は違う場合もあるので、複数のリングに参加している場合はリングごとに調べてスタイルシートに追加する必要がある。(kosakaさんの所では同じようだけど、法則性はよくわからない。確認して適当に設定してください。)
というか、なんでたかが画像を小さくするためだけにユーザーがこんなことを探さないといかんのだ。最初からロゴの大きさを選択できるようにしておけよと。
XXXXXは5桁とは限らないみたい。今日参加したリングだと6桁だった。あと、上記の方法だとIEだと問題ありませんがfirefoxで見たときにリングのナビゲーションの背景がとほほな結果になるのを確認。これについてはおのひろきさんによる擬似子供セレクタを使う方法でも同様の結果になった。
なんでたかが画像を小さくするためだけに(ry
日替わりテーマプラグインというのはどうか?を読んで、既にどこかになかったっけ?と思い探してみた。
tDiary :: trickster.rb 機能紹介〜日替わりテーマ編が一番それらしいものだったけど、このままではCSSを番号として変更しなくてはいけない。とりあえず、現在のTheme全ての名前をリストとして用意しておいて、後は乱数をテーマ数サイズにスケーリングすりゃあ実現できそう。
ん、この方法だと表示毎にテーマが切り替わるからダメだな。365日をテーマの数でスケーリングして、その日に対応したテーマ番号を表示するというやり方が正しい動作か。
作った。
ただ、日付の部分の処理が怪しい。今日が1月1日から何日目というのをスマートに出す方法を検討中。
index = (Date::today - Date::new) % theme_list.size
今はこんな感じでお茶を濁しているんだけど、うまい方法があったら教えてください。
たださんから何日目かを知る場合にはTime::ydayを使うとよいとアドバイスを受けたので
index = Time.now.yday % theme_list.size
という感じで作ってコミットした。プラグイン名はdaily_theme.rbとしました。そのうちanonymousにも出回ると思います。
使い方はインストール後に設定画面から日替わりで表示させたいテーマの名前を入力します。7個入力すると一週間単位でぐるぐる変化します。当然、このアルゴリズムだとテーマ数が366を超えた時点で使われないテーマが発生する。その辺は自分で表示させたいテーマを選択するということで。
おのひろきさんからのツッコミで始めて子供セレクタというものを知った。
.bar > foo > buzz {}
と
foo.bar buzz {}
はまったくの別物なんだね。今朝、kosakaさんのエントリを読んだ時に同じものと勘違いしていた。先のエントリは完全に自分の勘違いであって、おのひろきさんの方法は間違ってない。申し訳ありません。
早速、IEでも子供セレクタっぽい表示を使う方法をおのひろきさんが紹介しているのでそちらをどうぞ。
ASPで作るアンケートシステムの作成実習の続き。このシステムによるアンケートは実際に教官から調査項目を聞いたうえで系内の学生や教官に対しておこなう。結果は研究なり、会議でそれなりに使う予定なのである程度の品質を確保しなければならない。
そんなわけで、今日はひたすらグループ内でテストを行ったりなんだり。最終チェックをオレがしてから、学内サーバーに設置するように実験指導教官に依頼。
リングをクリックした時に表示されるメニューアイコンまでもが40pxになってしまう件はIEが対応していない子供セレクタを子孫セレクタに書き換えたから表示がおかしくなるのでしょう.「<」を削除しませんでしたか?対応していないIEでは80pxのまま表示されるはずでした.
なるほど、子孫セレクタと子供セレクタの違いをわかっていませんでした。情報ありがとうございます。
> 今日が1月1日から何日目<br>today.jd ではダメなんでしょうか?
メソッドだけで書けるTime::ydayの方を使うことにしました。アドバイスありがとうございます。