このスパンをdivの右側に揃える方法は?


151

次のHTMLがあります。

<div class="title">
    <span>Cumulative performance</span>
    <span>20/02/2011</span>
</div>

このCSSで:

.title
{
    display: block;
    border-top: 4px solid #a7a59b;
    background-color: #f6e9d9;
    height: 22px;
    line-height: 22px;
    padding: 4px 6px;
    font-size: 14px;
    color: #000;
    margin-bottom: 13px;
    clear:both;
}

このjsFiddleを確認すると:http ://jsfiddle.net/8JwhZ/

名前と日付がくっついていることがわかります。日付を右に揃える方法はありますか?私はfloat: right;2番目を試しました<span>が、それはスタイルを台無しにし、日付を囲んでいるdivの外に押し出します


2
HTMLを変更できますか?
Phrogz

3
別のオブジェクトに関連して何かをフロートさせたい場合、フローターは非フローターの前にある必要があります。日付はタイトルの前で、右に浮動している必要があります。
Josh Kovach、2011

回答:


246

HTMLを変更できる場合:http : //jsfiddle.net/8JwhZ/3/

<div class="title">
  <span class="name">Cumulative performance</span>
  <span class="date">20/02/2011</span>
</div>

.title .date { float:right }
.title .name { float:left }

CSSは簡素化され、適切にクリーン化されています。両方を追加する必要があります。また、フィドルには非常に壊れやすいソリューションが含まれています:jsfiddle.net/8JwhZ/2090
Risord

9
または、インラインにしたい場合(私はしました)<span style="float: right">
マーク

51

フロートの操作は少し面倒です:

これは、他の多くの「些細な」レイアウトトリックと同じように、フレックスボックスで実行できます。

   div.container {
     display: flex;
     justify-content: space-between;
   }

2017年、レガシーブラウザーをサポートする必要がない場合、これは(フロートよりも)推奨されるソリューションだと思います。https//caniuse.com/#feat=flexbox

さまざまなフロートの使用法がflexboxとどのように比較されるかをフィドルで確認してください(「競合する回答が含まれている可能性があります」):https ://jsfiddle.net/b244s19k/25/ 。それでもフロートを使い続ける必要がある場合は、もちろん3番目のバージョンをお勧めします。


これは私が使用することを選んだ一つであり、また、セットに心に留めておくfloat: left;と、float: right;あなたが空間にしたい要素を含むスパンで。
ランロッテム2018

1
この回答の核となるメッセージは、「フロートは有害であると見なされる」ということであり、それらを使用することはできません(いくつかのまれな例外があることを確認してください)。それで、それが良いアイデアだと思う理由を明確にできますか?
Risord 2018

1
私は思ったfloat私は、それが彼らのためにフィドルの例で定義されていると思ったので、内側の要素に必要とされたが、ために#testDそれが定義されていません。悪い!
Ran Lottem

25

floatの代替ソリューションは、絶対配置を使用することです。

.title {
  position: relative;
}

.title span:last-child {
  position: absolute;
  right: 6px;   /* must be equal to parent's right padding */
}

フィドルも参照してください。


5

HTMLを変更せずにこれを行うことができます。 http://jsfiddle.net/8JwhZ/1085/

<div class="title">
<span>Cumulative performance</span>
<span>20/02/2011</span>
</div>

.title span:nth-of-type(1) { float:right }
.title span:nth-of-type(2) { float:left }

4

なしでflexboxを使用するソリューションjustify-content: space-between

<div class="title">
  <span>Cumulative performance</span>
  <span>20/02/2011</span>
</div>

.title {
  display: flex;
}

span:first-of-type {
  flex: 1;
}

flex:1最初ので使用すると、<span>残りのスペース全体を占有し、2番目<span>を右に移動します。このソリューションのフィドル:https : //jsfiddle.net/2k1vryn7/

ここでhttps://jsfiddle.net/7wvx2uLp/3/を見るjustify-content: space-betweenflex:1、最初のでのflexbox with とflexbox withの2つのフレックスボックスアプローチの違いを確認できます<span>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.