CSS関連
お手軽ロールオーバー
メモ
画像のロールオーバーは、Javascriptを使うと楽です。特にCSS HappyLifeさんのサイトの
なんかは非常に簡単にロールオーバーを実現できます。
ただ画像のロールオーバーといっても、明度が上がる程度のものであれば、わざわざ2枚用意するのも面倒です。
そういう場合はスタイルシートで解決しましょう。
1.imgタグを囲んだaタグに「class="opacity"」を記述します。
<a href="#" class="opacity"><img src="hoge.jpg" /></a>
2.スタイルシートに以下を記述します
a.opacity{
background-color:#FFF;
display:inline-block;
}a.opacity:hover img,
a.opacity:active img{
-moz-opacity:0.7;
opacity:0.7;
filter:alpha(opacity=70);
}
要するに、画像の透明度を上げて、白の背景色と混ぜ合わせれば明るく見えるというわけですね。
■サンプル(明るく:background-color:#FFF;)
反対に暗く見せたい場合は、背景色を暗くすれば良いので、「a.opacity」の「background-color」を「#000」にしてください。
■サンプル(暗く:background-color:#000;)
その他の色についても、背景色の設定次第で様々なバリエーションが可能です。
■サンプル(赤:background-color:#F00;)
■サンプル(緑:background-color:#0F0;)
■サンプル(青:background-color:#00F;)
nandani | 2010年11月24日 | コメント(0) | トラックバック(0) | CSS関連 | JavaScript関連
PIEで「Multiple background images」
「IEでもCSS3 その2(PIE)」で「Multiple background images」のやり方がわからないと書いたのですが、ようやくやり方がわかりました。サンプル
PIEにて「Multiple background images」を実行させる方法は以下の通りです。
.multiple_box{
background-color:#FFFFFF;
width:640px;
height:480px;/*Firefox等用*/
background:
url(img/Winter.jpg) no-repeat top left,
url(img/Waterlilies.jpg) no-repeat center center,
url(img/Blue_hills.jpg) no-repeat 100% 100%;/*PIE用*/
-pie-background:
url(img/Winter.jpg) no-repeat top left,
url(img/Waterlilies.jpg) no-repeat center center,
url(img/Blue_hills.jpg) no-repeat 100% 100%;behavior: url(PIE.htc);
}
「background」ではなく「-pie-background」と記述しなければならなかったわけです。
グラデーションの記述方法にヒントがあったのに、今の今まで気づかなかったのは我ながらアホとしか言いようがありませんが、とりあえず解決!
nandani | 2010年11月10日 | コメント(0) | トラックバック(0) | CSS関連
IE9ベータ版でCSS3テスト
先日ノートパソコンが手に入り、それのOSがwindows7だったので早速IE9ベータ版をダウンロードしてインストールしてみました。
で、CSS3の動作をチェックしてみたのですが、以下がその結果画像です。
実際にIE9ベータ版をインストールしている方はこちら:サンプル
見事にIE9ではCSS3に対応していますね~
ただし!対応しているのは
- 角丸
- ドロップシャドウ
- マルチプルバックグラウンドイメージ
のみで、以下のスタイルには対応できていません。
- グラデーション
- ボーダーイメージ
- テキストシャドウ
単に記述方法が違うだけかもしれませんが。
ともあれ、まだまだベータ版ということなので今後に期待します。
nandani | 2010年09月25日 | コメント(0) | トラックバック(1) | CSS関連
PIEバグレポート
複数のタグの中にあるブロック要素のタグを角丸にする場合、角丸が効かない場合があります。
例)
<div class="box_outer">
<div class="box">
PIEではIEでも<br />
角丸・ドロップシャドウ・グラデーションを<br />
実行できます。
</div>
</div>
この要素の各スタイルは以下の通り
.box_outer{
padding:20px;
background-color:#FFF;
}
.box {
padding:20px;
background-color:#EEE;
border:solid 1px #000;
/*角丸*/
-moz-border-radius: 15px; /*FireFox*/
-webkit-border-radius: 15px; /* Safari and Chrome */
border-radius: 15px; /* Opera 10.5+, IE */
behavior: url(PIE.htc);
}
これを実行すると、以下のようになります。
サンプルをFireFoxなどで見ていただければわかると思いますが、白い部分の中に灰色の角丸ブロックが表示されます。
しかしIEでみると角丸にならないどころか、background-colorの設定が無効になってしまっています。
どうやら外のタグでbackground-colorを設定するとこのようにバグるようです。(他にも原因なるかもしれませんが)
解決方法としては、角丸にするタグのスタイルで「position:relative;」を設定してください。
.box_outer{
padding:20px;
background-color:#FFF;
}
.box {
padding:20px;
background-color:#EEE;
border:solid 1px #000;
position:relative;
/*角丸*/
-moz-border-radius: 15px; /*FireFox*/
-webkit-border-radius: 15px; /* Safari and Chrome */
border-radius: 15px; /* Opera 10.5+, IE */
behavior: url(PIE.htc);
}
これでとりあえず解決するようです。
nandani | 2010年09月10日 | コメント(0) | トラックバック(1) | CSS関連
inline-blockを使うときはinline要素からアプローチせよ!
inline-blockといえば、インライン要素でありながら、ブロック要素であるwidthやheight、marginやpaddingなどを使えるようになるというスタイルです。
たとえば
<p class="e_date">2010.09.08</p>
<p class="e_title">記事のタイトル</p>
というhtml記述に対して
<style>
.e_date{
display:inline-block;
width:72px;
height:20px;
padding:5px;
background-color:#000000;
color:#FFFFFF;
}.e_title{
display:inline-block;
width:200px;
}</style>
というスタイルを設定すると以下のようになります。
しかし、Firefoxなどモダンブラウザでは使用できますが、IE6、7ではまだ実装が不十分です。IE8でもサーバによってはなぜか実現できたりできなかったりします。(このサクラインターネットでは使えませんでした。)
これをIEでも実現させるには、ブロック要素をinline-blockにするのではなく、インライン要素をinline-blockにしてみてください。
<span class="e_date">2010.09.08</span>
<span class="e_title">記事のタイトル</span>
スタイルは上記のと同じです。
以下実行結果
nandani | 2010年09月08日 | コメント(0) | トラックバック(0) | CSS関連 | HTML関連
htcが効かないサーバの場合
「IEでもCSS3」シリーズの記事で「PIE.htc」「ie-css3.htc」「css3shadow.htc」を紹介しましたが、サーバによっては効かない場合があります。
これはサーバが「htc」という拡張子のファイルを正しく認識できていないためです。
これを認識させる方法は以下の通りになります。
1.テキストエディタを開いて
AddType text/x-component .htc
と記述します。
2.ファイル名を「.htaccess」とします。この名前で保存できない場合はとりあえず「ht.access」と保存します。
3.ホームページを設置しているサーバにアップロードします。もし「ht.access」で保存した場合は、アップロードした後「.htaccess」にリネームしてください。
以上で「htc」が使えるようになります。
すでにhtaccessというファイルがある場合は、そのファイルに1.を追記してください。
今回参考にさせていただいたサイト
nandani | 2010年08月09日 | コメント(0) | トラックバック(2) | CSS関連 | サーバー関連
「input」タグの「submit」ボタンを画像にかえる方法
<input type="submit" class="button" value="検索" />
というようなボタンを画像に差し替える場合、このようにスタイルを設定します。
input.button{
background-image:url("images/search_button.png");
background-repeat:no-repeat;
background-color:#000000;
border:none;
width:28px;
height:28px;
text-indent: -9999px;
cursor: pointer;
}
nandani | 2010年08月04日 | コメント(1) | トラックバック(1) | CSS関連 | HTML関連
IE対策で必要なJavascript同士の干渉報告 その1
IEでも「getElementsByClassName」を利用できるようになるスクリプト「getElementsByClassName.js(ダウンロードサイト)」と、IEでも角丸やドロップシャドウが使えるようになる「PIE.htc(ダウンロードサイト)」はお互い干渉するのか、同時に使用するとIE8が落ちる・・・(IE7ではたぶん大丈夫)
IEのためのスクリプトなのに・・・IE○ね~~~~~!!
おとなしく「getElementsByClassName.js」はやめて、「prototype.js」か「jquery.js」で代用するのが良いようです。
nandani | 2010年08月04日 | コメント(0) | トラックバック(0) | CSS関連 | HTML関連 | JavaScript関連
IEでもCSS3 その3(css3shadow)
今回の方法では、ドロップシャドウ・テキストシャドウができます。
「css3shadow」を利用する方法。(参考サイト:ppBlogさんのサイト)
css3shadowでできるCSS3機能は以下のとおりです。
- -moz-box-shadow または -webkit-box-shadow : ドロップシャドウ
- text-shadow : テキストシャドウ
css3shadowのIE用ドロップシャドウでは「box-shadow」ではなく、「-moz-box-shadow」または「-webkit-box-shadow」で記述します。もちろん両方書いていても大丈夫です。
手順
1.まずはこちらのサイトから「css3shadow」をダウンロードしてください。(リンク先の下のほうにある「添付ファイル:css3shadow.htc」をクリックしてください。)
2.htmlファイルに以下を記述し、「css3shadow.htc」を呼び出してください。(css3shadowではbehaviorで呼び出しても有効になりません)
<!--[if IE]>
<script type="text/javascript" src="css3shadow.htc"></script>
<![endif]-->
3.スタイルシートを設定してください。なお、css3shadowではinsetによる内部シャドウが使用できます。
(ie-css3とPIEでは現在確認したところ、できませんでした)
通常のドロップシャドウにする場合はこの「inset」を削除してください。
.box{
padding:20px;
background-color:#FFF;
border: solid 10px #999;
width: 500px;
font: 18px Arial; color: #555;
-moz-box-shadow: inset 0px 0px 12px rgba(10, 10, 10, 0.95);
-webkit-box-shadow: inset 0px 0px 12px rgba(10, 10, 10, 0.95);
text-shadow: 0px 2px 3px rgba(10, 30, 100, 0.3);
}
4.スタイルは、ドロップシャドウ・テキストシャドウともにclass「box」という名前にしていますので、body内にそれぞれを含んだタグを記述してください。(以下例)
<div class="box">
<p>「css3shadow」では、insetによる内部シャドウが使用できます。</p>
<p>「css3shadow.htc」を呼び出す場合は、behaviorではなく、scriptタグで呼び出してください。</p>
</div>
これで、IEでも対応できるようになります。
※サンプルではinsetによる内部シャドウを使用しています。
注意事項
シャドウを設定しているクラスで「text-align:center;」を使うと、「こちら」のようにとんでもない結果になります。使う場合はそのクラスの中にもうひとつタグを入れてそちらで「text-align:center;」を使ってください。
上記の問題、ご対応いただけたようです。製作者様ありがとうございました^^
今回参考にさせていただいたサイト
ppBlog : 該当記事「IEでCSS3のドロップシャドウを使いたい」
nandani | 2010年07月22日 | コメント(2) | トラックバック(1) | CSS関連
IEでもCSS3 その2(PIE)
今回は、角丸・ドロップシャドウ・グラデーションを行います。
※印刷バグは「version1.0 beta4」においてある程度解消されましたが、その代わり、印刷においてPIEは実行されません。(試しに当サイトをIEで印刷プレビューをご覧ください。角丸の効果がなくなっています。)
「PIE」を利用する方法。(参考サイト:コリスさんのサイト)
PIEでできるCSS3機能は以下のとおりです。
- border-radius:角丸
- box-shadow:ドロップシャドウ
- linear-gradient:グラデーション
- border-image:ボーダー画像
- multiple background images:1つのクラス・IDに複数の画像を設定
※「ボーダー画像」について、あまりピンとこない方はこちらのサイトをご参照ください。非常にわかりやすく説明されています。 「PXT255;さん」のサイト
手順
1.まずはこちらのサイトから「PIE」をダウンロードしてください。
2.次にスタイルにて、各設定を行います。(今回ははじめからbehavior: url(PIE.htc);を入力しておきます。)
.box {
padding:10px;
/*角丸*/
-moz-border-radius: 15px; /*FireFox*/
-webkit-border-radius: 15px; /* Safari and Chrome */
border-radius: 15px; /* Opera 10.5+, IE *//*ドロップシャドウ*/
-moz-box-shadow: 5px 5px 15px #000; /* Firefox */
-webkit-box-shadow: 5px 5px 15px #000; /* Safari and Chrome */
box-shadow: 5px 5px 15px #000; /* Opera 10.5+, IE *//*グラデーション*/
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#FFFFFF), to(#999999));
background: -moz-linear-gradient(#FFFFFF, #999999);
-pie-background: linear-gradient(#FFFFFF, #999999);behavior: url(PIE.htc);
}/*border-image*/
.bi_text{padding:10px;
border: 1px solid #a3a3a2;
-moz-border-image: url(img/scotch-tape.png) 2 8 2 8 / 2px 8px 2px 5px;
-webkit-border-image: url(img/scotch-tape.png) 2 8 2 8 / 2px 8px 2px 5px;
border-image: url(img/scotch-tape.png) 2 8 2 8 / 2px 8px 2px 5px;behavior: url(PIE.htc);
}/*Multiple background images*/
.multiple_box{width:600px;
height:400px;/*Firefox等用*/
background:
url(img/Winter.jpg) no-repeat top left,
url(img/Waterlilies.jpg) no-repeat center center,
url(img/Blue_hills.jpg) no-repeat 100% 100%;/*PIE用*/
-pie-background:
url(img/Winter.jpg) no-repeat top left,
url(img/Waterlilies.jpg) no-repeat center center,
url(img/Blue_hills.jpg) no-repeat 100% 100%;behavior: url(PIE.htc);
}
※2010/11/09 : PIE用のMultiple background imagesの記述を追記しました。
各クラスの最後に、1.でダウンロードした「behavior: url("PIE.htcへのパス");」を記述するのを忘れないよう注意してください。
※なおグラデーションは、Firefoxの場合3.6以上でないと表示されませんのでご注意ください。
3.スタイルの設定は
- 「角丸」「ドロップシャドウ」「グラデーション」はclass「box」
- 「border-image」はclass「bi_text」
- 「Multiple background images」はclass「multiple_box」
というclass名にしていますので、body内にそれぞれを含んだタグを記述してください。(以下例)
<h2>border-radius/box-shadow/linear-gradient</h2>
<div class="box">角丸とドロップシャドウ、グラデーション</div><h2>border-image</h2>
<p class="bi_text">border-imageとはボーダーに画像を適応させるもの</p><h2>multiple background images</h2>
<div class="multiple_box"></div>
これで、IE8でも対応できるようになります。
※サンプルでは見やすいようにタグのスタイルをあらかじめ設定しています。
※サンプルの「border-image」の背景に使用している画像「scotch-tape.png」は「2xup.org blog」さんのサイトから借用しました。正常に表示されればなかなかかっこいい背景になります。
と言いたいところなんですが、「border-image」と「multiple background images」(※1)はなぜか、IEで正常に動作しませんでした。できるはずなんですけどねぇ・・・;
こちらについてはもうしばらく調べてみます。
今回参考にさせていただいたサイト
- コリス : 該当記事「たった一行を追加するだけでIE6/7/8をCSS3対応にする -CSS3 PIE」
- 2xup.org : 該当記事「border-image を利用したボックスデザイン」
- PXT255; : 該当記事「【CSS3】 border-image を試してみた。」
nandani | 2010年07月21日 | コメント(0) | トラックバック(5) | CSS関連 | HTML関連