如何创建一个下划线,填充文本行末尾和DIV宽度结束之间的空白区域。
我正在尝试以下方法:
我希望在屏幕变小时产品线中断。我希望价格保持在右边,并加下划线。最后一个单词(Mayo)和价格之间的空格必须自动填充下划线。
大屏幕:
老奶酪 - 沙拉,牛油果,鸡蛋,草药梅奥...................... 500
屏幕较小:
老奶酪 - 沙拉,牛油果,鸡蛋,
草药梅奥.......................................... 500
超小屏幕:
老奶酪 - 沙拉,香蕉,
鸡蛋,草药
梅奥........................... 500
我有以下标记:
<div class="productline">
<div class="product">
Old Cheese – Salad, Avocado, Egg, Herbal Mayo
</div>
<div class="line"> </div>
<div class="price">500</div>
</div>
.productline {
width:300px;
}
.product {
display:table-cell;
white-space: nowrap;
}
.line {
border-bottom: 1px solid black;
display: table-cell;
width:100%;
}
.price {
border-bottom:1px solid black;
display: table-cell;
white-space: nowrap;
vertical-align:bottom;
}
http://jsfiddle.net/florisvl/zV6Yd/
答案 0 :(得分:3)
这是一个技巧,但它有效(至少在FF测试):
HTML:
<table>
<tr>
<td>
<span>
Old Cheese – Salad, Avocado, Egg, Herbal Mayo
</span>
</td>
<td class="price">
<span>
500
</span>
</td>
</tr>
</table>
CSS:
table{
border-collapse: collapse;
width: 100%;
}
td{
border-bottom: 3px dotted black;
vertical-align: bottom;
padding: 0;
}
td.price{
text-align: right;
}
td > span{
background-color: white;
position: relative;
bottom: -5px;
}
技巧是虚线边框实际上跨越整个行的底部,但span
的位置是为了掩盖它们正下方的边框。
答案 1 :(得分:0)
我在产品上使用float: left
,在价格上使用float: right
来实现此效果。 See this demo
这需要使用clearfix
实施。
<div class="menu">
<div class="product clearfix">
<div class="name">Old Cheese - Salad, Avocado, Egg, Herbal Mayo</div>
<div class="price">500</div>
</div>
<div class="product clearfix">
<div class="name">Stuff, stuff and more stuff</div>
<div class="price">100</div>
</div>
<div class="product clearfix">
<div class="name">And a bit more</div>
<div class="price">200</div>
</div>
</div>
.menu {
border: 2px solid red;
padding: 5px;
}
.product {
position: relative;
border-bottom: 1px dotted black;
}
.product .name {
float: left;
border-bottom: 1px solid white;
margin-bottom: -1px;
}
.product .price {
float: right;
}
/* Clearfix */
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
包装效果不如使用表格那么好。
答案 2 :(得分:0)
也许并不完全是你想要的但是接近。我想我之前已经看过这个用伪元素解决了但是我找不到它来搜索SO。
<强> HTML 强>
<div class="productline">
<div class="product">
Old Cheese – Salad, Avocado, Egg, Herbal Mayo
</div>
<div class="price">500</div>
</div>
<强> CSS 强>
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.productline {
width:50%;
overflow:hidden;
border:1px solid black;
padding:15px;
overflow:hidden;
position: relative;
}
.product {
display: inline-block;
vertical-align:bottom;
width:60%;
line-height:1em;
border-bottom:1px dashed black;
}
.price {
vertical-align:bottom;
display: inline-block;
width:35%;
position: relative;
text-align: right;
line-height:1em;
border-bottom:1px dashed black;
}