マークアップのあれこれ#2

htmlとcssの初歩

<!DOCTYPE html>

これを書いて宣言しないとエラーが出る。

line 2 column 1 - Warning: missing <!DOCTYPE> declaration

見た感じなんらかの型をhtmlであると宣言してそうな?

HTML文書の先頭に記述する<!DOCTYPE ...という宣言は、その文書がどんな定義(DTD)に基づいて記述されるかを示すものです。HTMLの場合、DTDは文書とは別のところで定義されているので、外部にあるどんなDTDを使うかを宣言します。
文書型宣言の意味 -- ごく簡単なHTMLの説明

HTMLをはじめとするSGML (Standard Generalized Markup Language)の応用言語は、マークアップ記号によって文書の構成要素を示していきます。そのためには、どんなタイプの要素をどのような規則でマークアップするかを明確にしておかなければなりません。このような、マークアップの構成要素、その順序(親子関係)、指定できる属性などについて定めた規則がDTD (Document Type Definition) です。

DTDは文書中に記述することも、外部ファイルに記述したものを指定して利用することもできます。HTMLの場合はW3Cなどで定義したものを外部DTDとして利用します。HTML(SGML)文書は、DOCTYPE宣言によって自らが基づくDTDを指定します。
ごくごく簡単なDTDの説明

その文書ファイルがhtml文書の定義に基づいて書かれているという宣言で、重要なものになるよう。
文書型定義は文書内に書くことができたり、また外部のものを利用することもでき、htmlの場合は外部DTDである定義を利用するためにDOCTYPEで宣言する。

ややこしいのは、htmlはDTDに基づくがhtml5は基づかないということ。
html5SGMLにもXMLにも属さないという特殊性から来るもので、しかしブラウザからしたら宣言してくれた方がありがたいので宣言自体はやはり必要になるようです。
html5DTDに基づかないのは、元々DTDに書かれていた情報をhtml5の仕様書に書いているから、らしい)

html5を利用していくつもりなのでこの記事項目名の書き方で行きたいと思います。

(そういえばhttpではファイル拡張子はそこまで重視しなかったんでしたっけね)
(ブラウザでは拡張子をヒントにどのソフトウェアに関連付けるかの設定が可能ではあるが)
(そしてそれはDOCTYPEではなくmetaタグの方での指定)

cssで各タグの挙動を制御できるという点

サイト内で、例えばフォントだとか文字サイズだとかは、ユーザに違和感を抱かせぬようにある程度統一しなければなりません。
つまり、各ページで共通の内容を定義する必要があります。

あちこちの.htmlでその都度指定していると定義が偏在し、
何かしらの変更の要求があるときにやり残しが出てしまう恐れがあったり、
またページ数が多いと変更自体に極めて無駄な作業時間が発生します。
つまり、そういった定義はできる限り少なくした方がミスもなくなり効率が向上します。

以上の2つの目標を同時に達成するのが、「cssとして.htmlファイルの外に定義ファイルを生成しておき、複数の.htmlからその.cssファイルを参照する」というものです。
(ここら辺の考え方はプログラミングと似てる)

<p align="right></p> みたいな小さな定義であっても、
cssでp class="right"みたいなのを作っておいた方がいいんだろうな

ブロックレベル要素, インライン要素

ブロックレベル要素で囲ってその中に子のブロックレベル要素やインライン要素を記述する、といっただけの話らしい。

// 大雑把なイメージ
block-level {
	inline{};
	block-level { inline{}; }
	block-level {
		block-level { 
			inline { inline{}; }
		}
	}
	inline { inline{}; };
}

ブロックレベル要素にはdivとかh1とかp等、インライン要素にはspanとかbr等が分類され、これらが代表的な(よく見る)タグになる気がします。
divの内容にはブロックレベル要素とインライン要素のどちらも入れていいが、pの内容にはインライン要素しか入れられない等の決まりがあるので、一概に上記のイメージが当てはまるとは考えない方がいいらしい。
(aなんかはフォームを除いてブロックレベル要素とインライン要素どちらも含めることができるとか)

blockとinlineの理解はdisplayプロパティでも役立つのでしっかり学んでおく

無料レン鯖の話

今まで忍者ホームページを使ってたけど21-25時あたりにサーバにかなり負担がかかるらしく、毎日仕事から帰ったらそりゃその時間にPCに触ってるわけで、そしてその時間はST3のSFTPがencoding errorを吐き続けて更新できなくなってしまうのです。
本当に文字コードの問題かと思ってずっと試行錯誤してましたが、無事にFTPS通信ができる場合もあることが原因の特定を困難にさせ、結局こんなのが原因でした。

さすがにSFTPが使えないのはストレスだなぁと思い、webcrowに引越しました。
そのうち本サイトごと引っ越すかもしれませんが、リダイレクトしたいのに忍者って.htaccess使えないんだよなぁ