2016-08-28 13 views
14

フッターエレメントの右側にテキスト(fooリンク)を配置したいとします。floatがフレックスコンテナで動作しない

残るにはフッタ表示が必要です。flex

しかし、flexに設定すると、スパンのfloat:rightはもう機能しません。

<footer style="display: flex;"> 
 
    <span style="text-align: right;float: right;"> 
 
     <a>foo link</a> 
 
    </span> 
 
</footer>

https://jsfiddle.net/dhsgvxdx/

+0

[フレキシボックスがアクティブなときにCSSルールは無視されますか?]を参照してください(http://stackoverflow.com/q/30500734/1529630) – Oriol

答えて

17

floatプロパティは、フレックスコンテナでは無視されます。

フレキシボックス仕様から:

3. Flex Containers: the flex and inline-flex display values

フレックスコンテナはその 内容のための新しいフレックスフォーマッティングコンテキストを確立します。これは、ブロックレイアウトの代わりにフレックスレイアウトが使用されることを除いて、ブロックフォーマットコンテキスト を設定するのと同じです。

たとえば、浮動小数点はフレックスコンテナに侵入せず、 フレックスコンテナの余白は、 の内容の余白で崩壊しません。

floatおよびclearフレックスアイテムのフローティングまたはクリアランスを作成せず、フローを外しません。代わりに

、ちょうどFlexプロパティを使用します。

:あなたはここで、2つのガイドをしているフッターに複数のアイテムを持っているし、他の整列オプションが必要な場合は

footer { 
 
    display: flex; 
 
    justify-content: flex-end; 
 
}
<footer> 
 
    <span> 
 
     <a>foo link</a> 
 
    </span> 
 
</footer>

+4

このリンクhttp://stackoverflow.com/a/33856609/3597276は素晴らしかったです。 – somename

12

私はjsfiddleにここに行ったようにあなたがmargin-left: auto;を追加する場合、それは動作します:https://jsfiddle.net/dhsgvxdx/3/

<body> 
    <footer style="display: flex;"> 
     <span style="text-align: right;float: right; margin-left: auto;"> 
      <a>foo link</a> 
     </span> 
    </footer> 
</body> 
+0

はい、それは動作します。 tnx – somename

+1

私はその遅れた返事を知っていますが、他人を助けるでしょう。'margin-left:auto'を使うと' float:right'プロパティを使う必要はありません....!私の場合、それはそれなしで働いた.. –

2

このフッターのみ右が含まれている場合フレックスコンテナにjustify-content: flex-endを単に適用することができます。この方法では、子供にスタイルを追加する必要はありません。

footer { 
    display: flex; 
    justify-content: flex-end; 
} 

Codepen example

+0

はい。やってみる。場合によっては動作します。私の場合は、フッターの左側にある必要がある要素がいくつかあります。いくつかは右にあります。 – somename

+1

その場合、コンテナに 'justify-content:space-between'を使用してください。浮動小数点数やテキスト整列は必要ありません。 – alanbuchanan

+0

hmmm。私はそれをテストする。これすごくいいね。このようにして、要素は自動的に整列されます。 tnx – somename

関連する問題