2017-01-23 90 views
0

自舉3表在單個列的兩列被定義爲如何呈現在移動

<style> 
/* Override bootstrp style to make description to wrap info multiple rows in mobile */ 
.details-propertyvalue { 
    white-space:normal !important; 
} 
</style> 

<table class="table table-hover table-condensed table-striped"> 
       <tbody><tr> 
        <td> 
         Product information 
        </td> 
        <td class="details-propertyvalue"> 

sdofsdksdklöfsdklösdfklösdflöksdfkösdlökdsösdfösdkfsdfkösdkfsdöfksdfö sdfksdölfsdfsdlfökösdfösdlkfsdöfksdöflksdfösdköfksöfsdköfskdfsdfksdö ...更相似的TR的元件

在桌面屏幕中正確顯示兩列。 在移動中它也出現了兩列,但描述欄非常窄。

如何強制它出現在單欄中的移動設備:標題的第一行和描述的第二行,以便colum在縱向方向上具有完整的bolile屏幕寬度。

Bootstrap 3和jquery-ui用於ASP.NET MVC4購物車。

+0

你想通過CSS來做到這一點沒有bootstrap? –

+0

編號我想盡可能使用Bootstrap 3,理想情況下不需要任何其他自定義樣式 – Andrus

回答

0

更新基於新的信息:
您現在表明改變的標記是OK的,如果表總是/只,有兩列,並應出現更多或更少的像你的示例表,然後我倒是建議切換到橫向描述列表:http://getbootstrap.com/css/#horizontal-description

<dl class="dl-horizontal"> 
    <dt>...</dt> 
    <dd>...</dd> 
</dl> 

原來的答案: 這是不可能的,而無需使用任何其他自定義樣式或重構你的HTML是完全不同的。

但是,它相當簡單的做一些自定義的CSS。請注意,您的CSS必須在引導程序後加載,才能正常工作。

這裏有一個demo in a jsfiddle

的我都做了什麼短的版本是:

  1. 添加一個新類table-responsive,這樣我可以明確創建這個行爲上只有我想這表發生。
  2. 增加了一些替代方式(在媒體查詢),使表格單元格顯示爲您的要求:

修改HTML:

<table class="table table-hover table-condensed table-striped table-responsive"> 
    <!-- your table contents --> 
</table> 

附加覆蓋CSS:

/* adjust the 768px below to your desired width */ 
@media only screen and (max-width: 768px) { 
    table.table-responsive tr { 
    display: block; 
    } 

    table.table-responsive tr td { 
    display: block; 
    } 
} 
+0

表只有兩列。是合理的使用這個還是更好的重新因素的HTML使用引導網格系統創建2列在桌面/ 1列移動負責任的佈局? – Andrus

+1

查看我的編輯,但聽起來您可能想要利用Bootstrap水平描述列表:http://getbootstrap.com/css/#horizo​​ntal-description –

+0

非常感謝。 ''dl class =「dl-horizo​​ntal」>'似乎是最好的解決方案。對不清楚的問題抱歉。我更改了問題標題並從中刪除了表格 – Andrus

0

我自己也遇到過類似的問題。我的解決辦法是改變HTML的結構,使而不是使用表,您使用的DIV是行爲像表:

HTML

<div class="table table-hover table-condensed table-striped"> 
    <div class="table-row"> 
    <div class="table-cell"> 
     Product information 
    </div> 
    <div class="table-cell"> 
     Rafineerimata Demerara suhkur on ideaalne täiendus kohvile. Demerara rikkalik aroom ja krõmpsuv tekstuur annab küpsistele ja kookidele eriti hea maitse. Toodet võib raputada pudrule või puuviljadele. Rafineerimata Demerara suhkur on minimaalselt töödeldud ning suhkru valmistamisel on tootesse lukustatud looduslikult suhkruroos leiduv melas 
    </div> 
    </div> 
</div> 

CSS

.table { 
    display: table; 
} 

.table-row { 
    display: table-row; 
} 

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

然後您可以將它們全部更改爲display: block在手機上:

@media screen and (max-width: 600px) { 
    .table, .table-row, .table-cell { 
    display: block; 
    } 
} 

這將允許您在移動設備上將它們定位在彼此之上。

我創建了一個小提琴演示此here

希望這會有所幫助! :)

+0

我不希望重構代碼以使用div和bootstrap網格系統而不是表格嗎? – Andrus

+0

@安德魯斯 - 如果你想讓他們用Bootstrap網格系統顯示,這當然是可能的。但是,你原來的問題使用了一張表,所以我建立了我的答案:) –

0

您說:

號我想用引導3,儘可能,最好沒有任何其他的自定義樣式

儘管我寫我的回答也許它可以幫助別人:

您的表例如設置一個類名「敏感'

table.responsive{ 
    width: 100%; 
    } 
table.responsive tr { 
    display: flex; 
    display: -webkit-flex; 
    flex-wrap: wrap; 
    -webkit-flex-wrap: wrap; 
    width:100%; 
} 
table.responsive td { 
    width: 50%; //Or how much you want 

    } 
@media screen and (max-width:480px) { 
    table.responsive td{ 
     width:100%; 
    } 
} 
+0

表格只有兩列。是不是更好的重新分類HTML以使用引導網格系統而不是表格使用div?如果不是,如何僅將這個應用於特定的表,而不是應用中的所有表? – Andrus

+0

我對bootstrap的知識很周。我們可以爲特定的表設置類名嗎?

and table.a {.../table.a tr {..../table.a td {.../and else? –