22

ボックスを別のボックス内で垂直方向の中央に配置しようとしています。これを実行できる css があることは知っていますが、より信頼性の高い (?) jquery を使用したいと思います。

var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);

$(".Text").css({
    marginTop: 'vertAlign'
});

私が見逃している詳細がわからない。出力は、使用可能な垂直方向のスペースの半分 (ピクセル単位) である必要があります。

編集

もともと、テキスト ブロックは div に含まれるスパンでした。div には設定された高さ (この場合は 140 ピクセル) があり、テキスト ブロック (スパン) は、含まれるテキストの量に基づいて可変の高さになります。ただし、このテキスト ブロックを編集可能にする必要があります。ということでテキストエリアに変更。ただし、テキスト領域のサイズの動作はぎこちなく、静的な高さと幅を設定する必要がありました。現在、このテキスト ブロックの高さは可変ではないため、マージンと上部の間隔を導出する親との間に高さの違いはありません。私は何をすべきか?

4

3 に答える 3

36

周囲の引用符を削除vertAlign

$(".Text").css('margin-top', vertAlign);

上記のコードを試してください。それはあなたを助ける必要があります。

于 2011-05-12T04:59:34.777 に答える
10

オプションで、複数のスタイルを実行したい場合:

var styles = {'margin-top':vertAlign,'property':100,'property':somevalue}
$(".Text").css(styles);
于 2011-05-12T05:06:45.830 に答える
2
var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);
$(".Text").css({
        margin-top: vertAlign + 'px'
    });

単位を指定する必要があります。そうしないと、ブラウザーは、ピクセル、em、リンゴのいずれが必要かを判断できなくなりますvertAlign

于 2011-05-12T05:11:31.853 に答える