CSSのbackground-colorとbackground-imgを同時に使って、背景画像を暗くする設定

要素の背景画像の上に、文字を配置したときに、その文字を読みやすくするために、CSSで黒の半透明マスク処理をして、 背景画像を暗くしましたが、この設定が意外と手間が必要でした。

困った点は3つ

まず、単に、background-color と background-img を併用しても、背景画像が暗くなりません。これは、背景画像の下に、background-color の色が潜り込んでしまうのが原因。

これだと、:before の擬似要素を使って、背景画像の上に半透明の黒い色を配置できます。ただし、画像の上に配置した文字まで、暗くなってしまいます。これが困った2つ目の点。

そこで見つけたのが、こちらの情報。感謝です。

これを解決するために、上の情報を参考に、CSSを工夫したのですが、すると次に困った(3つ目)のが、display abslute を指定するために、要素の高さが成り行きでは無効になってしまい、次の要素と重なってしまいます。

これについては、要素の高さを直接、CSSに heightで指定して解決しました。パソコン表示と、スマートフォン表示のときでは、要素の高さが変わるので、メディアクエリの条件分岐を行い、指定する高さを切り替えています。

講座開催 ご案内
広告

この記事を書いた人

ものくろ(Webコーチ)

株式会社あみだす 代表取締役 / 博士課程中退(農学) / ブロガー / Web&Blogコーチ / 親指シフト orzレイアウト開発者 / 講師 / フリーランス / 旅人 / 民事裁判経験者 / 毎月どこかに出張

ブログは月間65万PVを記録(2016年1月)。 これまでに250回を超えるワークショップ開催・のべ1,200名のブログサポートに携わる。

WordPressが得意 / 好きなもの(無刻印キーボード・十割蕎麦・湯葉)/ あまり好みでないもの(ブロッコリー・値切り)

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします