2013-04-12 13 views
6

私はテーブルを持っています。インサイドTDの私は2個のspanタグを持っている - 私は左を揃えたい1つのspanタグ、およびその他の権利は、しかし、TDはそれを許可しない: td内に2つのスパンを整列する - 1つは左と1つ右

<table> 
    <tr> 
    <td colspan="5"><span>$</span><span>1000</span></td> 
    </tr> 
</table> 

は、だから私は $がに整列させたいですfar は、tdのと、となり、tdの の右に揃えられます。

これは可能ですか?

+1

が、それらはすべて同じことを言っているように見えます:http://kimblim.dk/css-tests/selectors/

は、ここではCSSセレクタを参照してください。 。クラスを適用して左右に浮動させます – Andrew

+0

@AndrewこれがTDの唯一のコンテンツである場合、最初のものを左に浮かせる必要はありません。 –

+0

これを行う方法はたくさんありますが、今のところはすべて正しいようです。彼はそれをどのように使用しようとしているかに依存しています。 – Andrew

答えて

12

余分なクラスを使用せずに、次のセレクタを使用することができます:

td span:last-child{ /*not compatible with <=IE8*/ 
    color:green; 
    float:right; 
} 

デモ:http://jsfiddle.net/QR3kP/1/ IE7との互換性のため


及びアップ以下CSSコードを使用する:別のアプローチは、右側にあるhttp://jsfiddle.net/QR3kP/4/


td span{ 
    float:right; 
} 
td span:first-child{ /* compatible to >=IE7 */ 
    float:left; 
} 

がデモテキストをの内側に揃えます。とfloat最初<span>

td { 
    text-align:right 
} 
td span:first-child { 
    float:left; 
} 

デモ:http://jsfiddle.net/QR3kP/29/


あなたも少ないCSS宣言を使用して、上記と同様の方法を使用することができますで

td span:first-child + span { 
    float:right; 
} 

を上記の例では、デフォルトのtdのテキストアライメントが残されていて、直前にある兄弟最初のspanの後に譲渡された。それでは、それは右にfloatです。もちろん、~セレクタを使用することもできます。この場合、の場合はと同じです。

デモ:http://jsfiddle.net/QR3kP/32/


は、ここで互換性チャートを参照してください。そこに答えがたくさんhttp://www.w3.org/TR/CSS2/selector.html

+0

ベストアンサーでは、特別なマークアップは不要です! –

+0

ちょうどあなたがIE8以下のサポートを必要としない場合でも、IE8以下は 'last-child'をサポートしていないことに注意してください。 – ajp15243

+1

@ ajp15243:私はIE7以上の互換性のために私の答えを編集しました。これを指摘してくれてありがとう。 – otinanai

1

最も簡単な方法は、浮動小数点数でそれをやってオフおそらく最高の右

http://jsfiddle.net/L3QU2/1/

<table width="100%"> 
    <tr> 
    <td colspan="5"> 
     <span style="float:left">$</span> 
     <span style="float:right">1000</span></td> 
    </tr> 
</table> 
+0

インラインスタイルはうまくいきません –

+0

@DylanHayesインラインスタイルを提案しているわけではありません。問題はCSSとHTMLを適切に区切る方法ではなく、これをどのようにして完成させるかの例です。 OPのコードの変更が最小限であれば、どのようなCSSが必要ですか。免責条項を追加する必要はなかった。最高の答えは、HTMLにマークアップを追加する必要がなく、簡潔にCSSスニペットに入れることができる本当にotinanaiです –

2

に左に最初の2つ目をフロートすることです。

<td colspan="5"><span class="left">$</span><span class="right">1000</span></td> 

CSS:

.left { 
    float: left 
} 

.right { 
    float: right; 
} 

jsFiddle:http://jsfiddle.net/NLZU5/

1

はこれを試してみてください:

<table style="width:100%"> 
    <tr> 
    <td colspan="5"><span style="float:left;">$</span><span style="float:right;">1000</span></td> 
    </tr> 
</table> 

DEMO

1

ドル金額を含むspan$float: rightを含むfloat: leftを設定することができます。

ここには簡単なdemoがあります。

1

CSSクラスを使用してスパンにfloatスタイルを定義できます。

<style> 
    .left { float: left; } 
    .right { float: right; } 
</style> 

<table> 
    <tr> 
    <td colspan="5"> 
     <span class="left">$</span> 
     <span class="right">1000</span> 
    </td> 
    </tr> 
</table> 
+0

私はあなたが私の質問に答えた最初の人だったと思いますか? –

+0

わかりません。ただ誰かをupvote。私は喜んでお手伝いします。 –

+0

ありがとう、ありがとう –

2

スパンのそれぞれにクラスを配置し、それぞれにフロートを適用することであろう最善の方法は、クラスをotの

HTML

<span class="left">$</span><span class="right">1000</span> 

CSS

.left{float:left;} 
.right{float:right;} 
+0

'.left'、' .right'はセマンティックではありません。 '.sign'、' .value'はどうですか? –

+0

CSSクラスの命名規則の@JuanMendesセマンティクスは?それ以上の言及はありますか? – otinanai

+0

@otinanai CSSクラス名は、ページ上での見た目ではなく、表現するデータを表す必要があります。たとえば、一部の言語では右にお金のサインが表示され、その場合はCSSクラス名は意味をなさないでしょう。セマンティッククラス名は、別のスタイルシートを使用して別の外観を作成できることを意味します。 http://css-tricks.com/semantic-class-names/とhttp://www.w3.org/QA/Tips/goodclassnamesを参照してください –