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 チュートリアルのインストールとクイックスタート

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

推薦する

Linux yum コマンドを使用して mysql8.0 をインストールする方法の詳細なチュートリアル

1. 設置前によく掃除する rpm -pa | grep mysql または rpm -qa | g...

Vue プロジェクトは、コードの暗号化と難読化を実装するために webpack-obfuscator を設定します。

背景会社のコードは第三者に提供され、利用されます。ソースコードが完全に漏洩しないようにするには、提供...

JavaScriptの構文とコード構造に関する深い理解

目次概要機能性と読みやすさ空白括弧セミコロンインデント身元大文字と小文字を区別予約キーワード概要すべ...

CentOS7 構成 Alibaba Cloud yum ソースメソッドコード

Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...

プロセスごとにネットワーク帯域幅を監視する Linux ツール Nethogs のインストールと展開

概要Linux 用のオープン ソース ネットワーク監視ツールは数多くあります。たとえば、帯域幅の使用...

JavaScript スクリプトが実行されるタイミングの詳細な説明

JavaScript スクリプトは HTML 内のどこにでも埋め込むことができますが、いつ呼び出され...

VMWare に CentOS 7.3 をインストールするグラフィカル チュートリアル

CentOS 7.3のインストール手順を図解しました。具体的な内容は次のとおりです。この記事では、v...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

MySQL テーブルの垂直分割と水平分割

垂直分割垂直分割とは、データテーブルの列を分割すること、つまり、多くの列を持つテーブルを複数のテーブ...

MySQL の pid とソケットの詳細な説明

目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...

DIV+CSS命名規則の詳細な説明はSEO最適化に役立ちます

1. CSSファイルの命名規則提案: 文字、_、-、数字を使用します。文字で始まる必要があり、純粋な...

学生情報管理システムを実装するためのJavaScript+HTML

目次1. はじめに2. レンダリング3. コード4. 学生情報管理システムのメインインターフェース1...

Vueプロジェクトでパラメータジャンプ機能を実装する

ページの説明:​ メインページ: 名前 —> shishengzuotanhuichaxun ...

C++ を使用して MySQL に接続する方法

C++でMySQLに接続する際の参考情報です。具体的な内容は以下のとおりです。 MySQLCon ク...

Linux での Docker のインストールと展開の例

以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...