2017-08-07 3 views
1

私の背景画像は画像です、私はそれをテキストにクリップします。しかし、私は背景が白であることを望んでいません。どうやって色を変えることができますか?バックグラウンドイメージをテキストにクリップすると、バックグラウンドにどのように色を追加できますか?

*{ 
 
    padding:0; 
 
    margin:0; 
 
} 
 
/*Centering*/ 
 
html,body{ 
 
    height:100%; 
 
    overflow:hidden; 
 
} 
 
.box{ 
 
    height:100%; 
 
    display:flex; 
 
    justify-content:center; 
 
    align-items:center; 
 
} 
 
/*Clip text*/ 
 
.item{ 
 
    font-size:250px; 
 
} 
 
.box{ 
 
    background: url('https://media.timeout.com/images/103444978/image.jpg') repeat; 
 
    color:#21537a;/*text color for nonwebkit*/ 
 
    -webkit-text-fill-color: transparent; 
 
    background-size:cover; 
 
    -webkit-background-clip:text; 
 
    
 
}
<div class='box'> 
 
    <div class='item'>NYC</div> 
 
</div>

My project on Code Pen

私はこのテクニックhereを見つけました。

答えて

2

単にこのように、あなたのCSSでHTML &体に背景色を追加します。

*{ 
 
    padding:0; 
 
    margin:0; 
 
} 
 
/*Centering*/ 
 
html,body{ 
 
    height:100%; 
 
    overflow:hidden; 
 
    background-color: red; 
 
} 
 
.box{ 
 
    height:100%; 
 
    display:flex; 
 
    justify-content:center; 
 
    align-items:center; 
 
} 
 
/*Clip text*/ 
 
.item{ 
 
    font-size:250px; 
 
} 
 
.box{ 
 
    background: url('https://media.timeout.com/images/103444978/image.jpg') repeat; 
 
    color:#21537a;/*text color for nonwebkit*/ 
 
    -webkit-text-fill-color: transparent; 
 
    background-size:cover; 
 
    -webkit-background-clip:text; 
 
    
 
}
<div class='box'> 
 
    <div class='item'>NYC</div> 
 
</div>

html, body { 
    background-color: red; 
} 

ここでは、その結果を見ることができる完全なコードスニペットは、です

+1

なぜそれがそのように動作しますか?ボックス色ではなくhtmlに背景色を追加する。 – user132522

+1

'-webkit-background-clip'プロパティを' text'に設定するとバックグラウンドプロパティがテキストに追加されるので、ボックスクラスに背景色を追加することはできません。 'background'と' background-color'プロパティはボックスクラスはボックスクラスのテキストにのみ適用され、divの全領域には適用されません。これは、 "NYC"テキストが派手な背景を持っているが、バックグラウンドがテキストにクリッピングされた 'background'プロパティからの提供されたURLからのものであるので、div全体はそうではありません。 –

2

フォールバックのデフォルトとして背景色を設定するだけで済みます。

*{ 
 
    padding:0; 
 
    margin:0; 
 
} 
 
/*Centering*/ 
 
html,body{ 
 
    height:100%; 
 
    overflow:hidden; 
 
    background-color:yellow; /* Default background color */ 
 
} 
 
.box{ 
 
    height:100%; 
 
    display:flex; 
 
    justify-content:center; 
 
    align-items:center; 
 
} 
 
/*Clip text*/ 
 
.item{ 
 
    font-size:250px; 
 
} 
 
.box{ 
 
    background: url('https://media.timeout.com/images/103444978/image.jpg') repeat; 
 
    color:#21537a;/*text color for nonwebkit*/ 
 
    -webkit-text-fill-color: transparent; 
 
    background-size:cover; 
 
    -webkit-background-clip:text; 
 
    
 
}
<div class='box'> 
 
    <div class='item'>NYC</div> 
 
</div>