CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のようになります。

要件.png

この要件を確認した後の最初の反応は、CSS3 の不透明度を使用して要素の透明度を設定することです。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <meta http-equiv="X-UA-compatible" content="ie=edge">
    <title>透明な背景、透明なテキスト</title>
    <スタイル>
        * {
            パディング: 0;
            マージン: 0;
        }

        。容器 {
            幅: 600ピクセル;
            高さ: 400px;
            背景: url('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') 繰り返しなし;
            背景サイズ: カバー;
            -webkit-background-size: カバー;
            -o-background-size: カバー;
            背景位置: 中央 0;
        }

        .デモ{
            位置: 絶対;
            幅: 260ピクセル;
            高さ: 60px;
            上: 260px;
            行の高さ: 60px;
            テキスト配置: 中央;
            背景色: 黒;
            不透明度: 0.5;
        }

        .demo p {
            色: #FFF;
            フォントサイズ: 18px;
            フォントの太さ: 600;
        }
    </スタイル>
</head>

<本文>
    <div class="コンテナ">
        <div class="demo">
            <p>2018年ワールドカップ開幕まであと10日</p>
        </div>
    </div>
</本文>

</html>

効果は以下のとおりです。

背景は透明で、テキストも透明です。png

これはニーズを満たしているように見えますが、完璧ではありません。不透明度を設定すると、要素全体が半透明になり、テキストがぼやけて表示されます。この解決策はお勧めできません。

実際、不透明度を設定することは、CSS で透明性を実現する唯一の方法ではありません。他に 2 つのタイプがあります:

  • CSS3 の rgba(赤、緑、青、アルファ)、アルファの値の範囲は 0 から 1 です (例: rgba(255,255,255,0.8))
  • IE 専用フィルター filter:Alpha(opacity=x)、x の値は 0 から 100 の範囲です (例: filter:Alpha(opacity=80))

ここでは RGBA を設定する方法を使用します。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <meta http-equiv="X-UA-compatible" content="ie=edge">
    <title>背景は透明、テキストは不透明</title>
    <スタイル>
        * {
            パディング: 0;
            マージン: 0;
        }

        。容器 {
            幅: 600ピクセル;
            高さ: 400px;
            背景: url('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') 繰り返しなし;
            背景サイズ: カバー;
            -webkit-background-size: カバー;
            -o-background-size: カバー;
            背景位置: 中央 0;
        }

        .デモ{
            位置: 絶対;
            幅: 260ピクセル;
            高さ: 60px;
            上: 260px;
            行の高さ: 60px;
            テキスト配置: 中央;
            背景色: rgba(0,0,0,0.5);
        }

        .demo p {
            色: #FFF;
            フォントサイズ: 18px;
            フォントの太さ: 600;
        }
    </スタイル>
</head>

<本文>
    <div class="コンテナ">
        <div class="demo">
            <p>2018年ワールドカップ開幕まであと10日</p>
        </div>
    </div>
</本文>
</html>

効果は以下のとおりです。

背景は透明、テキストは不透明.png

この設定を行うと、テキストがより鮮明に表示されます。

まとめ

実は、この要件を満たす方法は 1 つだけではありません。同じ位置に 2 つの DIV を使用し、1 つを半透明の背景の DIV、もう 1 つをテキストの DIV にすることもできます。この方法でも問題を解決できますが、絶対位置または負のマージン、および空のコンテンツを含む DIV が必要です。この方法は、次の例に示すように、一部のシナリオでは少し複雑に見える場合があります。そのため、実際の需要シナリオで具体的な問題を分析する必要があります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  Docker-compose チュートリアルのインストールとクイックスタート

>>:  ウェブページ要素の完全な分析

推薦する

リモートDockerを使用した統合テスト環境の構築手順

需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...

XHTML: フレーム構造タグ

フレーム構造タグ <frameset></frameset>フレームを使用す...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

シンプルなナビゲーションバー機能を実現するHTML+CSS

さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...

Windows で MySQL のルート パスワードをリセットする方法

今日、WordPress がデータベースに接続できないことがわかりました。ウィンドウ サーバーにログ...

altとtitleの違いの詳しい説明

これら 2 つの属性はよく使用されますが、その違いはまとめられていません。それでは、その使い方をまと...

MySQLのジョイントクエリについて詳しく説明します

目次ユニオンクエリ1. 中国の各省のIDと名前を照会する2. 湖南省のすべての地級市のIDと名称3....

間違った MySQL コマンドをキャンセルしたい場合はどうすればいいですか?

間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

ホストサービスにアクセスするDockerでのサービスの実装

目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...

マウスがカード上に移動したときにフローティング効果を実現する CSS の使用例

原理ホバーしたときに要素に影を設定します: box-shadow で、通常とは異なるスタイルにします...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複...

JavaScript インタビュー: 配列の平坦化メソッドを実装する方法

目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...