8

このようなものを CSS/CSS3 または javascript だけで取得することは可能ですか? しかし、テキストの画像はありません。

ここに画像の説明を入力

4

2 に答える 2

4

古いブラウザのサポートが限られているため、テキスト クリッピングを使用してこれを実現できます。

このhtmlの場合:

<div class="filter">
<div class="base">SOME TEXT</div>
</div>

そのCSSで:

.filter {
    width: 250px;
    height: 250px;
    background: -webkit-linear-gradient(-45deg, black 0%,black 50%,white 51%,white 100%);
}
.base {
    width: 100%;
    height: 100%;
    font-size: 80px;
    background: -webkit-linear-gradient(-45deg, white 0%,white 50%,black 51%,black 100%);
    -webkit-background-clip: text;
    color: transparent;
}

ベース (最初の div の反転色) から背景を取得して、テキストのみを表示します。

Webkit デモ

編集

単一の要素で実行できることがわかりました。スタイルは次のようになります。

.base {
    width: 100%;
    height: 100%;
    font-size: 80px;
    background: -webkit-linear-gradient(-45deg, white 0%,white 50%,black 51%,black 100%), -webkit-linear-gradient(-45deg, black 0%,black 50%,white 51%,white 100%);
    -webkit-background-clip: text, border;
    color: transparent;
}
于 2013-04-22T18:24:57.500 に答える
2

CSS でこれを実現するには、グラデーションを使用する必要があります。1 つは背景用、もう 1 つはテキスト用で、グラデーションは一定になります。それらを生成するには、これを参照してください: http://www.colorzilla.com/gradient-editor/これを生成するには:

    background: #000000; /* Old browsers */
background: -moz-linear-gradient(-45deg,  #000000 0%, #000000 50%, #ffffff 51%, #ffffff 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#000000), color-stop(50%,#000000), color-stop(51%,#ffffff), color-stop(100%,#ffffff)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(-45deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* IE10+ */
background: linear-gradient(135deg,  #000000 0%,#000000 50%,#ffffff 51%,#ffffff 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */

それでも直面する主な問題は、テキストの色を反対にするために背景画像を「検出」できないことです。

背景を検出したい場合は、Webkit -webkit-background-composite を調べることができます。これには、複合効果用の XOR と plus-darker と plus-lighter があります。

お役に立てれば。

于 2013-04-22T11:42:28.720 に答える