【filterプロパティ】CSSで背景画像にぼかし(ブラー)を入れる方法

HTML&CSS

CSSで背景画像にぼかし(ブラー)を入れる方法

こんにちは。今日は「背景画像にぼかしを入れる方法」について書きます!

普段はあらかじめぼかしが入った状態でスライスするのが主ですが、最近実務で諸事情でCSSで設定しなければならなかったので調べてみました!

余談ですが、ぼかしのことを「ブラー」というのも今回初めて知りました(°_°)

あと、応用としてついでにその上に黒のオーバーレイをつける方法も書きます。

今回のイメージとしては、こんな感じです。またまた可愛い猫ちゃんの写真です笑

ではさっそくみていきましょうー!

 

コード

HTML編

      <section class="contSect">
        <div class="inner">
          <div class="sectInner">
            <h2 class="sectTit">見出し</h2>
            <div class="sectMain">
              <p>内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。</p>
            </div>
          </div>
          <!-- /.sectInner -->
        </div>
      </section>
      <!-- /.contSect -->

 

CSS編

.contSect {
  position: relative;
  z-index: 0;
  overflow: hidden;
  color: #fff;
  background: url(../images/cont_bg01.jpg) no-repeat center top/cover;
}

.contSect:before {
  position: absolute;
  content: '';
  display: block;
  background: inherit; //必要
  filter: blur(5px);
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
  z-index: -1;
}

.contSect .sectInner {
  position: relative;
  box-sizing: border-box;
  z-index: 2;
  max-width: 765px; //デザインに合わせる
  min-height: 350px; //デザインの画像の高さに合わせる
  margin: 0 auto;
  padding: 100px 0; //デザインに合わせる
}

【.sectInner】の余白に関しては適当にしています。
※【.sectMain】の余白設定は省略しています。

ぼやけさせる効果があるのが【filter: blur(5px);】の部分です。

 

普通に設定するだけだと外側に近い部分までぼやけてしまうのでtopなどブラー分マイナスの位置にして、【.contSect】に【overflow: hidden;】をかけて、はみ出した部分をきれいに切り取るようにしています。

 

応用として、このままでは文字がみづらいのでさらに黒いオーバーレイを重ねます。

そのCSSは【.contSect】の擬似要素afterでつくります。

.contSect:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  content: "";
  background: rgba(0, 0, 0, 0.4);
}

すると、このように黒背景が付きます^^


では今日はここまで〜〜

コメント

タイトルとURLをコピーしました