タグ: CSS

  • Internet Explorerだけに適用させる条件指定の方法

    CSSでもJavascriptでも、Internet Explorerにのみ適用させたいとうい時がしばしばあります。
    そんな時のために、Internet Explorerだけに適用させる条件指定方法の紹介。
    今回は、CSSを例に紹介していきます。

    すべてのバージョンのIEに適用させる。

    [html]

    [/html]

    プログラミングではお馴染みのif文のようなものです。

    IEには適用しない。

    [html]

    [/html]

    IEの前に「!」が付くと、IE以外のものに適用させます。
    裏を返すと、IEには適用しないということになります。

    バージョン別に適用

    「IE」のあとにバージョンナンバーを記述することで、バージョン別に適用させることができます。

    IE8のみ

    [html]

    [/html]

    IE5.5のみ

    [html]

    [/html]

    以下のバージョンに適用

    IE7以下のバージョンに適用させる場合

    [html]

    [/html]

    「lt」は less than を意味します。
    なので、IE8未満の時に適用。

    [html]

    [/html]

    「lte」は less than equal を意味します。
    なので、IE7以下の場合に適用。

    以上のバージョンに適用

    IE7以上のバージョンに適用させる場合

    [html]

    [/html]

    「gt」は greater than を意味します。
    なので、IE6よりも新しいバージョンの時に適用。

    [html]

    [/html]

    「gte」は greater than equal を意味します。
    なので、IE7以上の時に適用。

  • ブラウザのスタイルをリセットする「CSS Reset」のまとめサイト

    ブラウザのスタイルをリセットする「CSS Reset」のまとめサイト

    ブラウザのスタイルをリセットする「CSS Reset」のまとめサイトの紹介。

    CSS Reset.com

    Internet Explorer、Firefox、Safari、Google Chrome、Operaなどのブラウザにはそれぞれデフォルトのスタイルがあり、それが各ブラウザごとに違っているのでそれを揃えてみようというものです。

    現在まとめられているのは以下の7つです。

    Eric Meyer’s “Reset CSS”

    CSS リセットの先駆者のひとりEric MeyerのReset CSS。
    プロジェクトに合わせて編集、調整することを推薦していますが、ほとんどの人は未編集の状態で使っています。
    Eric Meyer’s “Reset CSS”のドキュメント

    HTML5 Doctor CSS Reset

    Eric Meyer’s “Reset CSS”を基にHTML5の新しい属性を利用し、非推奨されたHTML4の要素を取り除いたもの。
    HTML5 Doctor CSS Resetのドキュメント

    Yahoo! CSS Reset (YUI 3)

    Yahoo! YUI 3は次世代のJavaScript / CSSのライブラリです。
    Yahoo! CSS Reset (YUI 3)のドキュメント

    Universal Selector ‘*’ Reset

    すべての要素を対象にするユニバーサルセレクタを用いたCSSリセット。
    Universal Selector ‘*’ Resetのドキュメント

    Vanilla CSS Un-Reset

    デフォルトのスタイルも活かしつつ、必要な箇所だけ上書きするCSS。
    他のCSS Resetと提携して働くように設計されています。
    Vanilla CSS Un-Resetのドキュメント

    Tripoli CSS Reset – David Hellsing

    読みやすさやコンテンツのユーザビリティを向上させます。
    Tripoli CSS Reset – David Hellsingのドキュメント

    ‘undohtml.css’ – Tantek Celik

    画像からのリンクのborder及びmargin、paddingを取り除き、フォントサイズを1emに揃えます。
    ‘undohtml.css’ – Tantek Celikのドキュメント

  • CSSとjQueryを使ったスライドショー

    CSSとjQueryを使ったスライドショー

    CSSとjQueryを使ったスライドショーを作ったのでエントリー。

    CSSとjQueryを使ったスライドショー

    デモページ

    スライドさせたい画像と「次へ」と「戻る」があるだけのシンプルな構造です。
    ほっとくと自動でスライドしたりします。「次へ」と「戻る」のどちらかを押せば止まります。

    HTML

    [html]

    [/html]

    CSS

    [css]
    #container {
    margin: 0 auto;
    width: 800px;
    }
    #nav {
    margin-top: 100px;
    width: 800px;
    position: relative;
    }
    #imgPrev, #imgNext {
    width: 50px;
    height: 100%;
    position: absolute;
    top: 0;
    }
    #imgPrev {
    left: 0;
    background: url(images/arrow_left.png) no-repeat center center;
    }
    #imgNext {
    right: 0;
    background: url(images/arrow_right.png) no-repeat center center;
    }
    #imgPrev a, #imgNext a {
    width: 50px;
    height: 100%;
    text-indent: -9999em;
    display: block;
    overflow: hidden;
    }
    #imgArea {
    width: 100%;
    height: 100%;
    overflow: hidden;
    }
    #imgWrap li.img {
    list-style-type: none;
    }
    #imgWrap li.img a {
    margin: 0;
    float: left;
    width: 800px;
    height: 280px;
    display: block;
    }
    [/css]

    jQueryの設置

    jQueryを設置するには「公式サイト」からライブラリー本体をダウンロードして使うか、Googleが提供している「Google AJAX Libraries API」を使うかします。
    今回はダウンロードしなくてもjQueryを利用できるので「Google AJAX Libraries API」を使っています。

    使い方は簡単。以下のコードを書き込むだけです。

    [javascript]

    [/javascript]

    JavaScript

    [javascript]
    $(function(){
    //横幅の設定
    $(“#imgWrap”).css(“width”,800*$(“#imgWrap li.img”).size()+”px”);
    $(“#imgWrap li.img:last”).prependTo(“#imgWrap”);
    $(“#imgWrap”).css(“margin-left”,”-800px”);
    //戻るの設定
    $(“#imgPrev”).click(function(){
    $(“#imgWrap”).animate({
    marginLeft : parseInt($(“#imgWrap”).css(“margin-left”))+800+”px”
    },”slow”,”swing” ,
    function(){
    $(“#imgWrap”).css(“margin-left”,”-800px”)
    $(“#imgWrap li.img:last”).prependTo(“#imgWrap”);
    });
    });
    //次への設定
    $(“#imgNext”).click(function(){
    $(“#imgWrap”).animate({
    marginLeft : parseInt($(“#imgWrap”).css(“margin-left”))-800+”px”
    },”slow”,”swing” ,
    function(){
    $(“#imgWrap”).css(“margin-left”,”-800px”);
    $(“#imgWrap li.img:first”).appendTo(“#imgWrap”);
    });
    });
    //マウスオーバー時の戻ると次への設定
    $(“#imgPrev,#imgNext”).fadeTo(0,0.2);
    $(“#imgPrev,#imgNext”).hover(function(){
    $(this).fadeTo(100,1);
    },
    function(){
    $(this).fadeTo(200,0.2);
    }
    );
    //自動スライド
    var timerID = setInterval(function(){
    $(“#imgNext”).click();
    },8000);
    $(“#imgPrev a,#imgNext a”).click(function(){
    clearInterval(timerID);
    });

    });
    [/javascript]

    今回はシンプルなものだったので、次は凝ったものを作ってみようかなとか思っています。

  • CSSで背景をページの下まで伸ばす方法

    背景をページの下まで伸ばすときには、bodyにbackgroundを指定すればいいのですが、bodyの背景は他のものを全体的に使って、その上にdivで指定した背景を縦方向にページの下まで伸ばしたい時は以下の方法が有効です。

    html

    [html]
    <body>
    <div id="wrapper">
    <p>CSSで背景をページの下まで伸ばす方法</p>
    </div>
    </body>
    [/html]

    CSS

    [css]
    * {
    margin: 0;
    padding: 0;
    }
    html {
    height: 100%;
    }
    body {
    height: 100%;
    background: url(images/bg.jpg) repeat center top;
    }
    #wrapper {
    margin: 0 auto;
    height: 100%;
    min-height: 100%;
    width: 800px;
    text-align: center;
    background: #F2F2F2;
    }
    body > #wrapper {
    height: auto;
    }
    [/css]

    これでdivに指定した背景を縦方向にページの下まで伸ばすことができます。
    デモページも作ってみたので見てみてください。

    デモページ

  • floatさせた子要素が親要素からはみ出す現象を回避する

    Webサイトを制作していて、親要素に背景色などを指定し、その子要素をfloatさせた時とかにfloatさせた子要素が親要素からはみ出すという現象に遭遇されることは結構あると思います。

    これを解決するために空のdivやbrなどにclear:bothをクラス指定してみたり。
    それでも見た目上はOKなんですが、作っている本人としてはなんだか精神衛生上あまり良くなかったりするわけです。

    これを解決してくれるのがclearfix。知っておくと便利です。

    clearfixの設定方法

    親要素に対してCSSで以下のように指定します。

    [css]
    .clearfix:after {
    display: block;
    content: &quot;.&quot;;
    clear: both;
    height: 0;
    visibility: hidden;
    }

    .clearfix {display:inline-block;}

    /*Hides from IE-mac\*/
    * html .clearfix{height:1%;}
    .clearfix{display:block;}
    /*End hide from IE-mac*/
    [/css]

    :after擬似要素を利用して、親要素の直後にcontentプロパティで仮コンテンツを挿入しclear:bothでfloatをクリアさせています。
    いやはや、凄いですね。