2014-04-26 59 views
0

我對CSS和HTML還很陌生,所以我需要一點幫助。我爲我的tumblr博客製作了一個主題,並且我有三個主要的div,我想在同一行以及居中排列。你如何把三個div並排放在一起然後居中?

它應該是這個樣子(用Photoshop編輯): enter image description here

現在它看起來是這樣的: enter image description here

我到處找的答案,我嘗試了許多東西。幾乎每個教程或一條建議都包含float:left;的東西,但沒有奏效。我已有的代碼有問題嗎?我需要更改或添加什麼?我希望圖片位於中心位置,描述位於左側,鏈接位於右側。

這裏是代碼:

#top { 
margin-left:-35px; 
margin-top:30px; 
} 

#topimage { 
width:64px; 
height:64px; 
border-radius:3px; 
border:6px solid #fff; 
background-image:url('{PortraitURL-64}'); 
} 

#topdeschold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
} 

#topdesc { 
text-align:justify; 
font-size:7px; 
text-transform:uppercase; 
} 

#topdesctitle { 
color:#df8d88; 
font-size:9px; 
text-transform:lowercase; 
font-style:italic; 
text-align:right; 
} 

#toplinkshold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
} 

#toplinks { 
display:block; 
padding:6px; 
background-color:#f8f8f8; 
font-size:7px; 
text-transform:uppercase; 
} 


<div id="top"> 

<div id="topimage"></div> 

<div id="topdeschold"> 
<div id="topdesctitle">blah blah balh</div> 
<div id="topdesc"> Blah! Blah blah balh? lbalhlalg? dlff 
df gb fgbgn fgnghnghn gnhgn fhng! DGSsdf gf</div> 
</div> 

<div id="toplinkshold"> 
<div id="toplinks"> 
    <a href="/">home</a> 
</div> 

<div id="toplinks"> 
    <a href="/">ask</a> 
</div> 

<div id="toplinks"> 
    <a href="/">submit</a> 
</div> 

<div id="toplinks"> 
    <a href="/">more</a> 
</div> 
</div> 

</div> 

您的幫助表示讚賞!

+0

您需要使用[花車](http://stackoverflow.com/questions/16568272/how-css-float-works-why-height-of-the -container-element-doesnt-increase-if-it/16568504#16568504) –

回答

1

如果古老的瀏覽器支持不是問題,請使用css3 Flex。應用下面的CSS父元素

#top { 
    display:flex; 
    justify-content:space-around; 
} 

,或者你可以讓孩子的div元素inline-block使用text-align居中,並使用「margin`調整空間,像

#top { 
    text-align:center; 
} 
#top > div { 
    display:inline-block; 
    margin: 1em; /* or your desired margin */ 
} 
+0

我們有一種叫floats –

+0

是的..也是clearfix,overflow ..等等 據我所知,'float'的意思是浮動文本...但主要用於佈局。現在我們有一個名爲'flex'的東西,它是用於佈局的...... :) –

+0

這是目前爲止最好的例子。我嘗試了第二個,這是什麼出來:http://i.imgur.com/4yS8jeG.png這不完全是我想要的,但它到達那裏。這裏邊距設置爲0。我會玩弄它看看我能做些什麼。謝謝你的幫助! – user3576630

0

我想你可以將三個div分組到另一個div中,將其顯示CSS屬性設置爲阻止,然後居中這最後一個。您還應該在三個原始div上將display屬性設置爲inline-block。

祝你好運!

+0

我試過這個,發生了什麼:http://i.imgur.com/QG17u35.png我不知道什麼是錯的。我想也許我的代碼的另一部分是做某事,但唯一的另一件事是容器,我玩過它,它什麼也沒做。但我會繼續努力。 – user3576630

0

另一種方法是添加「float:left;」每個div樣式都充當您想要並排查看的數據的容器。例如;

#topimage { 
width:64px; 
height:64px; 
border-radius:3px; 
border:6px solid #fff; 
background-image:url('{PortraitURL-64}'); 
float:left; 
} 
#topdeschold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
float:left; 
} 
#toplinkshold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
float:left; 
} 

所以,你的CSS是:

#topimage { 
width:64px; 
height:64px; 
border-radius:3px; 
border:6px solid #fff; 
background-image:url('{PortraitURL-64}'); 
float:left; 
} 
#topdeschold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
float:left; 
} 
#toplinkshold { 
width:150px; 
background-color:#fff; 
padding:25px; 
margin-top:5px; 
float:left; 
} 
#top { 
margin-left:-35px; 
margin-top:30px; 
} 
#topdesc { 
text-align:justify; 
font-size:7px; 
text-transform:uppercase; 
} 
#topdesctitle { 
color:#df8d88; 
font-size:9px; 
text-transform:lowercase; 
font-style:italic; 
text-align:right; 
} 
#toplinks { 
display:block; 
padding:6px; 
background-color:#f8f8f8; 
font-size:7px; 
text-transform:uppercase; 
} 

行動做了一個的jsfiddle本:http://jsfiddle.net/vjZqC/

+0

這個例子看起來更有希望,但它最終這樣做了:http://i.imgur.com/Vtc0mva.png它似乎已經擠壓了我的第一篇文章。我不確定問題是什麼。 – user3576630

+0

這是因爲在容器中沒有真正定義的尺寸,理想情況下,您希望它們是寬度:33%;所以他們會佔據1/3(除非你把它們放在一個確定的像素大小,然後把它變成三分之一)。你需要一個垂直對齊:中間;和margin:auto;爲中心效應。所有的東西都會自動嘗試去左上角,除非有嚴格的位置:) – MysMelody

0

這裏是你必須添加到您的CSS。我試過它和它的作品:

 


    #top { 
    display:block; 
    text-align:center; 
    } 

    #topimage { 
    display:inline-block; 
    } 

    #topdeschold { 
    display:inline-block; 
    } 

    #toplinkshold { 
    display:inline-block; 
    } 

相關問題