2016-03-03 53 views
3

我怎樣才能定位3像這樣的圖像與CSS?如何在兩個相同高度的列中放置3張圖像?

enter image description here

我試過多種方法,如inline-block來定位我的圖片類似上面的圖像,但一切都變了。我也嘗試通過互聯網尋找這類事情的教程,但找不到任何可以幫助我的東西。

@import url(https://fonts.googleapis.com/css?family=Source+Code+Pro:300); 
 
@import url(https://fonts.googleapis.com/css?family=Crimson+Text:400italic); 
 

 
html { 
 
    height: 100%; 
 
    box-sizing: border-box; 
 
} 
 

 
body { 
 
    width: 1500px; 
 
    text-align: center; 
 
    font-family: arial; 
 
    margin: 0 auto; 
 
} 
 

 
header ul { 
 
    display: flex; 
 
    list-style-type: none; 
 
    justify-content: space-around; 
 
    padding-bottom: 10px; 
 
    align-items: center; 
 
    border-bottom: 2px solid black; 
 
    font-family: 'Source Code Pro'; 
 
} 
 

 
footer ul { 
 
    display: inline-block; 
 
    list-style-type: none; 
 
    align-items: center; 
 
    font-family: 'Source Code Pro'; 
 

 
} 
 

 
.logo { 
 
    font-family: 'Source Code Pro'; 
 
    font-size: 40px; 
 
    padding-top: 20px; 
 
    font-weight: lighter; 
 

 
} 
 

 
/* Website nav code */ 
 
#top-nav ul { 
 
    list-style-type: none; 
 
} 
 

 
a { 
 
    color: inherit; 
 
    text-decoration: none; 
 
} 
 

 

 
/* Shop nav code */ 
 
#bottom-nav { 
 
    display: flex; 
 
    list-style-type: none; 
 
    justify-content: space-around; 
 
    margin-top: 50px; 
 
    padding-bottom: 10px; 
 
    align-items: center; 
 
    font-family: 'Crimson Text'; 
 
} 
 

 
#bottom-nav ul { 
 
    list-style-type: none; 
 
} 
 

 
a { 
 
    color: inherit; 
 
    text-decoration: none; 
 
} 
 

 
#bottom-nav ul li { 
 
    display: inline-block; 
 
    padding: 15px 20px 0 20px; 
 
} 
 

 
nav ul { 
 
    list-style-type: none; 
 
} 
 

 
.info { 
 
    display: none; 
 
    color: #fff; 
 
    left : 0; 
 
    top : 45%; 
 
    right : 0; 
 
    text-align : center; 
 
    position: absolute; 
 
} 
 

 
/* Images code */ 
 

 
/* Footer code */ 
 
#footer { 
 
    background: black; 
 
    text-align: center; 
 
    color: white; 
 
\t \t width:100%; 
 
\t \t float:left; 
 
\t } 
 

 
    .wrap { 
 

 
    \t \t position:relative; 
 
    \t \t margin:0 auto; 
 
    \t \t width:900px; 
 
     height: 200px; 
 
    \t } 
 

 
    .wrap ul { 
 
    list-style-type: none; 
 
    }
<!DOCTYPE html> 
 
<html lang="en"> 
 
    <head> 
 
    <meta charset="UTF-8"/> 
 
    <title>Gullible</title> 
 
    <link rel="stylesheet" href="css/women.css" media="screen" title="no title" charset="utf-8"/> 
 
    <link href="normalize.css" rel="stylesheet" type="text/css"> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
    <script type="text/javascript" src="script.js"></script> 
 
    <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCJnj2nWoM86eU8Bq2G4lSNz3udIkZT4YY&amp;sensor=false"></script> 
 
    </head> 
 
    <body> 
 
    <header> 
 
     <nav id="top-nav"> 
 
     <h1 class="logo"><a href="index.html">Gullible</a></h1> 
 
     <ul> 
 
      <li><a href="index.html">Home</a></li> 
 
      <li><a href="shop.html">Shop</a></li> 
 
      <li><a href="visit.html">Visit</a></li> 
 
      <li><a href="contact.html">Contact</a></li> 
 
     </ul> 
 
     </nav> 
 
    </header> 
 
    <nav id="bottom-nav"> 
 
     <ul> 
 
     <li><a href="shop.html">Men</a></li> 
 
     <li><a href="women.html">Women</a></li> 
 
     <li><a href="denim.html">Denim</a></li> 
 
     <li><a href="suits.html">Suits</a></li> 
 
     <li><a href="dresses.html">Dresses</a></li> 
 
     <li><a href="accessories.html">Accessories</a></li> 
 
     </ul> 
 
    </nav> 
 
    <div id="jacket" class="pics"><img src="http://i.imgur.com/YJMNEtS.jpg"/> 
 
     <div class="overlay"></div> 
 
     <div class="info"> 
 
     <p class="text"></p> 
 
     </div> 
 
    <div id="jacket1" class="pics"><img src="http://i.imgur.com/xWJN7RP.jpg"/> 
 
     <div class="overlay"></div> 
 
     <div class="info"> 
 
     <p class="text"></p> 
 
     </div> 
 
    </div> 
 
    <div id="hoodie" class="pic"><img src="http://i.imgur.com/47iFqA1.jpg"/> 
 
     <div class="overlay"></div> 
 
     <div class="info"> 
 
     <p class="text"></p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div id="" class="pic"><img src=""/> 
 
     <div class="overlay"></div> 
 
     <div class="info"> 
 
     <p class="text"></p> 
 
     </div> 
 
    </div> 
 
    <div id="footer"> 
 
     <div class="wrap"><strong>FIND US ON</strong> 
 
     <ul> 
 
      <li><a href="">Twitter</a></li> 
 
      <li><a href="">Facebook</a></li> 
 
      <li><a href="">Pintrest</a></li> 
 
      <li><a href="">Instagram</a></li> 
 
     </ul> 
 
     </div> 
 
     <div class="wrap"><strong>NAVIGATION</strong> 
 
     <ul> 
 
      <li><a href="">Home</a></li> 
 
      <li><a href="">Shop</a></li> 
 
      <li><a href="">Visit</a></li> 
 
      <li><a href="">Newsletter</a></li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </body> 
 
</html>

+1

你看過Bootstrap嗎? – Hideous1

+0

是的,但我被告知不使用bootstrap,直到我開發出一個良好的CSS的理解,以避免依賴它。 – LCAD

+1

儘管你的凹痕,你似乎有jacket1和連帽衫嵌套在夾克裏面。這是故意的嗎? – Nate

回答

3

使用CSS flexbox

非常簡單,使用嵌套的柔性容器。 Flexbox的的

.outer-flex-container { 
 
\t display: flex; 
 
} 
 

 
.inner-flex-container { 
 
\t display: flex; 
 
\t flex-direction: column; 
 
\t margin-left: 5px; 
 
}
<div class="outer-flex-container"> 
 

 
    <div class="image"> 
 
    \t <img src="http://dummyimage.com/300x205/cccccc/fff" alt=""> 
 
    </div> 
 

 
    <div class="inner-flex-container"> 
 

 
     <div class="image"> 
 
     \t <img src="http://dummyimage.com/150x100/cccccc/fff" alt=""> 
 
     </div> 
 
\t \t 
 
     <div class="image"> 
 
     \t <img src="http://dummyimage.com/150x100/cccccc/fff" alt=""> 
 
     </div> 
 

 
    </div><!-- END .inner-flex-container --> 
 

 
</div><!-- END .outer-flex-container -->


優點:

  1. 最少的代碼;非常有效的
  2. centering, both vertically and horizontally, is simple and easy
  3. equal height columns are simple and easy
  4. multiple options for aligning flex elements
  5. 它的響應
  6. 不像花車和表格,其提供有限的佈局能力,因爲他們從來沒有用於建築佈局,Flexbox將是具有現代(CSS3)技術廣泛的選擇。

注意Flexbox將被所有主流瀏覽器,支持except IE 8 & 9。一些最新的瀏覽器版本,例如Safari 8和IE10,需要vendor prefixes。要快速添加所需的所有前綴,請使用Autoprefixerthis answer中的更多瀏覽器兼容性詳細信息。

1

檢查下面的代碼,希望它有助於..注意風格是內聯,你可以把它放在任何你想要的。最好的地方是在外部的CSS文件,但它又是你的願望: -

<html> 
<body> 
<div id="" class="pic" style="float:left;background:yellow;"> 

     <div class="overlay" style="float:left;width:30%;"> 
     Left Hand Side Pic 
     <img src=""/></div> 
     <div id="right-side" style="float:left;width:70%;"> 
     <div id="RightPicAbove" class="info" style="background:red;"> 
     Left Hand Side Above Pic 
     </div> 
     <div id="RightPicBelow" class="info" style="background:green;"> 
     Rigth Hand Side Below Pic 
     </div> 
     </div> 
</body> 
</html> 
+0

感謝關於如何定位圖像的顏色編碼指南。 – LCAD

+0

我很高興我能夠幫助你@LCAD – Kamamba

1

我想你想使用的是所謂的浮動。如果你將#hoodie圖片浮動到左邊,然後將你的#jacket圖片放入一個包含div的div中(爲了簡單起見,我們將它稱爲.jackets),然後將它浮動到右邊,你應該得到期望的效果。看我的jsfiddle

順便說一句,你在#jacket元素中缺少一個封閉的div標籤。

.jackets { 
    float: right; 
} 

#hoodie { 
    float: left; 
    width: 50%; 
} 

#jacket { 
    float: right; 
} 

#jacket1 { 
    float: right; 
    clear: both; 
} 
1

試試這個

<div id="jacket" class="pics"> 
      <div class="imgcont"> 
       <img src="http://i.imgur.com/47iFqA1.jpg" /> 
       <div class="overlay"></div> 
       <div class="info"> 
        <p class="text"></p> 
       </div> 
      </div> 
      <div class="imgcont"> 
       <div id="jacket1" class="pics"><img src="http://i.imgur.com/xWJN7RP.jpg" /> 
        <div class="overlay"></div> 
        <div class="info"> 
         <p class="text"></p> 
        </div> 
       </div> 
       <div id="hoodie" class="pic"> 
        <img src="http://i.imgur.com/YJMNEtS.jpg" /> 
        <div class="overlay"></div> 
        <div class="info"> 
         <p class="text"></p> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div id="" class="pic"><img src="" /> 
      <div class="overlay"></div> 
      <div class="info"> 
       <p class="text"></p> 
      </div> 
     </div> 
     <div id="footer"> 
      <div class="wrap"><strong>FIND US ON</strong> 
       <ul> 
        <li><a href="">Twitter</a></li> 
        <li><a href="">Facebook</a></li> 
        <li><a href="">Pintrest</a></li> 
        <li><a href="">Instagram</a></li> 
       </ul> 
      </div> 
      <div class="wrap"><strong>NAVIGATION</strong> 
       <ul> 
        <li><a href="">Home</a></li> 
        <li><a href="">Shop</a></li> 
        <li><a href="">Visit</a></li> 
        <li><a href="">Newsletter</a></li> 
       </ul> 
      </div> 
     </div> 

和CSS

@import url(https://fonts.googleapis.com/css?family=Source+Code+Pro:300); 
    @import url(https://fonts.googleapis.com/css?family=Crimson+Text:400italic); 
    html { 
     height: 100%; 
     box-sizing: border-box; 
    } 

    body { 
     width: 1500px; 
     text-align: center; 
     font-family: arial; 
     margin: 0 auto; 
    } 

    header ul { 
     display: flex; 
     list-style-type: none; 
     justify-content: space-around; 
     padding-bottom: 10px; 
     align-items: center; 
     border-bottom: 2px solid black; 
     font-family: 'Source Code Pro'; 
    } 

    footer ul { 
     display: inline-block; 
     list-style-type: none; 
     align-items: center; 
     font-family: 'Source Code Pro'; 
    } 

    .logo { 
     font-family: 'Source Code Pro'; 
     font-size: 40px; 
     padding-top: 20px; 
     font-weight: lighter; 
    } 
    /* Website nav code */ 

    #top-nav ul { 
     list-style-type: none; 
    } 

    a { 
     color: inherit; 
     text-decoration: none; 
    } 
    /* Shop nav code */ 

    #bottom-nav { 
     display: flex; 
     list-style-type: none; 
     justify-content: space-around; 
     margin-top: 50px; 
     padding-bottom: 10px; 
     align-items: center; 
     font-family: 'Crimson Text'; 
    } 

    #bottom-nav ul { 
     list-style-type: none; 
    } 

    a { 
     color: inherit; 
     text-decoration: none; 
    } 

    #bottom-nav ul li { 
     display: inline-block; 
     padding: 15px 20px 0 20px; 
    } 

    nav ul { 
     list-style-type: none; 
    } 

    .info { 
     display: none; 
     color: #fff; 
     left: 0; 
     top: 45%; 
     right: 0; 
     text-align: center; 
     position: absolute; 
    } 
    /* Images code */ 
    /* Footer code */ 

    #footer { 
     background: black; 
     text-align: center; 
     color: white; 
     width: 100%; 
     float: left; 
    } 

    .wrap { 
     position: relative; 
     margin: 0 auto; 
     width: 900px; 
     height: 200px; 
    } 

    .wrap ul { 
     list-style-type: none; 
    } 

    .imgcont { 
     display: inline-block; 
    } 
+1

你應該解釋你的代碼。代碼只有答案鼓勵複製和粘貼,而不加強你試圖幫助解釋的原則。 – catch22

+0

嗯,我的一個方法包括用div標籤分組兩個較小的圖像,將大圖像分開,然後在大圖像中添加嵌入塊元素。該方法最終以大圖像的一個小圖像結束,但第二個小圖像結束於大圖像的上方。 – LCAD

+0

我看到你的代碼根本沒有包含任何CSS,但是改變了divs的位置來創建佈局。我要去看一看,看看結果如何發生。 – LCAD