2017-08-17 6 views
0

私は外側のdivの中心に置くためにスタイルmargin: 0 auto;のテーブルを持っています。このトリックで、テーブルの幅が変更された場合、テーブルの内容はdivの中心にテーブルを残すために移動されます。これは起こりたくないものです。
css絶対tdのテキストを整列

<p:row> 
    <p:column> 
     <p:outputLabel for="moduleTitle" value="Module Title: " /> 
    </p:column> 
    <p:column colspan="2" style="vertical-align: central; position: absolute;"> 
     <p:outputLabel id="moduleTitle" value="#{classroomBean.classroom.module.moduleTitle}"/> 
    </p:column> 
</p:row> 

1行目は、表の2列目は、動的な値を有しているので、私はそれがテーブルの幅を変更する避けるために、この列にposition: absolute;を設定。しかし、私が絶対位置に設定した後、align関数はもう働きません。あなたは上記の印刷画面から見ることができるように enter image description here
、それは誰もが絶対のコンテンツを揃える方法についてのアイデアがtdを位置付けており、代わりにデフォルトcentertdの上部を揃えますか?

+0

'垂直整列:center'はエラーです。 –

+0

それから解決策は何ですか? @MrLister – Newbie

+0

'vertical-align:middle'しかし、私が問題を理解している方法(私が間違っていれば、もっとコードを表示することが望ましい)は、絶対的な位置付けを使わず、 'table-layout'を' fixed'に設定し、それぞれの列幅を明示的に指定します。 –

答えて

0

テーブルに固定幅を加えてオーバーフローさせてみませんか?

とにかく、あなたがやっていることは本当に良いタイポグラフィーではありませんが、これがあなたが望むものなら、あなたのcolspan = "2"行のためのクラスを作成してください。

position: absolute; 
top: 50%; 
transform: translate(0, -50%); 

エレメントの高さの半分の幅で、エレメントを50%下に移動してから上に移動します。

のものを中心にについてもっと読み: https://www.w3.org/Style/Examples/007/center.en.html

+0

これはうまくいかず、要素を 'td'の代わりに画面の中央に移動します。ところで、どのようにテーブルの幅を修正し、オーバーフローさせる? – Newbie

+0

絶対位置の要素がエスケープしないように、p:行に 'position:relative'を追加する必要があります。 テーブルの幅は、「max-width:500px」などをp:行に追加するだけです。オーバーフローは自動的に発生します。また、styleプロパティを使う代わりにcssクラスでこれを行います。 –

関連する問題