divのコンテンツテキストを下に取得する方法はありますか? ここで私は例を用意しました。Divのボトムまでのテキスト
これはサンプルの階層です:
<div class="button">Button Label</div>
私は、追加のスパンを追加したり、階層を変更せずに結果を達成しようとしています。
divのコンテンツテキストを下に取得する方法はありますか? ここで私は例を用意しました。Divのボトムまでのテキスト
これはサンプルの階層です:
<div class="button">Button Label</div>
私は、追加のスパンを追加したり、階層を変更せずに結果を達成しようとしています。
3つの可能な解決策、それぞれが独自の注意点がありますが。
第1の解決策はDIV
の下でテキストを整列させるline-height: 220px; vertical-align: bottom;
に依存しています。 2番目の解決策は、テキストをDIV
の下にプッシュする擬似要素を作成します(これは追加のマークアップを必要としません)。両方の溶液は、IE7以前に失敗し、そして場合の両方に問題があります:フォントサイズが
第3の解決策は、display: box;
プロパティに依存します。これは段階的に廃止されるCSSプロパティです(詳細はQuick Hits With the Flexible Box Modelを参照)。このソリューションは、v4以降のChrome、v2以降のFirefox、IE10ベータ版でのみサポートされています。しかし、新しいFlexbox標準が標準化されていますが、ブラウザのサポートは最小限です。この解決策は効果的に使用するには「あまりにも新しい」と考えられる可能性があります(html5please.com/#flexbox)。
一般的に言えば、テキストの周囲に新しいラッピング要素があると考えてください。position: absolute; bottom: 0;
は、要素を親要素の一番下に置くことができます。これは、子要素を上向きに拡大する利点があります。これは、フォントサイズまたはテキストの長さが増え、親コンテナのサイズには依存しません。あなたの配置がミッションクリティカルなレイアウトに応じて、この新しい要素をJavascriptを使って追加することができます。これはあなたの疑問を考えれば理想的ではないかもしれませんが、ブラウザのサポートは上記のCSSの解決には理想的ではありません:-p
あなたはコンテナにposition:relative
を使用して、コンテンツに
position:absolute;
bottom:0;
を使用する場合は、所望の結果を達成することができます。
あなたのCSSは次のようになります:
.button
{
display: block;
background-color: darkred;
color: white;
width: 120px;
height: 120px;
text-align: center;
position: relative;
}
.bottomContent
{
position:absolute;
bottom: 0;
}
とあなたのHTML:
<div class="button"><p class="bottomContent">Button Label</p></div>
ありがとう、私も認識していますこのソリューションは、私が階層について言及した理由です。「私は、追加のスパンを追加したり階層を変更することなく、結果を達成しようとしています。 – Mia
これを行うための別の方法は、 "表示:テーブルセル" を用いてだろうと "vertical-align:bottom"があります。
.button {
display: table-cell;
background-color: darkred;
color: white;
width: 120px;
height: 120px;
text-align: center;
vertical-align: bottom;
}
ああ、私が望むように他のすべてのためにdisplay:blockを使用する必要があります:( – Mia
table-cellがあなたのためにうまく動作しない場合、@MikeBのような絶対的な位置付けを使用することをお勧めします。 –
ありがとう非常に詳細な返信ですが、ラップメソッドを選択するのは、私にとって最も確かなものだからです。 しかし、私が持っているもう一つの問題は、ラップメソッドを使用すると、ラッパーはすでにtext-align:centerを持っています。 – Mia
ラッパーを親要素の中に絶対配置する場合は、親要素の幅の100%にしてください。絶対配置された要素に次元を指定しなければ、要素は可能な限り小さな次元になるようにしようとします。次に、 'text-align '要素は' width:100%; 'または' left:0; right: :センr; 'を親要素の幅の代わりに狭い幅に揃えます。あなたのブラウザーのDOMインスペクターでラッパーを見ると、何が起こっているのかがわかります。-p – thirdender
ここに問題のある状況http://jsfiddle.net/ZUX2n/ – Mia