Top > 2006年07月
2006年07月22日

ボックス関連の注意

borderやpadding、margin、width、heightに関連するバグです。
覚えておかないとたまに痛い目をみます(^。^;)

widthと同時に左右borderや左右paddingを指定しない。heightと同時に上下borderや上下paddingを指定しない。
※通常は、ボックスの幅を算出するときにパディングやボーダーのサイズは除外される。しかしWinIEではこれらを含めて幅や高さを算出する。
body要素にはborderやwidthを指定しない
body要素にボーダーを設定すると、マージンや子孫要素などを無視し、閲覧領域を囲むようにボーダーが表示されてしまう
2006年07月21日

floatしたときの注意

floatを使うと、よく思いもしない表示になったりする事があります。
特にWin IE5.0や5.5あたりは…(--,)

というわけで、floatをするときに注意点です。

floatするときは、widthを指定する
IEで、フロートを含むボックスのマージンが無視されるなどの問題があるため。
※左フロートでは左マージンが、右フロートでは左マージンと上マージンが無視されます。
floatとmarginを一緒に指定しない
IEで、float: left;に左マージン、float: right;に右マージンをつけると、指定値の約2倍になってしまいます。
display: inline;を付ければ回避できるらしいです。
フロートに後続する通常フローでかつclearしていないブロックボックスにはwidthもheightも指定しない。
※フロートに後続する要素に幅か高さが指定されているとき、その要素の幅はフロートの幅を確保するように短縮される。また、フロートと後続要素の間に無くすことができない隙間ができる。
clearするボックスの上marginは0にし、widthも指定する
※clearプロパティによってフロートとの隣接を抑制した要素に上マージンを指定すると、フロートの下に指定値分の幅の上マージンができてしまう
絶対配置要素のコンテナブロックにはwidthを指定する
※絶対配置された要素が、後続する別の要素のマージンを引き継いでしまう
絶対配置要素の位置指定はtopとleftまたはrightとbottomで行う。leftとrightやtopとbottomを同時指定しない
※leftおよびtopプロパティが指定された要素では、rightおよびbottomプロパティの指定が無視される
overflowを使うときは同時にwidthやheightを指定する
幅も高さも明示されていない相対配置要素に overflow: hidden; を指定しても、絶対配置された子孫要素に対してその指定が効かない
2006年07月07日

CSSバグ辞典

スタイルシートでデザインを作成していて、どうしてもうまくいかない…そんな時はこちらでバグがないか調べてみると良いかもしれません。
案外バグだったりすることもあります。

2006年07月06日

ブラウザのデフォルトスタイルを決定する

bodyやhのマージンやパディングをひとつずつ設定するのは結構面倒なもの。
最初に一括でブラウザのデフォルトスタイルを決めておくととても楽です。

*

{

margin:0;

padding:0;

font-size:100%;

font-weight:normal;

font-style:normal;

text-decoration:none;

color:#カラー;

background:transparent;

}

※marginやpaddingを0にして余計な余白を消去する
※fontやcolorの設定は、全頁用のデザインとして設定する
※transparentを設定して、ユーザー独自のスタイルシート上書きする

2006年07月03日

画像に隙間が出来る(firefoxなど)

firefoxなどモジラ系のブラウザは、ドキュメントタイプをFull Standardモードにすると、なぜか画像の下に隙間が出来ます。
それを回避するには、画像に以下をいれてください。

vertical-align: bottom
※ img { vertical-align: bottom; } としておけば、全てのページのimgに対応するので便利です。

リストタグの中央寄せ

リストでメニューを横に作成したものの…リスト自体を中央寄せにしたい!
そんなときはこれです。

<div id="menu">
<ul>
<li><span><a href="a.html">あ</a></span></li>
<li><span><a href="a.html">い</a></span></li>
<li><span><a href="a.html">う</a></span></li>
<li><span><a href="a.html">え</a></span></li>
<li><span><a href="a.html">お</a></span></li>
<li><span><a href="a.html">か</a></span></li>
<li><span><a href="a.html">き</a></span></li>
<li><span><a href="a.html">く</a></span></li>
</ul>
</div>


#menu ul{
margin:3px auto 5px auto;
padding:0;
width:760px;
height:65px;
list-style-type:none;
text-align:center;
}
#menu li{
float:left;
padding:0;
}
#menu a{
display:block;
width:95px;
height:20px;
text-align:center;
}

※margin、height、withはデザインによって変えてください。

ページ全体の中央寄せ

ページの中味を全てセンタリングしたい場合です。
ちなみにこのブログもこれでセンタリングしています。

私がいつも使う方法を紹介します

たとえば
<body;>

<div id="main>

ここに800pxのブログを表示したい場合

</div>

</body>


body
{
text-align:center;
}
#main{
margin:0 auto;
width:800px;
}

Akasa Rira
みつけたきせき