2016-05-26 6 views
7

フレックスボックスを作成しようとしています。フレックスボックスで2列に画像を整列する

ただし、何らかの理由により、サイズが異なるため正しく動作しません。

enter image description here

彼らはこのように振る舞う必要があります。

enter image description here

/* ================================= 
 
     Base Styles 
 
    ==================================== */ 
 

 
body { 
 
    display: flex; 
 
    flex-direction: column; 
 
    min-height: 100vh; 
 
} 
 
.row { 
 
    flex: 1; 
 
} 
 
/* ================================= 
 
     Media Queries 
 
    ==================================== */ 
 

 
@media (min-width: 769px) { 
 
    .main-header, 
 
    .main-nav, 
 
    .row { 
 
    display: flex; 
 
    } 
 
    .main-header { 
 
    flex-direction: column; 
 
    align-items: center; 
 
    } 
 
    .col { 
 
    flex: 1 50%; 
 
    } 
 
    .row { 
 
    flex-wrap: wrap; 
 
    } 
 
    .item-2 { 
 
    order: -1; 
 
    } 
 
} 
 
@media (min-width: 1025px) { 
 
    .main-header { 
 
    flex-direction: row; 
 
    justify-content: space-between; 
 
    } 
 
    .col { 
 
    flex-basis: 0; 
 
    } 
 
    .item-1 { 
 
    flex-grow: 1.4; 
 
    } 
 
}
<div class="row"> 
 

 
    <div class="item-1 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.primary--> 
 

 
    <div class="item-2 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.secondary--> 
 

 
    <div class="item-3 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-4 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-5 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-6 col"> 
 
    <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
</div>

はあなたがここにJSFIDDLEを表示することができます:https://jsfiddle.net/ju157mnj/2/

+0

"それは画面の小さいサイズになると、ブロックレベルでの" あなたはどういう意味ですか?あなたがリンクしている画像は、画像が常に3行2列に収まるようにすることを示しています。正しいですか? – whipdancer

答えて

0

あなたのイメージは非常に大量でしたし、メディアのクエリでは編集するのが少し難しかったです。 flexは、メディアクエリを必要としないほど強力です。以下はあなたのイメージをどのように表示するかの2つの例です(あなたがそれらを望んでいるかどうかは分かりませんでした)。

ラップ:

.row { 
    display: flex; 
    flex-wrap: wrap; 
} 

.col { 
    flex-grow: 1; 
    margin: 5px; 
    text-align: center; 
} 

.col img { 
    height: 60px; 
    width: 90px; 
} 

フィドル:https://jsfiddle.net/awvpezbt/

3行ごと(ノーラップ):

.row { 
    display: flex; 
} 

.col { 
    flex-grow: 1; 
    margin: 5px; 
    text-align: center; 
} 

.col img { 
    height: 60px; 
    width: 90px; 
} 

フィドル:https://jsfiddle.net/awvpezbt/1/

+0

ここで試してみましたが、何らかの理由でボックス間のスペースがうまくなく、画面の中央に正しく表示されません。フィドルを参照してください:https://jsfiddle.net/ju157mnj/5/ –

+0

ここに私が何を意味するのかhttp://prnt.sc/b8ogjp –

+0

彼らはまた反応しません。小さな画面では、ブロックレベルでなければなりません:http://prntscr.com/b8ohf5 –

1

.row { 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
    justify-content: center; 
 
} 
 

 
.col { 
 
    flex: 0 0 calc(33.33% - 30px); /* flex-basis adjustment for margin */ 
 
    margin: 5px; 
 
} 
 

 
img { 
 
    width: 100%; 
 
}
<div class="row"> 
 

 
    <div class="item-1 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.primary--> 
 

 
    <div class="item-2 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.secondary--> 
 

 
    <div class="item-3 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-4 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-5 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
    <div class="item-6 col"> 
 
     <img src="http://blackrockdigital.github.io/startbootstrap-freelancer/img/portfolio/cabin.png"> 
 
    </div><!--/.tertiary--> 
 

 
</div>

Revised Fiddle

+0

ここで試してみましたが、何らかの理由でボックス間のスペースがうまくなく、画面の中央に正しく表示されません。フィドルを参照してください:https://jsfiddle.net/ju157mnj/5/ –

+0

ここに私の意味:http://prnt.sc/b8ogjp –

+0

彼らはまた、反応しません。小さな画面の場合は、ブロックレベルでなければなりません:http://prntscr.com/b8ohf5 –

0

はあなたのCSSにこれらの変更を加えた:

img { 
    max-width: 100%; //Keeps the img in its container 
} 
.col { 
    padding: 0 1em; 
    flex: 1; 
    min-width: 200px; 
} 
.row { 
    flex: 1; 
    display: flex; 
    flex-wrap: wrap; 
} 

https://jsfiddle.net/v2tuoojd/

+0

はここで試しましたが、何らかの理由でボックス間のスペースがうまくなく、画面の中央に正しく表示されません。 fiddle:https:// jsfiddleを参照してください。net/ju157mnj/5/ –

+0

これらは応答もありません。彼らは画面の小さなサイズについては、ブロックレベルでなければなりません:http://prntscr.com/b8ohf5 –

関連する問題