2016-05-27 10 views
0

私はこの質問がここに数回置かれていたが、適切な答えを見つけられなかったことを知っている。 divの完全な高さをtdにするための回避策を管理しました。しかし、テキストを中央に縦に並べることは不可能です。どのように私はこれを達成することができます考え?私はそれが敏感であることを望みます。私はすべてのデバイスで作業することを意味します。ありがとう。あなたのdivに次のCSSを追加TDの完全な高さ、垂直方向のテキストが中間にある

<tr> 
    <td> 
     Small text 
    </td> 
    <td class="" style="height: 1px; height: 100%"> 
     <div style="position: relative"> 
      <span class="centered-text"> A very long text that I want to be centered inside parent div and of course parent td.</span> 
     </div> 
    </td> 
</tr> 

答えて

0

あなたのコードのいずれかを見ることなく、それはあなたに正確な答えを与えるには少し難しいです。それはまた、必要な場合は

.text-container { 
    position: relative; 
} 

.centered-text { 
    position: absolute; 
    top: 50%; 
    -webkit-transform: translateY(-50%); 
    -ms-transform: translateY(-50%); 
    transform: translateY(-50%); 
} 

が水平方向にセンタリングされるように、次のコマンドを使用します。しかし、(限り、あなたはIE9以下のものをサポートする必要がないので)、特に応答ソリューションのため、この問題を解決するための私のお気に入りの方法は以下のとおりです。以下の追加と変換プロパティを置き換える:

.centered-text { 
    left: 50%; 
    -webkit-transform: translate(-50%, -50%); 
    -ms-transform: translate(-50%, -50%); 
    transform: translate(-50%, -50%); 
} 

編集:スペースを埋めるために、相対位置でfiddleを更新 - は、最終的に完全に中心の結果を示しています。

+0

ありがとうございます。私は通常ポジションアブソリュートを避けますが、今回はこの解決策に満足しています。乾杯。 – csm86

+0

問題ありません!私は一般的に同意します。私の通常の経験則では、フロー内に相対親がある限り、絶対配置を使用するのが一般的に安全です。 –

+0

私はちょうど別の問題に直面しました。テキストcenterdが非常に長い場合、それは親コンテナに重なる。親tdは増加しない。私はhtmlで質問を更新しました。 – csm86

1

試してみてください。

div{ 
    display: table-cell; 
    vertical-align: middle; 
} 

が表示属性はdiv要素には効果があります垂直整列スタイルを意味し、より多くのテーブルセルのように動作するようになります。

例:http://codepen.io/JasonGraham/pen/aZbdmy

+0

ヒントありがとうございます。私はこれを試みたが、表示:table-cellは私のdivに親TDの同じ高さを許さない。 – csm86

+0

謝罪、私の誤解! divの高さを維持しようと思っているなら、上記の@ghost_dadで提供されているものと同様の解決方法を選択します。垂直方向に整列するために "上"を使用して、親コンテナ内の相対テキストを表示します。 –

+0

div {高さ:100%; }あなたのdivが真の要素全体を埋めるようにします。簡単にここにあなたのテキスト –

関連する問題