2015-03-30 46 views
6

我試圖弄清楚如何在背景帶紋理或不知道背景時製作多行小點領導。當您知道背景顏色時,W3C網站會提供good example,但這不適合我的需要。 Here is a SO example的紋理背景效果非常好,但當線條突破到第二條線時,領導消失。不幸的是,兩者使用不同的方法來實現這種效果,所以我不確定在這裏結合兩全其美的最佳方式...帶有虛線的CSS響應多行列表(名稱 - - - 價格)

這裏是我正在思考的東西。可能嗎?

example

+0

您的第一個示例使用'li:before'爲一個行項目創建點領導。你可以使用'li:after'來模仿最後一行的效果。也許在一些聰明的條件下,你可以在兩者之間交替。 – 2015-03-30 21:31:58

回答

7

從我的腦海頂部東西:
(老實說,我不知道任何其他更好的和響應溶液):

CSS dashed list multiline leader

jsBin demo (so you can resize and play with)

  • 地點2 span(如表細胞)一LI組爲table
  • 特技最後跨度內到width: 1%;
  • 添加所需的虛線或點或甚至一個背景圖像到第一span'小號:after僞元件

body{background:orange;} /* No other backgrounds are used */ 
 

 
ul.leaders { 
 
    padding:  0; 
 
} 
 
ul.leaders li { 
 
    display:  table; 
 
} 
 
ul.leaders li span { 
 
    display:  table-cell; 
 
} 
 
ul.leaders li span:first-child { /* TITLE */ 
 
    position:  relative; 
 
    overflow:  hidden;  /* Don't go underneath the price */ 
 
} 
 
ul.leaders li span:first-child:after { /* DASHES */ 
 
    content:  ""; 
 
    position:  absolute; 
 
    bottom:   0.5em;  /* Set as you want */  
 
    margin-left: 0.5em;  /* Keep same for the next span's left padding */ 
 
    width:   100%; 
 
    border-bottom: 1px dashed #000; 
 
} 
 
ul.leaders li span + span {  /* PRICE */ 
 
    text-align:  right; 
 
    width:   1%;   /* Trick it */ 
 
    vertical-align: bottom;  /* Keep Price text bottom-aligned */ 
 
    padding-left: 0.5em; 
 
    /* white-space: nowrap;  /* Uncomment if needed */ 
 
}
<ul class=leaders> 
 
    <li> 
 
    <span>Salmon Ravioli</span> 
 
    <span>7.95</span> 
 
    </li> 
 
    <li> 
 
    <span>Pan seared Ahi with avocado, soy, ginger and lime</span> 
 
    <span>8.95</span> 
 
    </li> 
 
    <li> 
 
    <span>Almond Prawn Cocktail</span> 
 
    <span>7.95</span> 
 
    </li> 
 
    <li> 
 
    <span>Bruschetta</span> 
 
    <span>45.25</span> 
 
    </li> 
 
    <li> 
 
    <span>Margherita Pizza</span> 
 
    <span>108.95</span> 
 
    </li> 
 
</ul>

+0

在這種情況下,我們會遇到多行標籤的問題。 – 2015-03-30 21:41:28

+0

@DmitrySikorsky終於做到了。唯一的問題*是使用'
'。 – 2015-03-30 21:55:55

+0

@ RokoC.Buljan謝謝,這看起來不錯。任何不使用nowrap的方法? – Jeff 2015-03-30 22:14:48