2013-12-08 34 views
0

我有一排<div>這將是按鈕。我模仿一些背景的實際行爲。工作很好。問題是外層<div>(行)沒有收縮包裝,因此字段集的邊框也很寬。在這裏看到:http://jsfiddle.net/L99VY/這個DIV爲什麼不收縮包裝?

我也覺得我做了一件奇怪的使用

div.button { 
    display: table-cell; 
    ... 
} 

如果我嘗試別的東西,像display-inlinefloat:left,這也影響到文本呈現按鈕的方式。與此相關的收縮包裝問題?

如果你在IE11或最新的FF中打開小提琴,你會看到我想怎麼做(背景圖像除外)。

有什麼建議嗎?

+0

我不知道你用「div」元素描述的問題不是'shrinkwrapping',而是'fieldset'的邊界,這是你想要的:[demo](http: //jsfiddle.net/davidThomas/L99VY/1/)? –

回答

2

display: inline;添加到fieldset,邊框位於fieldset。你也可以使用inline-blockbut IE7 or older不會很好。

jsFiddle

你應該看看this answer on SO一個解釋,爲什麼你fieldset的(塊級元素在這種情況下)的寬度自動擴展到其父容器的寬度。

+1

這是一個很好的例子:「CSS的設計方式適用於填充父母的孩子元素,而不是符合孩子的父母。」 – Jeroen

0

您可以將「顯示」規則添加到字段集。 例如:

 fieldset { 
      display: inline-block; 
     } 

爲什麼你不使用顯示:錶行和顯示:內聯表?他們會發揮與內嵌塊相同的效果,但會更合適。