[HTML & CSS General] CSS: div 背景に透過画像をしく(背景以外は透過させない)

opacity を使うと背景以外の div 内包物も透過されてしまう。

こちらをつかうと、スッキリ書ける。

Sass mixin にするとこんな書き方でよいだろうか。
背景を z-index: -1 することによって、その他の内包要素には影響を与えないようにしている。

@mixin bg-opacity($background, $opacity) {
  display: block;
  position: relative;
  &:after {
    content: "";
    background: url($background) repeat-y left top;
    opacity: $opacity;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    position: absolute;
    z-index: -1;
  }
}

使いたいところでこんな形。

@include bg-opacity("/img/menu-bg.png", 0.7);

ふむふむなるほど。

が、IE 7,8 はダメですね。
(IE 8 … 透過にならない / IE 7 … 画像が表示されない)
コメント欄の情報ではこんな対応状況のよう。

Known support: Firefox 3.5+, Opera 10+, Safari 4+, Chrome 4+, IE 9+

分かりやすいサンプルなのに実用できないのか。
CSS はこういうのが多すぎるよな。。。