這不是最優雅的解決方案,但它的工作原理。我想去純粹的CSS路線,但無法弄清楚。好的工作,jblasco和凱爾七橡樹,找出來!
這是我的jsFiddle demo。如果你不介意使用一些JavaScript雖然(利用jQuery的在我的例子):
HTML:
<div id="wrapper">
<div class="side"></div>
<div id="middle">One line of text.</div>
<div class="side"></div>
</div>
CSS:
#wrapper {
margin: 0 auto;
width: 1000px;
}
#wrapper div {
float: left;
height: 300px;
}
.side {
background: #ddd;
}
#middle {
background: #eee;
padding: 0 30px;
text-align: center;
}
的JavaScript:
var adjustSize = function(){
// Declare vars
var wrapper = $('#wrapper'),
middle = $('#middle'),
totalWidth = wrapper.width(),
middleWidth = middle.width(),
middleOuterWidth = middle.outerWidth(),
remainingWidth = totalWidth - middleOuterWidth,
sideWidth;
if(remainingWidth % 2 === 0){
// Remaining width is even, divide by two
sideWidth = remainingWidth/2;
} else {
// Remaining width is odd, add 1 to middle to prevent a half pixel
middle.width(middleWidth+1);
sideWidth = (remainingWidth-1)/2;
}
// Adjust the side width
$('.side').width(sideWidth);
}
嗯..我只是想出了一個方法,用兩個divs,一個在另一個裏面......可能甚至比三列的想法更整潔一點。無論如何,這三列可能嗎? – deflime 2011-12-16 06:08:55
這是您正在面臨的實際編程問題嗎?如果是這樣,考慮改寫你的問題,並向我們展示你可能已經嘗試過的任何東西(例如,你是否有一些基礎標記供我們使用?)。我們通常更喜歡關於編碼難題的實際問題。 – BoltClock 2011-12-16 06:10:06
我相信這篇文章涵蓋了你要找的內容:http://www.alistapart.com/articles/holygrail/ – David 2011-12-16 06:14:20