私はCSSでこのレイアウトを実現しようとしています(テーブルなしで、私は推測します。何でも)。何か案は?
3086 次
3 に答える
4
Vertical-align:middle
両方とも
于 2010-11-19T00:48:48.823 に答える
1
できることはいくつかありますが、それは問題の詳細によって異なります。いくつかの質問:
- 写真は常に同じ高さですか?
- テキストは常に1行だけですか、それとも複数行で折り返される可能性がありますか?
- テキストはレベル要素ですか
block
?inline
写真が常に同じ高さで、テキストが1行しかない場合はline-height
、テキストのを写真のサイズと同じに設定してから、写真をに設定できfloat:left
ます。
複数行のテキストがある可能性がある場合は、inline-block
要素を使用し、javascriptを使用して上部マージンを計算する必要があります。
編集:残念ながら、ブロックレベルの要素では垂直方向の中央揃えが許可されていないため、CSSだけを使用してこれを行うことはできません。これは、任意の長さのテキストdiv
と任意のサイズの写真で機能する例です:http: //jsfiddle.net/W7b4U/39/
HTML
<img src="http://placehold.it/100x150">
<div class="align">align this align this align this align this align this align this align this align this align this align this align this align this align this align this align this </div>
CSS
img {float: left;}
Javascript / JQuery
$(document).ready(function() {
var $text = $('.align');
var $img = $('img');
var margin = ($img.outerHeight() - $text.outerHeight()) / 2;
var textPadding = 10;
$text.css({marginTop: margin, marginLeft: $img.outerWidth() + textPadding});
});
于 2010-11-19T00:55:33.030 に答える
1
テーブルとセルのCSS属性を確認します(特に、内容が垂直方向と水平方向の中央に配置されている単一のセルを持つテーブルの基本的な場合)。
于 2011-03-08T20:23:44.233 に答える