2017-11-17 11 views
0

を扱う誰かがそれがどのように動作するか私に説明しますならば、私は感謝するでしょう。最初に、私はid "kafle"のコンテナを持っていました。私が望むようにそれを配置しました。そして今、私はそれにいくつかのタイルを配置したいと思います。私はこのようなことをしたい:image私はタイル1にid "kafle"のコンテナの幅50%、タイルを50%幅にする。私は、タイル1と2のマージンとパディングを0に設定しましたが、これにもかかわらず、タイル2がタイル1の下に来るようなものがあります。もう1つの問題は、タイル1の下にタイル3、4、5、6をどのように置くことができるのか分かりませんが、タイル2の1つのラインにあります。 、4、5、6はタイル2の高さより低くなります。どうすれば対処できますか?私はそれを説明することに感謝します。私は修正することはできませんいくつかの問題を抱えているマージンを説明すると、タイル

html, body{ 
 
    height: 100%; 
 
    min-height: 100%; 
 
    margin:0; 
 
} 
 

 

 
#kafle{ 
 
    position:relative; 
 
    height: 80%; 
 
    width: 60%; 
 
    top:10%; 
 
    left:20%; 
 
    background-color: aquamarine; 
 
} 
 

 
#onas{ 
 
    background-color: coral; 
 
    height:33%; 
 
    width:49%; 
 
    display: inline-block; 
 
    margin:0; 
 
    padding:0; 
 
} 
 

 
#aktualnosci{ 
 
    background-color: firebrick; 
 
    height:90%; 
 
    width:49%; 
 
    display: inline-block; 
 
    margin:0; 
 
    padding:0; 
 
} 
 

 
#galeria{ 
 
    background-color: forestgreen; 
 
    height:10%; 
 
    width:15%; 
 
    display: inline-block; 
 
} 
 

 
#wspierajanas{ 
 
    background-color: khaki; 
 
    height:10%; 
 
    width:15%; 
 
    display: inline-block; 
 
} 
 

 
#kontakt{ 
 
    background-color: fuchsia; 
 
    height:10%; 
 
    width:15%; 
 
    display: inline-block; 
 
} 
 

 
#minigra{ 
 
    background-color: fuchsia; 
 
    height:10%; 
 
    width:15%; 
 
    display: inline-block; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <title></title> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 

 
<body> 
 
    <script src="javascript.js"></script> 
 
    
 
    <div id="kafle"> 
 
     <div id="onas">1</div> 
 
     <div id="aktualnosci">2</div> 
 
     <div id="galeria">3</div> 
 
     <div id="wspierajanas">4</div> 
 
     <div id="kontakt">5</div> 
 
     <div id="minigra">6</div> 
 
    </div> 
 
    
 
</body> 
 
    
 
</html>

+0

CSSグリッドはこれには完璧ですが、*完全なサポートはIEのためのものではありません。そのようなスペースを見ている理由は、 ''インラインブロック ''のためです。それは空白を尊重するので、テキストブロック内の単語のように考えることができます。改行、タブ、スペースはスペースとしてレンダリングされます。 HTMLコメントを追加し、パーセンテージを50%に更新すると、間隔が表示されなくなります。https://jsfiddle.net/jmarikle/7s8yLq8x/私は代わりにflexboxをお勧めします。あなたのプロジェクトはそれを許可していますか? –

+0

Flexboxにはネストされたフレックスコンテナが必要です。レイアウトを単一のコンテナで達成することはできません。 –

+0

@Paulie_D許可されていますが、CSSグリッドを使用することができない限り(理論的には、ハッキングされた定義はクロスブラウザで多くの痛みや悲惨さを伴います)、JavaScriptやラッパーなしで実現する方法はありません。 –

答えて

-1

互いに対して、オブジェクトの位置があなたを悩まれているように見えます。

  1. #id {display:inline:block;} divはブロックのように動作します。
  2. 使用#ID {位置:相対widthtomoveのPXのlengthtomoveのPX;} 今すぐボックス(または分割)のそれぞれについて、従って2つの相対パラメータを設定し、それらは完全に自身を整列させるまで変化保ちます。

位置の詳細な使用を参照することを検討することができます:相対的なしかし、上記の作業を行う必要があります!

0

私は自分自身が嫌いなので、CSS Grid (CSS Tricks article)にこのレイアウトを作成することにしました。これはspotty compatibilityno consistencyです。

に関係なく、あなたのレイアウトはCSSに、このごく最近追加を使用して達成可能です。そのトリックはもちろん、ほとんどのブラウザで一貫して動作する構文に着いています。以下は、主要なものでうまくいくように見えるものです。

html, body{ 
 
    height: 100%; 
 
    min-height: 100%; 
 
    margin:0; 
 
} 
 

 

 
#kafle{ 
 
    position:relative; 
 
    height: 80%; 
 
    width: 60%; 
 
    top:10%; 
 
    left:20%; 
 
    background-color: aquamarine; 
 

 
    display: -ms-grid; 
 
    display: grid; 
 
    -ms-grid-columns: 1fr 1fr 1fr 1fr 1fr 1fr; 
 
    -ms-grid-rows: 1fr 1fr 1fr; 
 
    grid-template-columns: repeat(6, 1fr); 
 
    grid-template-rows: repeat(3, 1fr); 
 
    -webkit-box-align: stretch; 
 
     -ms-flex-align: stretch; 
 
      align-items: stretch; 
 
    justify-items: stretch; 
 
} 
 

 
#onas{ 
 
    background-color: coral; 
 
    grid-column: 1/4; 
 
    grid-row: 1/2; 
 
    -ms-grid-column: 1; 
 
    -ms-grid-column-span: 3; 
 
    -ms-grid-row: 1; 
 
    -ms-grid-row-span: 1; 
 
} 
 

 
#aktualnosci{ 
 
    background-color: firebrick; 
 
    grid-column: 4/7; 
 
    grid-row: 1/4; 
 
    -ms-grid-column: 4; 
 
    -ms-grid-column-span: 6; 
 
    -ms-grid-row: 1; 
 
    -ms-grid-row-span: 3; 
 
} 
 

 
#galeria{ 
 
    background-color: forestgreen; 
 
    grid-column: 1/4; 
 
    grid-row: 2/3; 
 
    -ms-grid-column: 1; 
 
    -ms-grid-column-span: 3; 
 
    -ms-grid-row: 2; 
 
    -ms-grid-row-span: 1; 
 
} 
 

 
#wspierajanas{ 
 
    background-color: khaki; 
 
    -ms-grid-column: 1; 
 
    -ms-grid-column-span: 1; 
 
    -ms-grid-row: 3; 
 
    -ms-grid-row-span: 1; 
 
} 
 

 
#kontakt{ 
 
    background-color: fuchsia; 
 
    -ms-grid-column: 2; 
 
    -ms-grid-column-span: 1; 
 
    -ms-grid-row: 3; 
 
    -ms-grid-row-span: 1; 
 
} 
 

 
#minigra{ 
 
    background-color: fuchsia; 
 
    -ms-grid-column: 3; 
 
    -ms-grid-column-span: 1; 
 
    -ms-grid-row: 3; 
 
    -ms-grid-row-span: 1; 
 
}
<div id="kafle"> 
 
    <div id="onas">1</div> 
 
    <div id="aktualnosci">2</div> 
 
    <div id="galeria">3</div> 
 
    <div id="wspierajanas">4</div> 
 
    <div id="kontakt">5</div> 
 
    <div id="minigra">6</div> 
 
</div>

0

私はちょうどあなたの質問のためのWeaveを終えました。
HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Tiles</title> 
    </head> 

    <body> 
    <div class="tile1"> 
     <h1>Tile 1</h1> 
    </div> 

    <div class="tile2"> 
     <h1>Tile 2</h1> 
    </div> 

    <div class="tile3"> 
     <h1>Tile 3</h1> 
    </div> 

    <div class="bottomLeftTiles"> 
     <div class="tile4"> 
     <h1>Tile 4</h1> 
     </div> 

     <div class="tile5"> 
     <h1>Tile 5</h1> 
     </div> 

     <div class="tile6"> 
     <h1>Tile 6</h1> 
     </div> 
    </div> 
    </body> 
</html> 

CSS:

div { 
    background-color: rgb(240, 240, 240); 
    border: 1px solid rgb(0, 0, 0); 
} 

h1 {text-align: center;} 

.tile1 { 
    width: 50%; height: 33%; 
    position: absolute; 
    left: 0; top: 0; 
} 

.tile2 { 
    width: 50%; height: 100%; 
    position: absolute; 
    right: 0; top: 0; 
} 

.tile3 { 
    width: 49.6%; height: 33%; 
    position: absolute; 
    left: 0; top: 33%; 
} 

.bottomLeftTiles { 
    width: 49.6%; height: 33%; 
    position: absolute; 
    left: 0; top: 66%; 
} 
.tile4 { 
    width: 33%; height: 100%; 
    position: relative; 
    left: 0; top: 0; 
} 
.tile5 { 
    width: 33%; height: 100%; 
    position: absolute; 
    left: 33%; top: 0; 
} 
.tile6 { 
    width: 33%; height: 100%; 
    position: absolute; 
    left: 66%; top: 0; 
} 

あなたは、要素のいくつかのサイズを変更する必要がありますが、私はこのことができます願っています。

関連する問題