最近ie6をサポートしない、もしくは別スタイルシートで対応するというサイトが増えてきました。
というわけで、ie7から使えるセレクタのおさらい。
(さらに…)
最近ie6をサポートしない、もしくは別スタイルシートで対応するというサイトが増えてきました。
というわけで、ie7から使えるセレクタのおさらい。
(さらに…)
IE7でのみ起こる現象っぽいですが、
white-space: nowrap;
がwidth:autoが設定されていると効かないようです。tableの中での話ですが・・・
ここ数年の流行りとして、wrapperがよくある。
けれどもbody要素をwrapperに代換することはできないだろうかと。
で、検証。
margin = 有効
padding = 有効
width = △
環境はfirefox3.6です。一応他のブラウザでも大体一緒の実装です。
bodyのwidthは内部コンテンツの横幅などに対しては有効。
background等bodyのボックス要素そのものの指定に対しては無効。といった感じです。
wrapperの部分にのみ背景が当たっている、<center>の代わりwrapperを使っているようなレイアウトの場合、一考の余地があるのではないかなと思います。
safari3+&Chrome、webkit系ブラウザのみのハックです
[css]
@media screen and (-webkit-min-device-pixel-ratio:0)
{
/*ここにsafari4&Chrome用ハック*/
#hack{color:#c00;}
}
[/css]
検証したところ、safari3,4、Google Chrome3にはちゃんと効くようです。
[css]
body:first-of-type #hack{color:#c00;}
[/css]
がsafari4ハックとして紹介されていたりしますけど、firefox3.5、Opera9以上には効いてしまうんです。
http://paulirish.com/2009/browser-specific-css-hacks/
いろいろまとめられてます。
まぁ、ハックなんてしないのに超したことは無いんですがね・・・
背景に指定するときは
[css]behavior: expression(
this.style.behavior || (
this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader( sizingMethod = crop,src = ‘"+this.currentStyle.getAttribute("backgroundImage").slice(5,-2)+"’ )",
this.style.backgroundImage = "none",
this.style.behavior = "none"[/css]
imgに直接やる場合は
xhtml
[xhtml]
<div>
<a href="#">
<img src="hoge.png" alt="" width="200" height="100" />
</a></div>
[/xhtml]
css
[css]
* html div{
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=hoge.png);
width:200px;
height:100px;
}
* html div a img {display:none;}
[/css]
なんて書いてやる。
filterで透過PNGを表示させて、通常のPNGをdisplay:noneで消す。
面倒ですね・・・・
ってなわけで通常はIE PNG Fix 2.0 Alpha 4をワタクシは使ってます。
IE7 IE6のバグだかなんだかですが。
ちゃんとclearしてるし、IE8やfirefoxとかでは正常に表示される場合。
その要素に
min-height:100%(IE7)
height:100%(IE6)
を書いてやればちゃんとなります。
あと横並びのメニューを作るときに
[xhtml]
<li><a href="#">メニュー</a></li>
<li><a href="#">メニュー</a></li>
<li><a href="#">メニュー</a></li>
[/xhtml]
というソースがあるとすると、
[css]
li{
list-style:none;
float:left;
}
a{
display:block;
width:150px;
height:30px;
}
[/css]
とか書きます。
floatがaのプロパティに来てても普通は動作するのですが、IE6&7だと、前のメニューの右下に次のメニューが配置されます。ご注意。。。
アンカーテキスト(<a herf=”#header”>的な)を指定して、ページ内リンクをつくったとき、
そのリンク先の親ボックスにoverflow:hiddenが指定されていると
そのリンクに飛んだときに、親ボックスが上にずれます。
とりあえず、ブラウザ特有のバグというわけではないようです。。。。
clearfixをDreamweaver3とかで適用して言う場合は少し注意が必要ですね。。。。。
まぁ備忘録ですからね。CSSで使えるテクニックのまとめです。
Clearfix
[css]
.clearfix:after {
content: ".";
display: block;
height: 0px;
clear: both;
visibility: hidden;
}
/* Win IE7 */
*:first-child+html .clearfix
{
height: 1%;
}
/* End Win IE7 */
/* Win IE6 \*/
* html .clearfix
{
height: 1%;
}
/* End Win IE6 */
/* Mac IE\*//*/
.clearfix
{
display: inline-table;
}
/* End Mac IE */
[/css]
http://blog.d-spica.com/entry/070307clearfix.html
cssでのロールオーバー実装と背景画像によるテキスト置換。
XHTML
[xhtml]
<li id="bt1" class="menu_button"><a href="preview.php">preview</a></li>
[/xhtml]
CSS
[css]
.menu_button a {
overflow:hidden;
height:50px;
text-indent:-9999px;
display:block;
}
.menu_button:hover {
background-position:-230px;
}
#bt1 {
background-image:url(../images/menu_01.gif);
}
[/css]
(Crude Music Web Site で使いますのでリニューアル後にでも見てください。)