2016-07-26 6 views
2

イメージギャラリーとして使用するためにダイヤモンドデザインを作成しようとしています。イメージギャラリーをhtmlとcssで作成する非サイズのダイヤモンドデザイン

私の意図したデザインが怒鳴る絵のようなものです: Diamond design

あなたが見ることができるように、デザインは(容器の中に(75px150ピクセルまたは225px)には3種類のサイズで多くのダイヤモンドで構成されています特定のサイズのDiv要素など)を指定します。

私はそれを作るために多くの方法を試しましたが、私はこのデザインを正確にはできませんでした。

私がテストする方法の1つは、単純なグリッドを作成してから親コンテナをローテーションするのに、Masonry jquery pluginを使用することです。

$grid = $('.grid').masonry({ 
 
    itemSelector: '.grid-item', 
 
    columnWidth: 75, 
 
    gutter: 5 
 
});
#gallery { 
 
    height: 400px; 
 
    border: 1px solid red; 
 
} 
 
#gallery .grid { 
 
    width: 500px; 
 
    height: 600px; 
 
    transform: rotate(45deg); 
 
    border: 1px solid blue; 
 
} 
 
#gallery .grid .grid-item { 
 
    width: 75px; 
 
    border: 1px solid green; 
 
    height: 75px; 
 
} 
 
#gallery .grid .grid-item-width2 { 
 
    width: 150px; 
 
    height: 150px; 
 
} 
 
#gallery .grid .grid-item-width3 { 
 
    width: 225px; 
 
    height: 225px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/dist/masonry.pkgd.js"></script> 
 

 
<div id="gallery"> 
 
    <div class="grid"> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
     <div class="grid-item"></div> 
 
    </div> 
 
</div>
しかし、それはそこにダイヤモンドの間に多くのギャップがあり、本体容器の隅にある空白とすることができ、さらにいくつかのダイヤモンドが完全に容器の外に配置することができるように、多くの問題を抱えています。

解決策は何ですか?どのように私は上記のような問題を抱えていないようなデザインを作成できますか?

+0

オーバーフロー追加します。このため表示#galleryに隠された - 完全にコンテナの外に置かれたいくつかのダイヤモンドを。 –

+0

@LaljiTadhaniもちろん、私は容器の外にダイヤモンドを入れたくありません。あなたのソリューションはそれらを隠すだけです。それらの間のギャップはどうですか? –

答えて

2

を隠された証拠金を追加します。 borderを使うと、要素のサイズが大きくなり、コンテナに収まらない(変換を無効にしてその部分を見ることができます)。これを解決するには、 "border"の代わりに "outline"を使用することを検討してください。

空のコーナーを埋めるには、さらにアイテム(菱形)を追加し、グリッドのサイズを大きくする必要があります。

$grid = $('.grid').masonry({ 
 
     itemSelector: '.grid-item', 
 
     columnWidth: 75 
 
    });
#gallery { 
 
    height: 400px; 
 
    outline: 1px solid red; 
 
} 
 
#gallery .grid { 
 
    width: 500px; 
 
    height: 600px; 
 
    transform: rotate(45deg); 
 
    outline: 1px solid blue; 
 
} 
 
#gallery .grid .grid-item { 
 
    width: 75px; 
 
    outline: 1px solid green; 
 
    height: 75px; 
 
} 
 
#gallery .grid .grid-item-width2 { 
 
    width: 150px; 
 
    height: 150px; 
 
} 
 
#gallery .grid .grid-item-width3 { 
 
    width: 225px; 
 
    height: 225px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/dist/masonry.pkgd.js"></script> 
 

 
<div id="gallery"> 
 
\t <div class="grid"> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
    </div> 
 
</div>

1

は実際にダイヤモンドの間のギャップは "国境" の結果である&オーバーフローが

$grid = $('.grid').masonry({ 
 
     itemSelector: '.grid-item', 
 
     columnWidth: 75, 
 
     gutter: 10 
 

 
    });
#gallery { 
 
    height: 400px; 
 
    border: 1px solid red; 
 
overflow:hidden; 
 
} 
 
#gallery .grid { 
 
    width: 500px; 
 
    height: 600px; 
 
    transform: rotate(45deg); 
 
    border: 1px solid blue; 
 
} 
 
#gallery .grid .grid-item { 
 
    width: 75px; 
 
    border: 1px solid green; 
 
    height: 75px; 
 
margin:3px; 
 
} 
 
#gallery .grid .grid-item-width2 { 
 
    width: 150px; 
 
    height: 150px; 
 
margin:3px; 
 
} 
 
#gallery .grid .grid-item-width3 { 
 
    width: 225px; 
 
    height: 225px; 
 
margin:3px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/dist/masonry.pkgd.js"></script> 
 

 
<div id="gallery"> 
 
\t <div class="grid"> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
     <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item grid-item-width2"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
\t \t <div class="grid-item"></div> 
 
    </div> 
 
</div>

+0

あなたのソリューションの結果が本当に私が望んでいないことを見ることができるならば。 –

+0

私の答え編集を確認する –

関連する問題