2012-08-31 71 views
0

我試圖實現1列靈活/ 1列固定佈局。 'col-a'應該是靈活的,佔用100% - 110px,'col-b'應該固定並對齊。CSS負邊距,我做錯了什麼?

我'試圖使用負邊距,但有一點運氣。

<div class="cont"> 

    <div class="col-a"> 
    Be flexible 
    </div> 

    <div class="col-b"> 
    Be fixed 
    </div> 

</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

.cont { 
background-color: #00f; 
padding: 10px; 
overflow:hidden; 
} 

.col-a { 
background-color: #0ff; 
padding-right: 110px; 
margin-right: -110px; 
float: left; 
} 

.col-b { 
background-color: #ff0; 
width: 110px; 
float: left; 
} 

是否可以使用這種標記? /*答發現*/ 下面是解

.cont { 
    background-color: #00f; 
    overflow:hidden; 
    padding: 10px; 
} 

.col-a { 
    width: 100%; 
    background-color: #0ff; 
    margin-right: -110px; 
    float: left; 
} 

.col-b { 
    background-color: #ff0; 
    width: 110px; 
    float: right; 
} 
+0

什麼是您的CSS?另外,你有沒有嘗試過其他方法/ css? –

+0

請分享css,它會更容易幫助你。 – Krycke

+0

這就是你想要做的嗎? http://jsfiddle.net/pboissonneault/gyzkY/ –

回答

1

我不會用陰性切緣此。

這是我如何設置它。

  1. 將您的列父容器設置爲相對位置。
  2. 設置您的列A有一個110px的填充右邊(爲B列留出空間)
  3. 將您的列B設置爲絕對位於頂部,右側的固定寬度爲110px。

這將使你的A柱水平擴展100%,而對B列

這裏右邊留出空間是什麼,我上面列出的例子:http://jsfiddle.net/NPn8d/

+0

嗨,我試過這個,但是我的'cont'容器需要伸展,因爲任何一個col填滿了。 – spinners

+0

爲什麼你需要父母'cont'垂直拉伸的任何特殊原因? 如果是出於背景目的,您可以將其設置爲100%高度。否則,爲了使其動態化,您必須使用JavaScript來計算最大的孩子的身高。如果你問我,不是一個非常優雅的解決方案。 如果您對代碼結構有更深入的瞭解,我可以給您進一步的建議,告訴您如何以最有效的方式實現您的預​​期結果。 – Axel

+0

嗨Axel,找到了期望的解決方案。使用負邊距技術意味着我不必編寫腳本:-) – spinners

0

如何像這個,然後。

<style type="text/css"> 
    .cont{position:relative;} 
    .col-a{ 
      border:1px solid #0000ff; 
      width:auto; 
      margin:0,110,0,0; 
      } 
    .col-b{ 
      border:1px solid #ff0000; 
      width:110px; 
      float:right; 
      top:0; 
      position:absolute; 
      margin:0,0,0,-110 
    } 
</style> 
<div class="cont"> 
    <div class="col-a">Be flexible</div> 
    <div class="col-b">Be fixed</div> 
</div> 
+0

嗨,這對我來說並不好,因爲我的源訂單對於屏幕閱讀器的用途很重要。 – spinners

+0

@spinners編輯爲不重新排列元素 –

+0

@spinners另外,對於讀者,您可以按照您希望他們閱讀的順序設置項目的tabindex。即使在Divs也應該遵守。 –