2016-07-20 15 views
1

divには画像が含まれ、別のdivにはテキストが含まれています。イメージは背景イメージとして機能します(理由はいくつかありますが、私はbackground-imageプロパティでそれをやりたいのですが)。内側divのテキストは、外側のdivに垂直に中央に配置する必要があります。別のdiv +画像内の垂直中心div

アウターdivは、細いデバイスで応答する動作のためにwidth: 100%です。 (!)私は変更する必要がhttps://jsfiddle.net/wLo80jdh/

一つのことは、それを伸ばすにないためにautoへの画像のheightを設定することです:あなたがここに見ることができるよう

私のアプローチは動作します。しかし、私はheight: autoを設定した場合、あなたがここに見ることができるように、その後、内側divのテキストを縦にもうセンタリングされていません。https://jsfiddle.net/wLo80jdh/1/

私の質問はありません:私はautoに高さを設定するにはどうすればよい(無延伸画像)+縦方向にセンタリングテキスト?

+0

このようにしますか? https://jsfiddle.net/victor_007/wLo80jdh/2/ –

答えて

1

私はあなたがいじるフォークやニーズに合わせてそれを調整しました。私はそのためにflexboxを使用しました https://jsfiddle.net/x9u0dxm8/

+0

素晴らしい解決策。他の提供されたソリューションも動作するようですが、あなたの解決策では、 'inner1'クラスは完全な高さを持っています。ホバー効果が動作するために必要です(ホバー効果は単純化されたjsfiddleの例ではありません)。 – beta

+0

大丈夫です。それがあなたに一番合うなら、あなたは答えとしてそれを受け入れることができます –

0

.outer .inner1から絶対位置を削除し、.outer .textに設定しても、そのクラスにこれを追加します。

top: 50%; 
transform: translateY(-50%); 

更新

あなたは.inner1は、高さがposition:absoluteを残し、それからdisplay:tableを削除したい場合は。

全文はここ(更新)の例https://jsfiddle.net/wLo80jdh/5/

+0

素晴らしい答え。私にもう一つ物事を聞かせてください。なぜあなたの例で '.outer .inner1'の高さが0であるのですか(私はブラウザツールでそれを調べます)?私はそれに 'ホバー(hover) '効果があるので、サイズを持つ必要があります(フィドルは単純な例です)。 – beta

+0

私の答えを見てください。 '.outer .inner1'は正しい高さを持っています。 –

+0

その場合、 '.inner1'の絶対位置を残して' display:table'を削除してください。新しいjsfiddleで更新された答えをご覧ください – jakob

関連する問題