2016-12-25 2 views
4

まず、この質問をするのが適切でない場合は、お詫び申し上げます。私はQ/Aのための他の情報源を知りません。六角形のグリッドをbuiltbybuffalo.comのようにする

私はthis Siteの正確なレプリカを提出しなければならない大学のプロジェクトがあります。私のウェブデベロッパーを実践的に渡すためです。

私はすべてをコピーできましたが、残っているものはhexagonal gridです。

誰かがサイトにアクセスできる場合は、number of hexagons per row changes according to width of browser windowが表示されます。ここで

がグリッド
CSSとHTML

.container { 
 
    margin-top: 120px; 
 
} 
 
.hex-3-row { 
 
    display: table; 
 
    margin: 30px auto; 
 
} 
 
.hex { 
 
    display: inline-block; 
 
    width: 190px; 
 
    height: 110px; 
 
    color: white; 
 
    background-color: red; 
 
    position: relative; 
 
    margin-left: 15px; 
 
    z-index: 110; 
 
    text-align: center; 
 
    line-height: 110px; 
 
} 
 
.hex::after { 
 
    content: ""; 
 
    background-color: red; 
 
    height: 110px; 
 
    width: 190px; 
 
    position: absolute; 
 
    top: 0px; 
 
    left: 0px; 
 
    transform: rotate(60deg); 
 
    z-index: -1; 
 
} 
 
.hex::before { 
 
    content: ""; 
 
    background-color: red; 
 
    height: 110px; 
 
    width: 190px; 
 
    position: absolute; 
 
    top: 0px; 
 
    left: 0px; 
 
    transform: rotate(-60deg); 
 
    z-index: -1; 
 
} 
 
img { 
 
    position: relative; 
 
    height: 150px; 
 
    width: 150px; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
}
<html> 
 

 
<head> 
 
    <title>hexagon</title> 
 
    <link rel="stylesheet" href="css.css"> 
 
</head> 
 

 
<body> 
 

 
    <div class="container"> 
 
    <div class="hex-3-row"> 
 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 
    </div> 
 

 
    <div class="hex-3-row"> 
 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
    </div> 
 

 
    <div class="hex-3-row"> 
 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 

 
     <div class="hex"> 
 
     <img src="arrow.png" alt="image"> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 

 

 

 

 
</body> 
 

 
</html>

のための私のコードである今、私が管理し、グリッドは、全幅でビット彼らのように探しています。 しかし、どのように反応させることができますか?幅に応じて行ごとに六角形の数を変更しますか? 私もソースコードを読もうとしましたが、彼らは<br>を使ってトリックをやっていることを除いて、そのトリックを理解できませんでしたが、私は管理できません。

誰かが正しい方向で私を指すことができ、このような高度なCSSを学習するためのあらゆる情報源を共有することができれば本当に感謝します。 お時間をいただき、ありがとうございます。

私はすでにthis threadからソリューションを試みたが、私が探している<div> <br>と詰め込むを使用して、ちょうどbuiltbybuffalo.comの男のようにそれを行うための解決策ではなく、<ul><li>できました。

+3

、UIが画面size.For例に従って修正するように、それはresponsive.Youが異なる画面サイズごとに異なるスタイルを指定することができます作るためにメディアクエリを記述することができますが、おそらく彼らはこの六角形のグリッドレイアウトを構築するためのプラグインを使用しました。ここでは同様のレイアウトのデモですが、おそらくそれはあなたを助けるかもしれません:http://stackoverflow.com/questions/26114920/responsive-grid-of-hexagons –

+0

http://codepen.io/gc-nomade/pen/eyntg、それはかつてstackoverflowに関する似たような質問のデモでした。 –

+0

@TeutaKoraqiいいえ、彼らはプラグインを使用していません、私はそのHexagonグリッドのCSSとHTMLだけをコピーし、jQuery/Javascriptなしで動作しました:) –

答えて

1

これは基本的に、変更された行分割要素を持つ標準の列レイアウトです。 (彼らはこれにbrを使用していますが、正しいスタイリングを持つ要素でも可能です)いくつかのブレークポイントがあり、どのブレークポイントが使用されているかに応じてセルのクラスのスタイルとブレーク要素が変更されます。ブレーク要素は、行がブレークする必要がある場所にあり、ブレークポイントがそのブレーク要素を使用するかどうかを制御するクラスが設定されていることに注意してください。

あなたはそのまま行にグループ化しません。本質的には、ブレークポイントがアクティブになっているかどうかに応じて表示/非表示になる注意深く配置されたブレーク要素を持つ要素の行が1行あります。

+0

はい、1行の要素を使用しています。私もそれを試しましたが、私が直面した問題は、その行の中で、余裕を持たせることができない、すなわちインライン要素**を正しく配置することができないことでした**。サンプルコードをあまりにも心配しないでください。 :) –

+1

バッファローページでは、 'body'に' text-align:center'を使用して六角形の配置を取得します。また、最後の行の終わりには、ブレーク要素と同じ方法で必要に応じて隠された透明なフィラー要素があります。私は同じテクニックを使って簡単な例[here](https://jsfiddle.net/wzkbrhhL/)を作りました。 662pxには1つのブレークポイントしかありません。それに関連するもののほとんどは、CSSの底に向かっています。彼らが使用する手法は一般的ではなく、代わりにページの内容に調整されています。 – Ouroborus

+0

ええ、私はそれを試みた。私は 'text-align:center'が' text'以外のものを整列させるために使われることは決して知りませんでした。 :) –

1

あなたは、私はよく分からない

@media screen and (max-width: 768px) { 
.container{ 
width:500px; 
} 
} 
+0

はい、私はすでにそれを試みましたが、コンテナのサイズを変更するだけで、必要な動作を得ることができません。 –

+0

このリンクはhttps://codepen.io/gpyne/pen/iElhpで参照できます。 –

関連する問題