ウェブインコ

インコの技術メモ

CSS

■子供が float していても親が囲む
・親に overflow: hidden; や overflow: auto;
・子供の最後にクリア要素。

■角丸
<html><title>www</title><head></head>
<style type="text/css">
div{
border: 1px red solid;
-webkit-border-radius: 10px; /* for Safari and Chrome */
-moz-border-radius: 10px; /* for Firefox */
-o-border-radius: 10px; /* when Opera Presto 2.3 or later is released */
-khtml-border-radius:10px; /* Linux browsers */
border-radius: 10px; /* CSS3 */
behavior: url(border-radius.htc); /* for IE */
width: 300px;
padding: 10px;
}
</style>
<body>
<div>
www<br />www
</div>
</body></html>

border-radius.htc はcssと同ディレクトリに置きます。

■選択した時の背景色の変更
::selection {
background:#d40210; /* Safari */
color: #fed723;
}
::-moz-selection {
background:#d40210; /* Firefox */
color: #fed723;
}

■横スクロールで背景が切れる
中央寄せしていると サイトの幅 > ブラウザの横幅 の状態で横スクロールすると背景が切れます。
このときは body に min-width を指定します。
ex.
body {
  background: #93c400 url("../images/body_bg.gif") repeat-x;
  min-width:1040px;
}
.wrapper {
  background: #93c400 url("../images/wapper_bg.gif") repeat-x;
  margin: 0 auto;
  width: 1040px;
}
IE6は↓。
body{
  width: expression(document.body.clientWidth < 300? "300px" : "auto");
}

■折り返し、折返
white-space:normal;  標準 (初期値)
white-space:nowrap;  自動的な折り返しを禁止する
white-space:pre;     記述した通りの形で表示する

■IE8で印刷時に2ページ以上またいだあとのフッター
[ヘッダー]
[左][ 右 ]
[フッター]
みたいにCSSで段組みしているものをIE8で印刷しようとしたら、
ページがまたがるとフッターが崩れるんです。
divで挟んだりいろいろしたけどだめで最終的にtableで挟むこととす。
クライアントは「リントチェック?は?」みたいな感じでIEで印刷できることが至上だそうなので、まあいいか。

/* ie印刷用 */
#printtable{margin:0; padding:0; border:0; width:100%;}

[ヘッダー]
[左][ 右 ]
<table id="printtable">
[フッター]
</table>

■IE8でリンクが途切れる
aタグをボックス化してバックグラウンドをマウスオーバーとかで切り替えるリンクを作る。
IE8で効かない部分が出てきた。(-_-;
どうもdivが縦横入り組んでいるところでだけダメなので線を表示して確認してみる。

/* 確認用*/
div {border: 1px #f00 solid;}

別におかしくはない、というかなぜかリンクが治る。

/* 確認用
div {border: 1px #f00 solid;}*/

もとにもどすとリンクが途切れる。(-_-;
なんでかわからないけど以下のようにして解決。なんじゃこりゃ。

/* 確認用*/
div {border: 0px #fff solid;}

■IEを含む切り分け
IE6以下にのみ適用
* html body
IE7にのみ適用
*+html body
IE7を含む全てのIEにのみ適用
*+html body, * html body
IE7を含むモダンブラウザにのみ適用(IE6以下を除外)
html>body
IE7を除くモダンブラウザにのみ適用
html>/**/body

■text-align EI6
box要素までセンタリングされる。

■margin EI6
float と同じ方向の margin は2倍になる。
左右の auto は効かない。

■EIでの中央寄せ
上記2つのバグで相殺します。
<DIV style="text-align:center">
<DIV style="text-align:left">
コンテンツ
</DIV>
</DIV>

■padding FireFox1.5
内側に指定した分が全体のサイズにプラスされる。
EI はされない。

■というわけで
サイズを指定しているところでは padding を指定しない。
float を使用しているところでは margin を指定しない。

■しかしながら
margin や padding に関しては他にタグによって色々違う時があるので臨機応変に対処してください。

■aタグ内で line-height が効かない。EI6
先頭に画像でもおいて、img タグに margin とか指定して下げてやると後ろのテキストも
付いてくる。ので、空gifでも使うかな。

■リスト
<dl>
<dt>単語</dt>
<dd>ここに単語の説明などを入れて使います</dd>
<dt>省略
<dd>終了タグを省略しています
</dl>
単語
ここに単語の説明などを入れて使います
省略
終了タグを省略しています

<ol>
<li>項目をここに書きます</li>
<li>終了タグを省略しています
<li>終了タグを省略しています
</ol>
1. 項目をここに書きます
2. 終了タグを省略しています
3. 終了タグを省略しています

■フォント関係
font-size:14px;
font-weight:bold;
line-height:140%;
font-family :"ヒラギノ角ゴ Pro W3", Osaka, "MS Pゴシック", Kochi Gothic;
color:#000;

■余白
ブロック要素の外側
margin:0px 0px 0px 0px;
ブロック要素の内側
padding:0px 0px 0px 0px;
※widthを指定している場合、paddingの値が合計されるので差し引く。

■横にならべる、解除
float:left;
clear:both;

■全称セレクタ
全ての要素に適用されるように、セレクタにワイルドカード "*" が使えます。
{margin: 0; padding: 0;}
全ての要素のマージンとパディングを 0

■高さの最大最小
max-height:999px;
min-height:999px;

■HEADの雛形
<HTML>
<HEAD>
<META http-equiv="Content-Language" content="ja">
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META name="Discription" content="ここに文章の要約を記述">
<META name="KeyWords" content="ここに検索用キーワードを記述 半角スペース区切り">
<META name="author" content="ここに作者を記述">
<TITLE>ここにタイトルを入れる</TITLE>
</HRAD>
<BODY>
ここに表示する内容をHTMLで記述
</BODY>
</HTML>

■HEADの文字コード
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

■キャッシュを無効にする場合
以下を書き足します。
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Expires" content="0">

■DIVとSPAN
divもspanも無意味のタグですがCSSを反映する為だけに良く使用します。
divはブロック要素。改行します。
spanはインライン要素。改行しません。ブロック要素の中にある。

■クラスとID
classが . idが #
idは同ページに1つしかあっては駄目。
.color1{color:#f00;}
#colorA
■外部ファイルに書く場合
index.htmlに以下の分を書く。
<LINK rel="stylesheet" type="text/css" href="syosiki.css">
同ディレクトリにsyosiki.cssを置く。
その中身の例。
BODY{
font-size :12pt;
background :#ffffff;
margin :0px;
padding :0px;
font-family :"ヒラギノ角ゴ Pro W3", Osaka, "MS ゴシック", Kochi Gothic;
color :#440044;
background-image :url(img/back.gif) top repeat-y;
}
A:link {color:#0000ff; text-decoration:none;}
A:visited {color:#aa00ff; text-decoration:none;}
A:active {color:#ffaa00; text-decoration:none;}
A:hover {color:#ffaa00; text-decoration:none;}

ファイルの中に書く場合
<style type="text/css">
<!--
/* 確認用*/
div {border: 1px red solid;}
td, th {border: 1px blue solid;}
pre {border: 1px #f0f solid;}
//-->
</style>

■タグの中に書く場合
<div style="border: 2px #0ff solid;">何かしらのコンテンツ</div>