[HTML,CSS,jQuery] 中々直らないイージーミス達
2012年3月30日
魂に刻み込まれたイージーミス達
1プロジェクトに1回はやって、今後もまたやるであろうイージーミスを書いてみる
少しでも直ればいいと願って。
少しでも直ればいいと願って。
(1) id="#foo"とclass=".bar"
HTMLのidやclass属性に "#" や "." を含めて書いてしまい
CSSやjQueryの結果が反映されなくなるミス
CSSやjQueryの結果が反映されなくなるミス
誤ったHTML例:
<!-- id="foo" と書くべき -->
<div id="#foo"></div>
この状態で、CSSで #foo {} と書いたり
jQuery で $('#foo') と書いたりして、ハマること過去多数
(2) セレクタ定義の末尾にセミコロン
誤ったCSS例:
.foo {
font-size: 12px;
};
.bar {
font-size: 15px;
}
末尾に ; (セミコロン) を付けて定義してしまい、次のスタイルが反映されなくなるミス
見つけにくいのは、上記の場合 .foo は有効で .bar だけが反映されなくなる点
また、もし後に新たなセレクタを書いたなら、それは有効になる
試しに .foo と .bar の順番を入れ替えてみて
「あれ?今度は.barが有効になった、なんだ優先順位の問題か」と
勘違いコンポへ派生する可能性もある
(3) line-height に px などの単位を忘れて倍率指定する
誤ったHTML例:
<!-- 本当は "10px" にしたかった -->
<div style="line-height:10;">
<div>1行目</div>
<div>2行目</div>
</div>
んで↓のようになってしまう
1行目
2行目
もし、各行の親ブロックが height指定をしている時は
overflow してしまい表示が消えているように見えることがある
display:none; とか visibility:hidden; とかを疑い始めると長くなるコース
これの厄介な点は2点有って
ひとつは、間違った指定ではないこと
そしてもうひとつは、jQueryを使った場合のこのパターン
$('<div />').css({
fontSize: 12,
lineHeight: 12 // '12px' と書く必要がある
});