2016-04-12 6 views
0

EDITの内部リンクとインラインブロック要素:ここJSBINリンクです:https://jsbin.com/zapuvupato/edit?html,css,js,outputそれはセンターTD

を助け場合、私は必死に要素を中央にしようとしています。 私はテキストの整列を試みました:tdの内側または外側のdivに中心を置きます。 リンクとテキストのスタイルクラスに設定されています。

text-alignが適用されているように見えますが、内側のリンク/テキストだけでなく、インラインブロック全体を中央に揃えることができます。

これを動作させることができない場合は、HTMLボタンの使用を検討しています。

td.TableButtonStyle { 

    display: inline-block; 
    border-radius: 10px; 
    text-align: center; 
    vertical-align: middle; 
    margin-top: 5px; 
    margin-bottom: 5px; 
    margin-left:auto; 
    margin-right:auto; 
    color: white; 
    background-color: rgb(240,80,40); 
    font-weight: bold; 

} 
.TableButtonStyle a 
{ 
    color:white; 
    text-align:center; 
} 

.Bold 
{ 
    font-weight: bold; 
} 

th.thCells{ 
    text-align:center; 
    vertical-align:middle; 
    font-size: 13pt; 
    margin: 0px 5px; 
} 
td.TableCells { 
    text-align:center; 
    vertical-align:middle; 
    font-size: 13pt; 
    padding: 15px 25px; 
    margin: 10px 50px; 
} 
</style> 

<table style = "margin: 10px 0px"> 
    <tr> 
     <th class = "TableCells thCells Bold" style = "padding: 0px 15px">Deduction per Pay Period</th> 
    </tr> 

    <tr> 
     <td id = "button1" class = "TableButtonStyle" style = "font-size: 14pt; padding: 15px 25px"></td> 
    </tr> 

</table> 

<script> 

    var buttonText1 = "<a href=\"javascript: giveButton('"+suggestedAnnualAmt1+"'); onclick:Incr1();\">$"+suggestedAmtPPP1+"</a>"; 

document.getElementById("button1").innerHTML = buttonText1; 

</script> 
+0

HTMLの一部を提供してもよろしいですか? – ntgCleaner

+0

合計幅を考慮してtd(またはtdの内容)を中央に配置しようとしていますか? –

+0

インラインブロックとして表示するように設定されているtdは、表の幅を埋めることはありません。インラインブロックです。それは必要なだけの幅になります。だから、それは*中心に置かれています。あなたのサンプルでは、​​テーブルは最も広い要素(この特定のtd)と同じ幅しかありません。 tdの幅を大きくすると、テーブル幅が大きくなります。 https://jsfiddle.net/NotInUse/tcb7m7nn/ - おそらくあなたは十分なサンプルマークアップを共有していませんか? – Scott

答えて

0

<td>要素をボタンにしないでください。私が強くお勧めするのは、に<td>と同じスタイルを与え、次にTDからスタイルを削除し、<td>text-align:center;に伝えることです。

は、私が何か他のもの(.center-inside

<td id = "button1" class="center-inside" style = "font-size: 14pt; padding: 15px 25px"></td> 

<td>クラスを変更し、ボタンのスタイルを設定するためのCSSを変更する(そして再び、それを大きくするためにいくつかのパディングを追加しました)

td.center-inside { 
    text-align:center 
} 
.TableButtonStyle { 
    display: inline-block; 
    border-radius: 10px; 
    text-align: center; 
    vertical-align: middle; 
    margin-top: 5px; 
    margin-bottom: 5px; 
    margin-left:auto; 
    margin-right:auto; 
    color: white; 
    background-color: rgb(240,80,40); 
    font-weight: bold; 
    padding:20px; 
} 
ました

は、その後、私はJavaScriptであなたのボタンに.TableButtonStyleクラスを追加

var buttonText1 = "<a class='TableButtonStyle' href=\"javascript: giveButton('"+suggestedAnnualAmt1+"'); onclick:Incr1();\">$"+suggestedAmtPPP1+"</a>"; 

https://jsbin.com/mezudaciqi/1/edit?html,css,js,output

+0

これはトリックでした。ありがとうございました。 –

+0

好奇心不満から、私はtdでボタンを使用すべきではないのですか? –

0

あなたtdは、テーブルの幅全体を取っていません。私はあなたの問題を理解するのに間違っているかもしれません。しかし、 "a"をあなたの "td"の中に集中させたいならば。 tdを次のように変更する必要があります(幅を追加するだけです)。

<td id="button1" class="TableButtonStyle" style="font-size: 14pt; padding: 15px 25px; width:100%"> 
+0

をスクロールしないと、インラインブロックがセル全体を占めてしまいます。これは私が望むものではありません。私は50%に幅を設定しようとしましたが、それはまだ整列したままです。 –

+0

その場合、別のdivが必要になります。 TDには100%の値が、divにはあなたのボタンが適切に(必要に応じて)サイズ変更され、次にdiv内にdivがあります。たとえば、これを参照してください: http:// codepen。io/ravish_hacker/pen/WwMWYW これが必要なのかどうか教えてください。私はコードで答えを更新します:) –

+0

これは私を近づけますが、幅を指定することなくそれを行う方法はありますか?私はリンクテキストの長さに基づいて動的なセルのサイズをしたいと思います。ご協力ありがとうございました。 –