当サイトの成長の覚書

2023年思うところあって旧スタイルから新スタイルに変更し始めた。当然HTMLの知識、CSSの知識、そしてJavaScriptの知識と鍛錬が必要だ。
ここには日々(とはいってもときどき)どういうことに困り、どういうふうに考えながら、当サイトを成長させているかを記録と備忘として残すものである。


最初は・・・

HTMLを完全手書きしていた。(ホームページ作成ソフトを使ってHTMLを自動生成させるのではなくて、テキストエディタでHTMLをタイプするということ。 決して紙にペンで書きだすということではない。)
そして、スタイルのほとんどはHTMLタグの属性値として指定しており、CSSでは全体の背景画像を指定している程度、といったことだけであった。 後述するが、これは本来の(理想とする)HTMLとCSSに分担させた記述ではない。

そこで自身のCSSの知識を現代風に増強させ、本来の両者の分担(構造と装飾(デザイン、表現、体裁)の分離と言われる)での記述にしてみようと思い立った。
また、せっかくなので、レスポンシブ対応(表示させているデバイス・画面の大きさの違いによって表示スタイルを変え、デバイスごとに最適と思われる表示に切り替わること)にもチャレンジしようと思った。 さらに、動的ページ(ページ内の操作によってページ内容が変化すること)のいくつかのテクニックを習得しようとも考えた。

とっかかりとして、無料で使えるテンプレート(ある程度のデザインとレスポンシブ対応済のCSSやJavaScriptが組み上げられているもの)を採用し、その中身を読み取り理解しながら、一部を自身のコンテンツに書き換えていくことから始めようと思った。
カッコよいページを手軽に作ることを目的としてるわけではないので、ホームページ作成ソフトは使わずにあくまでテキストエディタによる手書きは継続である。

方針

方針を明記しておくことは大切である。
とまどったときに、そもそも何をしようとしているかを見失わず、複数の選択肢がある場合に一貫した選択判断の拠りどころとするためである。

HTML/CSS/JavaScript全般

HTML個別

CSS個別

ブラウザでの表示テスト

悩みごと・やっていきたいこと

現在保留としている悩みごと一覧である。発生したら追加して、解決したら消していく。
歳のせいか、あれやろう、これやろうと思い立っても一度にはできないし、まして、思い立ったことを忘れてしまったりするので。

こんなことをしてきた

まずは無料のテンプレートを利用。自分の画像や自分の言葉に差し替えただけ。不要な部分は表示されなくしただけ。
このときは、まだテンプレートの記載(CSS)をすべて理解しているわけではなかった。わからない記載をネットで検索しながら理解を深める。
トップページの上部の写真は、福井の東尋坊、石川の金沢駅鼓門、富山の海王丸・新湊大橋からの立山連峰に差し替えてはいるものの、 その仕組み(アニメーション)の理解はいまひとつの状態

メニュー選択した後のサブページを徐々にCSSでのスタイル指定に変更。徐々にCSSの知識と理解深まる。

スマホサイズの場合の全体的なフォントサイズの調整(スマホサイズのときに別のフォントサイズでの表示とする)を当ててみた。

リンク集にあるMDNのサイトにて、一部自身のおさらいもかねて、当サイトのHTML, CSS, JavaScriptの説明を一通り読んでみた。当サイトのコンテンツはとてもすばらしいと思う。

外部リンクに「外部サイトへ出ていくよ」マークを付加してみた。(マークの画像を自身で作成し、CSSの設定に「<a>タグのhref属性に"http"を含んでいる場合には外部サイトへのリンクである」との理屈で、マークを表示するようにしてみた)→下記でさらに更新している。

「NEW」とか「工事中」の付加の仕組みを、個別の文字列の装飾としてではなくて、CSSによる特定のクラスへの疑似要素として実装してみた。
(<span>にclass指定した上で文字列(NEWなど)を書いて、そのclassで装飾をするとしていたものを、もとのタグにclass指定して、そのclassの::afterで文字列追加と装飾をするように変えてみた。これはこれで実装としてはかっこ良いが、アクセシビリティの観点では良くないのかも)

つぶやきのバックナンバーのページに、俗にいう「アコーディオン」スタイルを当ててみた。(HTMLの<details>タグのみでの実装であり、CSS/JavaScriptは使っていない)

ひととおり、サブページも含めてHTMLの整理とCSSでのスタイル指定を完了。しかし、まだ細かいところで不満は残っている。
ミニミニ英会話のページでは、「アコーディオン」をHTMLとCSSの組み合わせで実装してみた。

ファビコン(ブラウザのタブなどにページごとにデザインされたアイコン)を追加してみた。

自身のページに共通する(であろう)クラスの定義と、それらクラスの設定値をまとめたCSSファイルを作成した。そして、それに含まれないページごとのCSSファイルを分離して整理した。
同時に、各ページにおける、HTMLファイルの標準構成を考察し、それぞれのHTMLファイルを自身の標準構成に従うように整形した。

ページトップに戻るボタン操作後のブラウザの「戻る」や自身で用意した「戻る」ボタンの操作にて、期待に反してページトップに戻るボタンを操作した位置に「戻る」動作となったいた点を解消。
それは、ページトップに戻るボタンの操作時点で、操作した表示状態がhistoryに記録されることによっていた。よって、「スクロールしてページトップには移動する」ものの、「ページトップへリンクを進める」という動きにはしないようにした。(詳細はページのソースを見ると違いが解る。)

ページ内部ではなく、ページ外部の設定の話になる。Yahooドメインの設定にてtamamori.comをXFreeにあるホームページサーバttamamori.html.xdomain.jpへのリダイレクトするようにしていたのを、以下の設定に変更することによって、tamamori.comが直接XFreeにあるサーバに向くように変更した。(図解を交えた説明

ページトップに戻るボタンの実装を変更した。<a>タグとonclick属性でのjavascriptにて実装していたものを、単なる<div>タグとそれをクリックした場合のイベントリスナーを別ファイルに記述したjavascriptに記載するとともに、window(ブラウザ)のスクロールイベントをキャッチするイベントリスナーによってボタンそのものを「初期表示なし。ある程度スクロールしたら登場させる」ようにした。

外部サイトに出ていくよマーク、Google Material Symbols and Iconsのサイトから"Open in new"のアイコンを入手し、適用しなおした。

同一ページ内での移動(ページヘッダやメニューなどで用意したページ内の記述箇所へのジャンプ)を、id指定のアンカー要素(<a>)ではなく、<button>とそのonclickで動作するJavaScript関数scrollIntoView()にて実装してみた。これによってページ内の移動ではブラウザの履歴への追加を抑制している。

ふと、iOSのEdge(Microsoft Edge)で、<a href="https://example.com" target="_blank">example</a> としているにも係わらず、別ウインドウ(別タブ)で開かずに、元のウインドウ(タブ)にてリンク先のページに書き変わる事象が観測された。ネットでいろいろ調べて、rel="noopener"の属性指定をしていなかったことが影響していたのかと一旦思ったのであるが、結論はブラウザのバグだったようだ。Edgeを最新バージョンにアップデートしたら解消した。(観測されたバージョン:114, 116、解消されたバージョン:119)
その調査の中で、rel="nofollow"を知り、自身のサイトのページではない外部のサイトへのリンクに対しては、nofollowを追記することとした。(これらの詳細はWEB実装Tipsに書き残す)

ブラウザキャッシュ(ページのhtmlファイルなどをブラウザがローカルPC内に保存し、次回の表示の際には、サーバへ取りにいかずにローカルPC内に保存しておいたファイルを表示に使う高速化技術)について少し調べてみた。
このブラウザの振る舞いは以前から知るところではあった。しかし、自身がページ内容を更新し、サーバにアップロードした後にブラウザで見ようとしたとき、更新前の状態が表示されているということが起きることを解決したかった。自身がそうであるから、ましてやページを見に来てくれるユーザに対しても最新ではない状態で見えているということはとても好ましくない。
このことはWeb開発に係わる技術者だけではなく、広く一般に知られていることではあるものの、だからと言って「ページの更新操作してみてください」といったアナウンスだけで済ますというのもカッコ悪いかなと思った次第だ。万全ではないしページの表示性能への悪影響もある程度覚悟した解決方法ではあるが、対処してみた。(Web実装Tipsに書き残した。

・・・(徐々に続けていく)

気づき

気づきは、Tipsと合わせて、WEB実装Tipsにまとめて書くことにした。

その他

当初はホームページの置き場として、としあきが契約していたISP(Internet Service Provider)が提供してくれるホームページ容量とメアドなどを使用していた。 あるときにそのISPは解約してケーブルTV会社のネットサービスに切り替えたときに、ホームページサービスやメールサーバサービスなどが無かったために、 いろいろ模索した結果として現在の運用(ドメインの取得、ホームページ置き場としてのレンタルサーバ(無料)の契約、別途のメールサービス(無料)の契約、そして、それらへの転送の仕組みの設定)を選択している。

Yahooのドメインサービスにかかる費用は約3000円/年である。これを高いと感じるか安いと感じるかは、人それぞれだと思う。
でも、ドメイン名は使われていない文字列の早いもの勝ちで取得できるものであり、一旦離してしまうと二度と取得できない(他者にとられちゃう)かも知れないと考えたとき、 維持し続けることを選択している。
特に、gTLD(generic top level domain)と呼ばれるドメインであること、そのなかでもメジャーな .com のドメイン名であることから、 せっかく取得できているものを手離し難いという思いが強い。(この先、息子にオーナーを引き継いででも我が家で代々維持し続けたいくらいに思ってる。)

ホームページ転送以外にも、メール転送の機能も提供されていて、こちらの方はもっと有用・有効だ。
xxxtamamori.comなどの仮想のメアドをいくつも作成して、そのメアド宛のメールを裏にあるホントのメールサーバに転送してくれる機能だ。
ネットの時代だからいろんなところにメアド登録してたりするよね。 裏のホントのメールサーバを将来変更することになったりしてホントのメアド変わったときでも、いろんなところに登録したメアドは変えることなく、 メール転送設定を変えるだけで済む。
また、家族用にそれぞれ yyytamamori.com とか zzztamamori.com とかも作成して、それぞれのホントのメアドに転送させたり、 複数のメアドを一つのホントのメアドに集約して転送させることもできる。

🔝