HTML 5実践--css 3を使って私たちの画像スタイルを豊かにする方法-part 2

7611 ワード

転載はオリジナル住所を明記してください:http://www.cnblogs.com/softlover/archive/2012/11/23/2780892.html
 
以前のチュートリアル「HTML 5実践--css 3画像スタイル」では、background-imageパッケージを画像に追加する方法を紹介し、box-shadowとborder-radiusを利用して画像に多様なスタイルを設定し、興味のある方は振り返って読むことができます.しかし、最近私はPhotoTouchのテーマを設計している間に問題に直面し、background-imageのサイズを調整することができず、応答式の設計にはあまり理想的ではありません.今日は問題を解決しようとします.
demoプレビューアドレス:http://webdesignerwall.com/demo/css3-image-styles-part-2/
 
に質問
ほとんどのブラウザでは、画像のborder-radiusと埋め込みbox-shadow効果をレンダリングするのは完璧ではありません.これは、画像にレリーフ、ハイライト、圧縮などの効果を作成できないことを意味します.
HTML5实践 -- 如何使用css3丰富我们的图片样式 - part2
 
以前のソリューション
以前の解決策では,画像のパッケージにbackground−image属性を追加し,上記の問題を解決した.

background-imageの問題点
background-imageを使用する問題は、ピクチャサイズのダイナミックスケールを実現できないことです.したがって,この方式は画像のスケーリングを要求する応答式設計にはそれほど適用されない.
 
新しいソリューション
新しい解決策は以前と少し似ていますが、css 3の効果をピクチャマスク層:after擬似クラスに追加すると、ピクチャが完全性と収縮性を維持する利点があります.
ダイナミックエフェクトを実現するjquery文
jqueryは、demoの下のすべての画像をクエリーし、spanパッケージを動的に追加します.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){



    $('#demo img').each(function() {

        var imgClass = $(this).attr('class');

        $(this).wrap('<span class="image-wrap ' + imgClass + '" style="width: auto; height: auto;"/>');

        $(this).removeAttr('class');

    });



});

</script>

出力結果
上のコードは次の結果を出力します.
<span class="image-wrap " style="width: auto; height: auto;">

    <img src="image.jpg">

</span>

cssテクニック
cssテクニックは簡単で、マスクの効果が使われています.image-wrap:afterの上でborder-radiusは同時に画像と.image-wrap:afterの上に、スタイル効果を実現します.
HTML5实践 -- 如何使用css3丰富我们的图片样式 - part2
  css 
.image-wrap {

    position: relative;

    display: inline-block;

    max-width: 100%;

    vertical-align: bottom;

}

.image-wrap:after {

    content: ' ';

    width: 100%;

    height: 100%;

    position: absolute;

    top: -1px;

    left: -1px;

    border: solid 1px #1b1b1b;



    -wekbit-box-shadow: inset 0 0 1px rgba(255,255,255,.4), inset 0 1px 0 rgba(255,255,255,.4), 0 1px 2px rgba(0,0,0,.3);

    -moz-box-shadow: inset 0 0 1px rgba(255,255,255,.4), inset 0 1px 0 rgba(255,255,255,.4), 0 1px 2px rgba(0,0,0,.3);

    box-shadow: inset 0 0 1px rgba(255,255,255,.4), inset 0 1px 0 rgba(255,255,255,.4), 0 1px 2px rgba(0,0,0,.3);



    -webkit-border-radius: 7px;

    -moz-border-radius: 7px;

    border-radius: 7px;

}



.image-wrap img {

    vertical-align: bottom;



    -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4);

    -moz-box-shadow: 0 1px 2px rgba(0,0,0,.4);

    box-shadow: 0 1px 2px rgba(0,0,0,.4);



    -webkit-border-radius: 6px;

    -moz-border-radius: 6px;

    border-radius: 6px;

}

 
画像スタイル
浮き彫り、ジグザグ、圧縮、ハイライトなど、さまざまな効果は、複数の埋め込みbox-shadowsプロパティを使用することで実現できます.もちろん、beforeを使用することで、ハイライトなどの別のレイアウト効果を実現することもできます.詳細については、demoソースコードを参照してください.その後、ブラウザウィンドウのサイズを調整して、画像のサイズが変わったかどうかを確認できます.
HTML5实践 -- 如何使用css3丰富我们的图片样式 - part2
 
ブラウザ互換性
このテクニックは、JavascriptとCSS 3をサポートするほとんどの現代ブラウザでサポートされています.例えば、Chrome、Firefox、Safari、and IE 9+です.
 
原文住所:http://webdesignerwall.com/tutorials/css3-image-styles-part-2
 
HTML 5実践シリーズ