2017-03-03 4 views
0

の2つの要素を水平方向に整列させたい場合は、CSSプロパティfloatを使用してを使用します。cssプロパティfloatを使用せずに2つの要素を浮動要素のように動作させる

よりspesific的には:

私は親のそれぞれの側に浮き、それらを水平に整列させたい:

enter image description here

そして、画面が小さくなれば、私は彼らがしたいです依然として(フロートと同じように)親の各側に浮遊しながら、お互いの下にラップ:

enter image description here

フレックスボックスなどを使ってこれを実現することはできますか?

+1

リピート:float型プロパティを使用しては何も問題はありません。 – BoltClock

+0

ええ、私はそれは言ったことはありません。私はあなたがそれを使用せずにどうやってやるのか尋ねているだけです。 – slowpoke123

+0

floatは非常に特殊なプロパティで、非常にユニークなレイアウト動作を備えています。私はあなたがフレックスボックスのようなものでそれをエミュレートすることができれば驚くだろう。 – BoltClock

答えて

2

私が子供の唯一のプロパティに基づいて、左と右のスワップ両側を作るための方法を認識していませんよラッパーにflex-direction:row-reverse;を指定せずに、実際の浮動小数点のような要素がします。比較のために私の例を参照してください:私の後http://codepen.io/ijstanley/pen/JWXwOy

<p>pseudo floats in reverse order in markup</p> 
<div class="flex wrapper"> 
    <div class="pseudo float right">right</div> 
    <div class="pseudo float left">left</div> 
</div> 
<p>pseudo floats in correct order in markup</p> 
<div class="flex wrapper"> 
    <div class="pseudo float left">left</div> 
    <div class="pseudo float right">right</div> 
</div> 
<p>pseudo floats in reverse order in markup, reverse flex direction</p> 
<div class="reverse flex wrapper"> 
    <div class="pseudo float right">right</div> 
    <div class="pseudo float left">left</div> 
</div> 
<p>pseudo floats in correct order in markup, reverse flex direction</p> 
<div class="reverse flex wrapper"> 
    <div class="pseudo float left">left</div> 
    <div class="pseudo float right">right</div> 
</div> 
<p>actual floats</p> 
<div class="floater wrapper"> 
    <div class="real float left">left</div> 
    <div class="real float right">right</div> 
</div> 

.wrapper { 
    border:3px solid gray; 
} 

.wrapper.flex { 
    display:flex; 
    flex-direction:row; 
    flex-wrap:wrap; 
    justify-content:space-between; 
} 

.wrapper.flex.reverse { 
    flex-direction:row-reverse; 
} 

.wrapper.floater { 
    width:100%; 
} 

.wrapper.floater::after { 
    content:''; 
    display:block; 
    clear:both; 
} 

.float { 
    min-height:200px; 
    background:red; 
    border:3px solid black; 
    width:300px; 
} 

.float.pseudo.left { 
    margin-right:auto; 
} 

.float.real.left { 
    float:left; 
} 

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

ありがとう!それは完全に動作します。私はマークアップで正しい順序で擬似浮動小数点数を使用することになった – slowpoke123

+0

私は考えると私のcodepenを更新した、私は要素が両面を交換できるように順序プロパティを追加しました、しかし一方の側に。 –

0

第一プロパティ:

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

第二プロパティ(メディアクエリは、特定の解像度のための追加):

.container{ 
    flex-direction: column; 
} 
.1stDiv{ 
    margin-right: auto; 
} 
.2ndDiv{ 
    margin-left: auto; 
} 

マージン左:オートマージン右:自動作品のようなflexboxのために浮動。

応答性VERSION FOR

他IDEA:

.container{ 
     flex-direction: column; 
    }  
.1stDiv{ 
    align-self: flex-start; 
} 
.2ndDiv{ 
    align-self: flex-end; 
} 
+0

しかし、画像のようにスペースがある場合、水平に並べることはできません。nr 1 – slowpoke123

+0

更新されたバージョンを確認してください。 –

+0

彼らはまだ水平に整列していません – slowpoke123

0
#first{ 
    width:50px; 
    height:50px; 
    position:absolute; 
    left:0px; 
    right:auto; 
    top:0px; 
    background-color:red; 
} 

#second{ 
    width:50px; 
    height:50px; 
    position:absolute; 
    left:auto; 
    right:0px; 
    top:0px; 
    background-color:green; 
} 

Fiddle link

+0

これはラッピング効果のためには機能しませんimage nrのように達成したい2 – slowpoke123

+0

あなたはブートストラップを使うことができます。 – maximelian1986

関連する問題