私はDIVを持っていて、背景としてパターンを入れたいのですが。この模様は灰色です。なので、もう少し素敵にするために、私は透明な色の「レイヤー」を重ねたいと思います。以下は私が試したがうまくいかなかったものです。背景画像の上に着色層を重ねる方法はありますか?
これが私のCSSです:
background: url('../img/bg/diagonalnoise.png');
background-color: rgba(248, 247, 216, 0.7);
ここにあります:
.background {
background:url('../img/bg/diagonalnoise.png');
position: relative;
}
.layer {
background-color: rgba(248, 247, 216, 0.7);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
このためのHTML:
<div class="background">
<div class="layer">
</div>
</div>
内部に他の要素がない場合はもちろん、.background
クラスに幅と高さを定義する必要があります。
私はこれが本当に古いスレッドであることを知っています、しかしそれはグーグルのトップに現れるので、ここに別の選択肢があります。
これは純粋なCSSであり、追加のHTMLを必要としません。
box-shadow: inset 0 0 0 1000px rgba(0,0,0,.2);
ボックスシャドウ機能には驚くほど多くの用途があります。
CSS-Tricksから... z-indexを作成して擬似要素を追加せずにこれを実行するための1ステップの方法があります。
.tinted-image {
background-image:
/* top, transparent red */
linear-gradient(
rgba(255, 0, 0, 0.45),
rgba(255, 0, 0, 0.45)
),
/* your image */
url(image.jpg);
}
線形グラデーションと画像を使用することもできます。 http://codepen.io/anon/pen/RPweox
.background{
background: linear-gradient(rgba(0,0,0,.5), rgba(0,0,0,.5)),
url('http://www.imageurl.com');
}
これは、線形グラデーション関数が背景スタックに追加されるImageを作成するためです。 https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient
次に、bg画像とその中のbg色のcontent要素を含むラッピング要素が必要です。
<div id="Wrapper">
<div id="Content">
<!-- content here -->
</div>
</div>
そしてcss:
#Wrapper{
background:url(../img/bg/diagonalnoise.png);
width:300px;
height:300px;
}
#Content{
background-color:rgba(248,247,216,0.7);
width:100%;
height:100%;
}
これを試して。私のために働きます。
.background {
background-image: url(images/images.jpg);
display: block;
position: relative;
}
.background::after {
content: "";
background: rgba(45, 88, 35, 0.7);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
}
.background > * {
z-index: 10;
}
画像のカラープロファイルを制御できないときに、動的なオーバーレイテキストを読みやすくするためにスタイルを簡単にするために、色合いとグラデーションを画像に適用する方法としてこれを使用しました。あなたはz-indexについて心配する必要はありません。
HTML
<div class="background-image"></div>
SASS
.background-image {
background: url('../img/bg/diagonalnoise.png') repeat;
&:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(248, 247, 216, 0.7);
}
}
CSS
.background-image {
background: url('../img/bg/diagonalnoise.png') repeat;
}
.background-image:before {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
background: rgba(248, 247, 216, 0.7);
}
それが役に立てば幸い
考えられる解決策の包括的な概要については、 https://stackoverflow.com/a/18471979/193494 で私の答えを参照してください。
なぜそんなに複雑なのですか?パターンを透明にし、背景色を単色にするにするのがより簡単な方法を除いて、あなたの解決策はほとんど正しかった。 PNGには透明部分を含めることができます。そのため、レイヤーを70%に設定して画像を再保存することで、フォトショップを使用してパターンを透明にします。それならあなたはただ一つのセレクターを必要とします。クロスブラウザで動作します。
CSS:
.background {
background: url('../img/bg/diagonalnoise.png');/* transparent png image*/
background-color: rgb(248, 247, 216);
}
HTML:
<div class="background">
...
</div>
これが基本です。使用例は、background
からbackground-image
に切り替えたところですが、両方のプロパティは同じように機能します。
body { margin: 0; }
div {
height: 110px !important;
padding: 1em;
text-transform: uppercase;
font-family: Arial, Helvetica, sans-serif;
font-weight: 600;
color: white;
text-shadow: 0 0 2px #333;
}
.background {
background-image: url('https://www.transparenttextures.com/patterns/arabesque.png');/* transparent png image */
}
.col-one {
background-color: rgb(255, 255, 0);
}
.col-two {
background-color: rgb(0, 255, 255);
}
.col-three {
background-color: rgb(0, 255, 0);
}
<div class="background col-one">
1. Background
</div>
<div class="background col-two">
2. Background
</div>
<div class="background col-three">
3. Background
</div>
あなたは半透明なピクセルを使うことができます、そしてそれはあなたがbase64の中でさえ、例えば here を生成することができますこれは白50%の例です:
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=),
url(../img/leftpanel/intro1.png);
background-size: cover, cover;
アップロードせずに
追加のHTMLなし
ローディングはボックスシャドーやリニアグラデーションより速いはずです
これはcssだけを使ったもっと簡単なトリックです。
<div class="background"> </div>
<style>
.background {
position:relative;
height:50px;
background-color: rgba(248, 247, 216, 0.7);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJElEQVQYV2NctWrVfwYkEBYWxojMZ6SDAmT7QGx0K1EcRBsFAADeG/3M/HteAAAAAElFTkSuQmCC);
}
.background:after {
content:" ";
background-color:inherit;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>