CSSを使用してテキストまたは画像の背景を透明にするにはどうすればよいですか?


2283

CSSのみを使用して、 background、要素のを半透明にし、要素のコンテンツ(テキストと画像)を不透明にすることはできますか?

テキストと背景を2つの別個の要素として使用せずに、これを実現したいと考えています。

しようとすると:

p {
  position: absolute;
  background-color: green;
  filter: alpha(opacity=60);
  opacity: 0.6;
}

span {
  color: white;
  filter: alpha(opacity=100);
  opacity: 1;
}
<p>
  <span>Hello world</span>
</p>

子要素は親の不透明度の影響を受けているように見えるため、親のopacity:1に対して相対的opacity:0.6です。


16
悲しいことに、CSS3は新しいカラーモジュールでこれを修正することを目標としているため、色を述べるときはいつでもアルファ値を指定できます。w3.org/TR/css3-color
meandmycode

71
実際には、子要素の不透明度は親要素の不透明度で乗算され、オーバーライドされません。だから、例えば場合pの不透明度であった.6spanの不透明度であった.5その後、スパン内のテキストの真の不透明度は次のようになり0.3
chharvey、2012年

1
そうだと思いますが、背景が半透明なので、フィルター/不透明度も必要ありません。codepen.io
Stijn Sanders

5
@chharvey opacity:.5opacity:2要素と子要素を定義するとどうなりますか?
アレクサンダー

10
@アレクサンダー、私はあなたがその質問をしてくれてうれしいです。数学的には、子供が不透明度1に戻ると思われますが、CSSopacity:2;無効です。opacityプロパティの値は、包括的範囲[0,1]内にある必要あります。
2014

回答:


2276

半透明のPNG画像を使用するか、CSS 3を使用します。

background-color: rgba(255, 0, 0, 0.5);

css3.info、Opacity 、RGBA、および妥協案(2007-06-03)の記事を次に示します。


<p style="background-color: rgba(255, 0, 0, 0.5);">
  <span>Hello, World!</span>
</p>


86
16進数の色でこれを行うことは可能ですか?#fffのように?
grm '13 / 07/13

35
@grm:W3Cは#RRGGBBAAの16進コード形式の導入を検討しましたが、(さまざまな理由により)採用しないことを決定したため、導入できません。
outis

95
@grm SASSすることができます、background-color: rgba(#000, .5);
ユルゲン・ポール・

2
透明度を使用したい場合、RGBAをサポートするすべてのブラウザが、はるかに直感的なカラーマッピングであるHSLAもサポートすることを指摘する価値があります。IE8は、それをサポートできない唯一の疑似重要なブラウザーであるため、これを禁止して、すべての色にHSL(A)を使用します。
iono 2013年

19
@outis:朗報、#RRGGBBAA がカラーレベル4になりました
BoltClock

476

Firefox 3とSafari 3では、GeorgSchöllyが述べたようにRGBAを使用できます。

あまり知られていないトリックは、グラデーションフィルターを使用してInternet Explorerでも使用できることです。

background-color: rgba(0, 255, 0, 0.5);
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#7F00FF00', EndColorStr='#7F00FF00');

最初の16進数は、色のアルファ値を定義します。

すべてのブラウザーの完全なソリューション:

.alpha60 {
    /* Fallback for web browsers that doesn't support RGBa */
    background: rgb(0, 0, 0) transparent;
    /* RGBa with 0.6 opacity */
    background: rgba(0, 0, 0, 0.6);
    /* For IE 5.5 - 7*/
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);
    /* For IE 8*/
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";
}

これは、RGBaとフィルターを通じて、子要素に影響を与えることなくCSSの背景の透過性からのものですです。

結果のスクリーンショット証明:

これは、次のコードを使用する場合です。

 <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge" >
    <title>An XHTML 1.0 Strict standard template</title>
     <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <style type="text/css" media="all">
         .transparent-background-with-text-and-images-on-top {
             background: rgb(0, 0, 0) transparent;   /* Fallback for web browsers that doesn't support RGBa */
            background: rgba(0, 0, 0, 0.6);   /* RGBa with 0.6 opacity */
             filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);  /* For IE 5.5 - 7*/
            -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";  /* For IE 8*/
         }
     </style>
 </head>

 <body>
     <div class="transparent-background-with-text-and-images-on-top">
         <p>Here some content (text AND images) "on top of the transparent background"</p>
        <img src="http://i.imgur.com/LnnghmF.gif">
     </div>
 </body>
 </html>

Chrome-33 IE11 IE9 IE8


1
しかしIE8ではありません。新しい-ms-filter構文を試しましたが、それでもうまく
いき

5
このIE8でそれを行う方法を示してポスト:robertnyman.com/2010/01/11/...
Slapout

14
@philfreo:セバスチャンのコードの最初のビットを「背景:rgb(0、0、0)transparent;」に変更すると、IE8で動作するはずです。これはかなり長い間私を悩ませていました!
Tom Chantler、2011

filter:progid IE 9で適切に動作します。色は次のとおりです。透明度、赤、緑、青-すべて2桁の16進値。
Thorsten Niehues 2012

1
@AdrienBe-私はあなたの指示に従ってあなたの答えを編集しました。残念ながら、私はしばらくの間、この特定のQ&Aのヘッドスペースから外れていたため、現時点ではこの会話に追加することはできません。
user664833 2014

108

これは、CSS 3を使用せずに思いついた最良のソリューションです。また、Firefox、Chrome、およびInternet Explorerで、私の知る限り、うまく機能します。

コンテナdivと2 つの子をdiv同じレベルに配置します。1つはコンテンツ用、もう1つは背景用です。そして、CSSを使用して、コンテンツに合わせて背景を自動サイズ調整し、z-indexを使用して背景を実際に後ろに配置します。

.container {
  position: relative;
}
.content {
  position: relative;
  color: White;
  z-index: 5;
}
.background {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  background-color: Black;
  z-index: 1;
  /* These three lines are for transparency in all browsers. */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  filter: alpha(opacity=50);
  opacity: .5;
}
<div class="container">
  <div class="content">
    Here is the content.
    <br/>Background should grow to fit.
  </div>
  <div class="background"></div>
</div>


19
彼は「テキストと背景を互いの上に配置された2つの要素に分離せずに」と述べました。とにかく、これは良い修正であり便利ですが、不透明要素を半透明要素の子にしたい場合があります。
Rolf

私は別のSOの質問にほとんど同じ答えが、jsfiddle&スクリーンショット証明(IE7 +)を加え、興味があればこちらをご覧stackoverflow.com/a/21984546/759452
エイドリアンはして

@Gorkem Pacaci:確か不透明度のプロパティは「本当に」クロスブラウザです、あなたはCSSTRICKSのからこのコードスニペットを使用できることを確認しcss-tricks.com/snippets/css/cross-browser-opacity
エイドリアンはして

のような疑似要素でそれを行い:after、余分なマークアップを避けてみませんか?
AndFisher、2016

64

単純な半透明の背景色の場合、上記のソリューション(CSS3またはbg画像)が最適なオプションです。ただし、より洗練された操作(アニメーション、複数の背景など)を実行したい場合、またはCSS3に依存したくない場合は、「ペインテクニック」を試すことができます。

.pane, .pane > .back, .pane > .cont { display: block; }

.pane {
    position: relative;
}

.pane > .back {
    position: absolute;
    width: 100%; height: 100%;
    top: auto; bottom: auto; left: auto; right: auto;
}

.pane > .cont {
    position: relative;
    z-index: 10;
}
<p class="pane">
    <span class="back" style="background-color: green; opacity: 0.6;"></span>
    <span class="cont" style="color: white;">Hello world</span>
</p>

この手法は、外側のペイン要素の内側に2つの「レイヤー」を使用することで機能します。

  • コンテンツのフローに影響を与えずにペイン要素のサイズに適合する1つ(「背面」)
  • 1つ(「cont」)にはコンテンツが含まれ、ペインのサイズを決定するのに役立ちます。

position: relativeペインのは重要です。ペインのサイズに合うようにバックレイヤーに指示します。(<p>タグを絶対にする必要がある場合は、ペインをaからa <p>に変更<span>し、絶対位置<p>タグですべてをラップします。)

この手法が上記の同様の手法よりも優れている主な利点は、ペインのサイズを指定する必要がないことです。上記のコードのように、全幅(通常のブロック要素レイアウト)に収まり、コンテンツと同じ高さになります。外側のペイン要素は、長方形である限り、任意のサイズにすることができます(つまり、インラインブロックは機能しますが、従来のインラインは機能しません)。

また、背景に多くの自由を与えます。バックエレメントに何でも自由に配置でき、コンテンツのフローに影響を与えません(複数のフルサイズのサブレイヤーが必要な場合は、絶対位置、幅/高さ:100%、上部/下部/左/右:自動)。

背景インセットの調整(上/下/左/右による)および/または背景の固定(左/右または上/下のペアの1つを削除することによる)を許可する1つのバリエーションは、代わりに次のCSSを使用することです。

.pane > .back {
    position: absolute;
    width: auto; height: auto;
    top: 0px; bottom: 0px; left: 0px; right: 0px;
}

書かれているように、これはFirefox、Safari、Chrome、IE8 +、Operaで機能しますが、IE7とIE6には追加のCSSと式、IIRCが必要ですが、前回確認したところ、2番目のCSSバリエーションはOperaで機能しません。

注意点:

  • contレイヤー内のフローティング要素は含まれません。それらがクリアされているか、そうでなければ封じ込められていることを確認する必要があります。そうしないと、底から滑り落ちます。
  • マージンはペインエレメントに配置され、パディングはcontエレメントに配置されます。反対(contのマージンまたはペインのパディング)を使用しないでください。そうしないと、ページが常にブラウザーウィンドウよりもわずかに広いなどの奇妙なことがわかります。
  • 前述のように、全体がブロックまたはインラインブロックである必要があります。CSSを簡略化するために、<div>sではなく<span>sを自由に使用してください。

より完全なデモではdisplay: inline-block、と組み合わせて、およびauto&と特定widthのs / min-heights を組み合わせて使用​​することにより、この手法の柔軟性を示しています。

.pane, .pane > .back, .pane > .cont { display: block; }
.pane {
	position: relative;
	width: 175px; min-height: 100px;
	margin: 8px;
}

.pane > .back {
	position: absolute; z-index: 1;
	width: auto; height: auto;
	top: 8px; bottom: 8px; left: 8px; right: 8px;
}

.pane > .cont {
	position: relative; z-index: 10;
}

.debug_red { background: rgba(255, 0, 0, 0.5); border: 1px solid rgba(255, 0, 0, 0.75); }
.debug_green { background: rgba(0, 255, 0, 0.5); border: 1px solid rgba(0, 255, 0, 0.75); }
.debug_blue { background: rgba(0, 0, 255, 0.5); border: 1px solid rgba(0, 0, 255, 0.75); }
<p class="pane debug_blue" style="float: left;">
	<span class="back debug_green"></span>
	<span class="cont debug_red">
		Pane content.<br/>
		Pane content.
	</span>
</p>
<p class="pane debug_blue" style="float: left;">
	<span class="back debug_green"></span>
	<span class="cont debug_red">
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.<br/>
		Pane content.
	</span>
</p>
<p class="pane debug_blue" style="float: left; display: inline-block; width: auto;">
	<span class="back debug_green"></span>
	<span class="cont debug_red">
		Pane content.<br/>
		Pane content.
	</span>
</p>
<p class="pane debug_blue" style="float: left; display: inline-block; width: auto; min-height: auto;">
	<span class="back debug_green"></span>
	<span class="cont debug_red">
		Pane content.<br/>
		Pane content.
	</span>
</p>

そして、これは広範囲に使用されているテクニックのライブデモです:

christmas-card-2009.slippyd.comスクリーンショット


これにCSS3を使用したくない状況はありますか?
Burkely91 2015年

@ Burkely91 CSS3で実行できる場合は、絶対にそれを使用してください。ただし、CSS3の背景は、すべてのタイプのコンテンツや完全なレイアウトの柔軟性をサポートしていません。上記の封筒/手紙の例は、独立して繰り返されるエッジと中央塗りつぶしのため、CSS3で引き出すのが難しいでしょう。また、この回答はもともと5年前、CSS3のサポートが普及する前に書かれたものであることを覚えておいてください。
Slipp D. Thompson

2
@Igor Ivancha変更をロールバックしました。申し訳ありませんが、インデントを私の好みのフォーム(タブ)からあなたのフォーム(2スペース)に変更するのはクールではありません。日常のコードプロジェクトで2スペースインデントを使用するのには十分な理由があるかもしれませんが、Webでのプレゼンテーションの場合、タブには明らかな利点があると思います。タブをスペースに確実に変換することが容易になるため、すべてのリーダーの互換性の高い形式になります。
Slipp D. Thompson 2016

@Igor Ivanchaまた、すべてのCSSセレクターとプロパティを独自の行に配置する美容ツールを介してコードを実行したようです。私の例は、読者が一緒に理解する必要のある断片を論理的にグループ化するために、意図的な改行と間隔で記述されています。たとえば、ほとんどのwidth:height:プロパティは線を共有しています。 1次元の制約のペア。さらに、繰り返しのコンテンツであるため、自慢することはそれほど重要ではないため、一部の行にはかなりの量が詰め込まれています。
Slipp D. Thompson 2016

@Igor Ivancha論理的な編成、グループ化、およびスタイル設定は、あらゆる種類の書き込みと同様に、正常で理解可能なコードを記述するために非常に重要です。加えた変更は、誰かの投稿に行ってすべての段落の区切りを削除し、各文の後に強制改行を挿入することと同じでした。あなたが自分の仕事でその鈍々しい知識を使いたいのであれば、結構です、そうするのは自由です。ただし、他の人の作品のセマンティックな性格や表現を軽視しないでください。
Slipp D. Thompson

58

半透明を使用することをお勧めします.png

ちょうど開く Photoshopを2x2ピクセル画像を作成し(選択1x1するとInternet Explorerのバグが発生する可能性があります!)、緑色で塗りつぶし、[レイヤー]タブの不透明度を60%に設定します。次にそれを保存し、背景画像にします。

<p style="background: url(green.png);">any text</p>

もちろん、素敵なInternet Explorer 6を除いて、それはクールに動作しますます。より良い修正が利用可能ですが、ここに簡単なハックがあります:

p {
    _filter: expression((runtimeStyle.backgroundImage != 'none') ? runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+currentStyle.backgroundImage.split('\"')[1]+', sizingMethod=scale)' : runtimeStyle.filter,runtimeStyle.backgroundImage = 'none');
}

54

マークアップを最小化するコツがあります。背景として疑似要素を使用すると、メイン要素とその子に影響を与えずに不透明度を設定できます。

デモ

出力:

疑似要素による背景の不透明度

関連コード:

p {
  position: relative;
}
p:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  opacity: .6;
  z-index: -1;
}
/*** The following is just for demo styles  ***/

body {
  background: url('http://i.imgur.com/k8BtMvj.jpg') no-repeat;
  background-size: cover;
}
p {
  width: 50%;
  padding: 1em;
  margin: 10% auto;
  font-family: arial, serif;
  color: #000;
}
img {
  display: block;
  max-width: 90%;
  margin: .6em auto;
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a ligula ut nunc dignissim molestie.
  <img src="http://i.imgur.com/hPLqUtN.jpg" alt="" />
</p>

ブラウザーサポートはInternet Explorer 8以降です。


23

最も簡単な方法は、半透明の背景のPNG画像を使用することです。です。

JavaScriptを使用してInternet Explorer 6で動作させることができます必要に応じて。

Internet Explorer 6の透明なPNGで説明されている方法を使用していますます。

それ以外に、あなたは偽のそれが使用して可能性が二つのサイド・バイ・サイド兄弟要素 -メイク1の半透明の、そして絶対にトップの上に他を置きます


2
必要なのは単純な背景色だけです。この色で作成するPNGのサイズを教えてください。(圧縮されたので、[OK]をファイルサイズでなければなりませんが、それでも、それはそれを使用して解凍する必要性をレンダリング)1x1のレンダリングは、あまりにも多くのピクセルを多くの作業を行うようになりますかなり大きなこのPNGを作る...
Stijnサンダース

3
30px x 30pxのようなものをお勧めします。これは、繰り返しをレンダリングするときに1x1よりも少ないメモリを使用し、帯域幅の使用を最小限に抑えるのに十分小さいです。
クリス

21

このメソッドを使用すると、単色だけでなく背景にイメージを配置でき、境界線などの他の属性に透明度を設定できます。透明なPNG画像は必要ありません。

CSSで:before(または:after)を使用し、不透明度の値を指定して、要素を元の不透明度のままにします。したがって、:beforeを使用して偽の要素を作成し、必要な透明な背景(または境界線)を設定して、不透明に保ちたいコンテンツの背後に移動できますz-index

例(フィドル)(DIVwithクラスdadは、コンテキストと色のコントラストを提供するためのものであり、この追加の要素は実際には必要ありません。赤い長方形は、少し下に移動して右に移動し、背景を表示したままにします。fancyBg要素):

<div class="dad">
    <div class="fancyBg">
        Test text that should have solid text color lets see if we can manage it without extra elements
    </div>
</div>

このCSSで:

.dad {
    background: lime; border: 1px double black; margin: 1ex 2ex;
    padding: 0.5ex; position: relative; -k-z-index: 5;
}
.fancyBg {
    border: 1px dashed black; position: relative; color: white; font-weight: bold;
    z-index: 0; /*background: black;*/
}
.fancyBg:before {content:'-'; display: block;
    position: absolute; background: red; opacity: .5;
    top: 2ex; right: -2ex; bottom: -2ex; left: 2ex;
    /*top: 0; right: 0; bottom: 0; left: 0;*/
    z-index: -1;
}

この場合.fancyBg:before、透明性を持たせたいCSSプロパティがあります(この例では赤い背景ですが、画像や境界線でもかまいません)。それを絶対的に後ろに移動するように配置されてい.fancyBgます(ゼロの値またはニーズに適した値を使用してください)。


17

問題は、あなたの例ではテキストが実際完全に不透明であることです。pタグ内は完全に不透明ですが、pタグは半透明です。

CSSで実現する代わりに、半透明のPNG背景画像を追加するか、テキストを分離して2つの要素に分割し、テキストをボックスの上に移動します(たとえば、負のマージン)。

さもなければ、それは不可能です。

Chrisが述べたように:透過性のあるPNGファイルを使用する場合、厄介なInternet Explorerで機能させるにはJavaScriptの回避策を使用する必要があります...


15

これらの回答のほとんどすべてが、デザイナーが無地の背景を望んでいると想定しています。デザイナーが実際に写真を背景として必要とする場合、現時点で唯一の実際の解決策は、他で言及されている jQuery TransifyプラグインのようなJavaScript です。

CSSワーキンググループディスカッションに参加して、background-opacity属性を提供する必要があります。複数の背景機能と連携して動作するはずです。


14

これが私がこれを行う方法です(最適ではないかもしれませんが、うまくいきます):

div半透明にするを作成します。クラス/ IDを指定します。それを残す空にし、それを閉じます。高さと幅を設定します(たとえば、300ピクセルx 300ピクセル)。不透明度を0.5または好きなものにし、背景色を指定します。

次に、そのdivのすぐ下に、別のクラス/ IDを持つ別のdivを作成します。その中にテキストを配置する段落を作成します。得div位置:相対的な、およびトップ:-295px(だと 295個のピクセル)。適切な測定のために、Zインデックスを2に設定し、不透明度が1であることを確認します。段落のスタイルは好みに合わせますが、divオーバーフローしないように、最初の段落よりも小さいサイズにしてください。

それでおしまい。コードは次のとおりです。

.trans {
  opacity: 0.5;
  height: 300px;
  width: 300px;
  background-color: orange;
}
.trans2 {
  opacity: 1;
  position: relative;
  top: -295px;
}
.trans2 p {
  width: 295px;
  color: black;
  font-weight: bold;
}
<body>
  <div class="trans">
  </div>
  <div class="trans2">
    <p>
      text text text
    </p>
  </div>
</body>

これはSafari 2.xで機能しますが、Internet Explorerについては知りません。


余分な要素を回避し、代わりに:beforeまたはのような疑似要素を使用できます:after
frozenkoi

12

すべてを処理するjQueryプラグインがここにあります。Transify(Transify-要素の背景に透明度/不透明度を簡単に適用するためのjQueryプラグインです。です。

私はたまにこの問題に出くわしていたので、人生をもっと楽にするようなものを書くことにしました。このスクリプトは2 KB未満であり、機能させるには1行のコードしか必要ありません。必要に応じて、背景の不透明度のアニメーション化も処理します。




9

あなたがPhotoshopの人なら、あなたも使うことができます:

 #some-element {
  background-color: hsla(170, 50%, 45%, 0.9); // **0.9 is the opacity range from 0 - 1**
 }

または:

#some-element {
  background-color: rgba(170, 190, 45, 0.9); // **0.9 is the opacity range from 0 - 1**
}

8

要素の背景を半透明にするには、要素のコンテンツ(テキストと画像)を不透明にするために、その画像のCSSコードを記述する必要がありopacity、最小値で呼び出される1つの属性を追加する必要があります。

例えば、

.image {
   position: relative;
   background-color: cyan;
   opacity: 0.7;
}

//値が小さいほど透明度が高くなり、値が小さいほど透明度が低くなります。


これは、最新のブラウザでこれを行う1つの方法です。フォールバックとしてrgba値と組み合わせます
Tahir Khalid

はい正解。これは、最新のブラウザーを処理する方法の1つです。
Pushp Singh

「価値が低いほど透明になる」とはどういう意味ですか(理解できないようです)。(必要に応じて、ここでコメントではなく、回答を編集して返信してください。)
Peter Mortensen

7

CSS 3は問題を簡単に解決します。使用する:

background-color:rgba(0, 255, 0, 0.5);

ここで、rgbaは赤、緑、青、およびアルファ値を表します。緑の値は255のため取得され、半透明度は0.5のアルファ値によって取得されます。


これは以前のいくつかの回答とどう違うのですか?
Peter Mortensen


6

背景色:rgba(255、0、0、0.5);上記のように、簡単に言えば最良の答えです。さまざまなブラウザーからのサポートのレベルが反復ごとに変化するため、CSS 3を2013年に使用するとしても簡単ではありません。

ながら background-colorすべての主要なブラウザ(CSS 3に新しくない)[1]によって支持されるアルファ透明度は、注意が必要特にInternet Explorerで以前のバージョン9および以前のバージョン5.1へのSafari上境界線の色を有することができます。[2]

CompassSASSのようなものを使用すると、本番環境とプラットフォーム間での互換性を本当に高めることができます。


[1] W3Schools:CSS background-colorプロパティ

[2] ノーマンのブログ:ブラウザサポートチェックリストCSS3(2012年10月)


4

これは、グラデーション構文を(ab)使用することでInternet Explorer 8で解決できます。カラーフォーマットはARGBです。Sassプリプロセッサを使用している場合は、組み込み関数「ie-hex-str()」を使用して色を変換できます。

background: rgba(0,0,0, 0.5);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#80000000')";

4

純粋なCSS 3:を使用できますrgba(red, green, blue, alpha)alphaは、必要な透明度のレベルです。JavaScriptやjQueryは必要ありません。

次に例を示します。

#item-you-want-to-style{
    background:rgba(192.233, 33, 0.5)
}

3
<div align="center" style="width:100%;height:100%;background:white;opacity:0.5;position:absolute;z-index:1001">
    <img id="search_img" style="margin-top:20%;" src="../resources/images/loading_small.gif">
</div>

http://jsfiddle.net/x2ukko7u/


2

rgba color code以下に示すこの例のようなCSS を使用してそれを行うことができます。

.imgbox img{
  height: 100px;
  width: 200px;
  position: relative;
}
.overlay{
  background: rgba(74, 19, 61, 0.4);
  color: #FFF;
  text-shadow: 0px 2px 5px #000079;
  height: 100px;
  width: 300px;
  position: absolute;
  top: 10%;
  left: 25%;
  padding: 25px;
}
<div class"imgbox">
<img src="http://www.bhmpics.com/wallpapers/little_pony_art-800x480.jpg">
  <div class="overlay">
    <p>This is Simple Text.</p>
  </div>
</div>


1

同じdiv上の画像の上にオーバーレイを配置する簡単な方法があります。このツールの正しい使い方ではありません。しかし、CSSを使用してそのオーバーレイを作成するのは魅力のように機能します。

次のようなインセットシャドウを使用します。

box-shadow: inset 0 0 0 1000px rgba(255, 255, 255, 0.9);

それで全部です :)


1

CSSでRGBA (red, green, blue, alpha)を使用できます。このようなもの:

したがって、このようなことをするだけであなたのケースでうまくいくでしょう:

p {
  position: absolute;
  background-color: rgba(0, 255, 0, 0.6);
}

span {
  color: white;
}

1

私の見解によれば、不透明度のある背景色を使用する最良の方法は以下のとおりです。これを使用すると、テスト色、境界線などの他の要素の不透明度が失われることはありません。

background-color: rgba(71, 158, 0, 0.8);

不透明度のある背景色を使用する

background-color: rgba(R, G, B, Opacity);

ここに画像の説明を入力してください


0

私は通常、このクラスを作業に使用します。かなりいい。

.transparent {
  filter: alpha(opacity=50); /* Internet Explorer */
  -khtml-opacity: 0.5;       /* KHTML and old Safari */
  -moz-opacity: 0.5;         /* Firefox and Netscape */
  opacity: 0.5;              /* Firefox, Safari, and Opera */
}


0

フォーマットを使用するとき、それは私のために働いた#AARRGGBB私のために働い1だったので#1C00ff00。それを試してみてください、私はそれがいくつかのために働いていて、他の誰かのために働いていないのを見ました。CSSで使用しています。


0

16進数値に追加された不透明度値を使用できます。

background-color: #11ffeeaa;

この例でaaは、不透明度です。の不透明度は、00透明でff意味し、無地意味します。

不透明度はオプションであるため、通常どおり16進値を使用できます。

background-color: #11ffee;

古い方法を使用することもできますrgba()

background-color: rgba(117, 190, 218, 0.5);

また、background背景に画像やグラデーションなどの他のスタイルがないことを確認したい場合は、以下のように省略します。

background: #11ffeeaa;

Mozillaの仕様から(https://developer.mozilla.org/en-US/docs/Web/CSS/background-color):

/* Keyword values */
background-color: red;
background-color: indigo;

/* Hexadecimal value */
background-color: #bbff00;    /* Fully opaque */
background-color: #bf0;       /* Fully opaque shorthand */
background-color: #11ffee00;  /* Fully transparent */
background-color: #1fe0;      /* Fully transparent shorthand  */
background-color: #11ffeeff;  /* Fully opaque */
background-color: #1fef;      /* Fully opaque shorthand  */

/* RGB value */
background-color: rgb(255, 255, 128);        /* Fully opaque */
background-color: rgba(117, 190, 218, 0.5);  /* 50% transparent */

/* HSL value */
background-color: hsl(50, 33%, 25%);         /* Fully opaque */
background-color: hsla(50, 33%, 25%, 0.75);  /* 75% transparent */

/* Special keyword values */
background-color: currentcolor;
background-color: transparent;

/* Global values */
background-color: inherit;
background-color: initial;
background-color: unset;

-2

RGB(63、245、0)のカラーコードのような不透明度のあるRGBカラーを使用し、不透明度(63、245、0、0.5など)を追加して、RGBをRGBAに置き換えることができます。A不透明度に使用されます。

div {
  background: rgba(63, 245, 0, 0.5);
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.