2017-01-13 2 views
1

divタグ内のウェブページの中央にテキストがありますが、実際には中間にはありませんが、中間に必要ですデフォルトではクリックすると、中央のテキストが変更されるボタンがあります。問題は、テキストを変更したときに、それがもう中央にないことです。私が欲しいのは、テキストはテキストの内容にかかわらず常に中央にあるべきです。あなたはtext-align: centerプロパティを使用する必要がCSS、HTML、divにテキストを関係なくdivの中央に残す

$("#myButton").on('click', function() { 
 
    $('#throbber_status_info').html('TEXXXXXXXXXXXXXT'); 
 
});
#throbber_status_info { 
 
    position: absolute; 
 
    color: black; 
 
    top: 53%; 
 
    left: 50%; 
 
    margin: 0px auto; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="myButton"> 
 
    click me 
 
</button> 
 
<div id="throbber_status_info" style="">Text</div>

+0

本当に絶対配置する必要がありますか? –

+0

はい、絶対に配置する必要があります – Rocky

+0

@Reymarkリンクされた複製を確認してください - 受け入れられた答えは、可変幅の絶対配置された要素を中央に配置するのに必要な正確なCSSスタイルの概要です。 – Serlite

答えて

0

div絶対位置が、あなたがそのように必要がある場合は、この方法を試してください。

#throbber_status_info { 
    color: black; 
    position: absolute; 
    left: 50%; 
    transform: translateX(-50%); 
    background-color: #dadada; 
    margin: 0px auto; 
    top: 53%; 
    text-align: center; 
} 

をここで参照するにはFiddleですそれは行動している。

+0

ありがとう、これは私が探しているものです:) – Rocky

2

、それは自動的に更新スニペットを参照してくださいあなたのためにそれを行うだろう:あなたが使用することができます

$("#myButton").on('click', function() { 
 
    $('#throbber_status_info').html('TEXXXXXXXXXXXXXT'); 
 
});
#throbber_status_info { 
 
    position:absolute; 
 
    color:black; 
 
    top:53%; 
 
    width: 100%; 
 
    text-align: center; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="myButton"> 
 
    click me 
 
</button> 
 
<div id="throbber_status_info" style="">Text</div>

+0

目的は、テキストも垂直方向に中央に配置することです。 – KCarnaille

+0

@KCailaille 'vertical-align:middle;'プロパティを使うことができます。 –

+0

テーブルレイアウトや表示:インラインブロックプロパティでのみ動作します。ここでの目的は、水平/垂直方向に絶対divを配置することです! – KCarnaille

1

display:flex;

https://jsfiddle.net/wnqd85qr/1/

フレックスボックスを使用すると、水平と垂直の水平を簡単に調整できます。しかし、あなたはあなたのCSSコードの高さやそれが動作しないことが必要です。ここで

あなたはフレキシボックスの詳細を学ぶことができます:私は持っていないことを好む http://flexboxfroggy.com/

+0

このおかげで、:)、その大きな助け – Rocky

1

あなたはjQueryのを使用して動的にleftプロパティを変更したい場合は、コーディングすることができます。もちろん

$("#myButton").on('click', function() { 
    $('#throbber_status_info').html('TEXXXXXXXXXXXXXT').css('left', function() { 
    var tw = $(this).width(); 
    var w = $(this.parentNode).width(); 
    return (50 - (tw/2/w * 100)) + '%'; 
    }); 
}); 

を、これはあなたが持っている唯一の選択肢ではないと、このアプローチはleft財産すなわち、応答しませんサイズ変更イベントで更新する必要があります。 jQueryのを使用

https://jsfiddle.net/Lommba8s/

1

テキストを中央揃えする関数を作成することができます。

$("#myButton").on('click',function(){ 
    $('#throbber_status_info').html('TEXXXXXXXXXXXXXT'); 
    centerMe('#throbber_status_info'); 

}); 
function centerMe(JQ_Selector){ 
    var medItemWidth = $(JQ_Selector).width()/2; 
    var medWindWidth = $(window).width()/2; 
    $(JQ_Selector).css('left', (medWindWidth - medItemWidth) + 'px'); 
} 

JSFiddleを参照してください。 https://jsfiddle.net/99s400nw

+0

あなたは決して* * JavaScriptを使用して要素を中央に配置します。それは著しく遅く動作することができます。もっと重要なのは、ウィンドウのサイズが変わるたびに、適切なポジション**を再計算する必要があることです! –

関連する問題