- ベストアンサー
widthやheightの数値に単位(px)はつけない方が良いの?
自分はHTMLやCSSにおいて<img>や<td>に width="100px" とか、 div に { width: 70px } とか、ピクセルの単位を付けて作っています。 どこかの本が単位をつけると教えている……はずだったからです。 今日、HTMLチェックというサービスを行ったら 『不正な設定。数値か%指定にしてください』という様なことをいわれました。 ちなみに用いているDocument宣言は4.01 Transitionalです。幅・高さに 単位はまったく必要ないのでしょうか? 逆に単位を省略してはいけないタグはありますか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
仕様書を確認してみましょう 属性索引からimg要素のwidth属性を調べてみると >width = length [CN] 画像・オブジェクトの幅を上書きする。 という記述が見つかります lengthからリンクを飛ぶと少し上に行った所にピクセルの説明があり ># ピクセル: (DTDでは%Pixels; と表記)の値は、スクリーンや紙などキャンバスに表示する際のピクセル数を表す整数である。 の後に重要な記述があります >従って、「50」という値は50ピクセルを意味する。 ピクセルに関する規範的情報は、 [CSS1]を参照のこと。 で、 ># 長さ: (DTDでは%Length; と表記)の値は、%Pixel;または水平・垂直方向で利用可能な空間に対するパーセンテージである。従って、「50%」という値は、可能な空間の半分を意味する。 つまり widthは「50」などの数字で指定するか「50%」ちいうパーセントで指定することが出来ます
その他の回答 (3)
- poohron
- ベストアンサー率59% (574/971)
#1です。 #3さん、 > 後ろのセミコロンはあくまで複数の宣言をまとめる時には区切りとして必要ですが、 > 区切り以外、単一の場合や最後の宣言に付ける必要はありません。 ああ、そうか。 中途半端な知識をひけらかしてしまい申し訳なかったです。 そう言われてみると、CSSを覚えたての頃に 「とにかく最後にセミコロン付けときゃ問題ないんじゃん」と 最後の宣言にも片っ端からセミコロンを付けることに 自分だけのルールとして決めた記憶がよみがえってきました(汗) と、いうわけで私の回答のうち、CSSに関する部分は撤回させていただきます。 ご指摘有難うございました。
お礼
いえいえ。こんなお馬鹿な質問に答えてくださり、まさに恐縮です。 自分も「セミコロンは常に付けておけばいいんだね」と思い至ったほうです。 たとえ記述では忘れていなくても、質問文で付けていなかったらダメですよね。
- steel_gray
- ベストアンサー率66% (1052/1578)
htmlの属性値については#1さんのおっしゃるとおりで文章型宣言に関わらず数値(=pixel)と%以外は規定されていないので単位なしか%かを適切に使いわけてください。 他で単位が必須の属性とかは・・・その都度HTMLの検証サービスで調べた方が確実です。 あらかじめ知っておきたいのであれば仕様書を確認してください。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/cover.html ただ、長さや大きさなどの単位が必要になりそうなものは基本的にCSSへの移行が推奨されていますので今後はあまり考えなくてもよいかと思います。 CSSについては後ろのセミコロンはあくまで複数の宣言をまとめる時には区切りとして必要ですが、 区切り以外、単一の場合や最後の宣言に付ける必要はありません。 http://www.y-adagio.com/public/standards/tr_css2/syndata.html#declaration ※追加する時とかに考えなくていいので常に付けておくというのは問題ないです。
お礼
W3なんとか…のデータの多さにおののいて、基本中の基本すら 目を通すことをしていませんでした。私は阿呆です。 セミコロンの補足、助かりました。一つだけでも常に付けるクセをつけておけば うっかりミスが防げますよね。お助けありがとうございました。
- poohron
- ベストアンサー率59% (574/971)
width="100px"も{ width: 70px }も誤りです。 HTMLならpxなどの単位は付けません。 width="100" で "100px幅" という意味になります。 単位をつけるとすれば、 width="●●%" ですね。 CSSであれば、{width : 70px}ではなく {width : 70px;}と記述しましょう。(pxの後の ; にご注意ください)
お礼
自分はつけると信じて1年以上やっていました。 お恥ずかしい限りです。セミコロンは質問文では忘れてしまいましたが、 いつも、中身がひとつだけでも付けています。 お助けありがとうございました。
お礼
はい…すみません。 数字のみでピクセルなのに、今の思い込みだと「50ピクセルピクセル」と 記述していたんですね。穴をほって入りたい気分です。 お助けありがとうございました。