画像とテキストの両方の高さが可変である場合、純粋なCSSでは特に簡単ではありません。
可変の高さは、前の同様position: absolute
の質問に対する回答のように、に基づいてすべてを除外します。
1つのオプションは、ここに示されている手法を使用することです:http: //tanalin.com/en/articles/css-block-order/
display:table familyのプロパティを使用したCSSテーブル表示を使用して、HTMLページ上のブロックの垂直方向の順序を変更することができます。HTMLコードのブロック順序に関係なく、table-header-group
このようなテーブルのヘッダー()は上部に表示され、フッター(display:
table-footer-group
)は下部に表示され、テーブル本体(table-row-group
)はヘッダーとフッターの間に表示されます。
これは、最近のすべてのブラウザーで機能します。注意が必要な場合は、IE8で機能します。IE6/7では動作しません。
この手法を使用したコードは次のとおりです。http://jsfiddle.net/thirtydot/7hCNC/35/
私は本番Webサイトでこの手法を使用したことがないことを認めなければならないので、徹底的にテストしてください。
CSS3 2D変換をサポートするすべてのブラウザーで機能する別のアプローチは、コンテナー全体を垂直方向に反転してから、「画像」要素と「テキスト」要素に対して同じことを行うことです。CSS3変換をサポートしていないブラウザでも、すべてが機能しますが、「image」要素と「text」要素は元の順序になります。言い換えれば、それはうまく劣化します。を使用してIE6-8でこれを機能させることはおそらく可能ですが、それではfilter
テキストがひどく見えるので、忘れてください。
この手法を使用したコードは次のとおりです。http://jsfiddle.net/thirtydot/7hCNC/36/
これらのCSSメソッドのどれも十分ではない場合は、JavaScriptを使用する必要があります。
ただし、個人的にはHTMLで順序を切り替えることをお勧めします。グーグルがそれを気にかけているとは思えない。この場合、HTMLを「最適な順序」に保つために後ろ向きに曲げても、SEOに意味のある影響があるとは思えません。