私は次のHTMLを持っています:
<a href="#" class="home-block" style="background-color:#464646; background-image:url('wardrobe.jpg')">Wardrobe</a>
<a href="#" class="home-block" style="background-color:#6a0d1f; background-image:url('wine.jpg')">Wine</a>
<a href="#" class="home-block" style="background-color:#291407; background-image:url('coffee.jpg')">Coffee</a>
関連する CSS は次のとおりです。
.home-block {
background-color: #c2b89c; display: block; height: 180px; line-height:180px;
text-align: center; font-size: 70px; color:#e2e2e2;
text-shadow: 2px 2px 0 #444; margin-bottom: 20px; background-size: cover;
background-position: center center; box-shadow: 1px 1px 4px #111;
}
私の結果は次のようになります。
それは問題ありませんが、私が本当に望んでいるのは、ブロックが単色になり、ホバー時にのみ画像が表示されることです。そのようです:
レスポンシブ デザインを使用しているため、画面サイズによってブロックのサイズと縦横比が異なることに注意してください。それが私が使用している理由ですbackground-size: cover
。また、これはCMSシステム用なので、画像と色をHTMLにインラインで設定して、編集しやすく、ブロックを追加できるようにしたい.
したがって、これを実現するには、基本的に絶対配置要素のないクリーンなソリューションが必要です (幅が固定されていないと破損する傾向があるため)。
私が試したのはこれです:
.home-block { background: none; }
.home-block:hover { background: inherit }
しかし、成功しませんでした。jQuery のいくつかの行でこれらすべてを修正しようとしていましたが、これを実現するための純粋な CSS の方法がないかどうかをすぐに確認したかっただけです。