此问题已在此处有答案:
Create leading dots in CSS(18回答)
7小时前关闭
我想显示一些文本,然后虚线,然后一些更多的文本在同一行在HTML页面上,例如。
Name: .......................................................... (Engineer)
我希望“名称”是左对齐对左边界和“工程师”是右对齐对右边界,然后浏览器能够填补两者之间差距与重复的点。
我已经尝试了很多不同的方法来使用CSS和HTML来实现这一点,但都不能完全正确。我不想指定每个组件的宽度(实际或百分比),以便解决方案可以重用不同长度的单词,例如,相同的解决方案可以使用:
Factory Location: .................................... (Not invoice address)
6条答案
按热度按时间nzrxty8p1#
在现代浏览器中,这可以通过使用flex-box显示来实现。Flex-box具有flex-grow属性,该属性指定当元素的总大小小于容器大小时,如何在元素之间分配空闲空间。Source for the explanation is cimmanon's answer here.
通过将
flex-grow
仅分配给产生点的元素,意味着默认情况下整个剩余空间将被它用完。中间的点可以使用(a)径向渐变或(b)边框来生成。我更喜欢径向渐变,因为它们允许更好地控制每个点之间的空间及其大小。径向渐变对浏览器的支持较低,但这不应该是一个大问题,因为它等于对Flexbox的支持(如果不是更好)。
浏览器自定义:
flex-grow
属性。因此,我们必须为左右跨度之间的点引入额外的span
。可以在这里找到sample。span
标记上的flexbox,因此需要将其替换为div
标记(或需要设置display: block
)。此外,6.1之前的Safari版本不支持flex-grow
属性。This sample有这些版本的实现。最终输出:
把所有不同的部分放在一起,this sample可以在IE10,IE11,Chrome,Opera,Firefox和Safari(本质上,所有支持flexbox的版本)中工作。这种方法也可以在works well with image和渐变背景中工作。
**浏览器支持:**Flexbox|梯度
ryevplcw2#
这里有一个解决方案,在一行上显示两个文本之间的虚线。它使用
display: flex;
属性将虚线和左右文本对齐:上一个带浮点数的答案:
这个解决方案浮动两个文本,虚线底部边框扩展到剩余的宽度。
jfgube3f3#
我建议,也许
ul
是一个选择:CSS:
JS Fiddle demo。
编辑以更正CSS。* 和 * HTML。哎呀。
编辑以回应@Leigh的(准确)评论:
这不是OP所要求的吗?这只是给出了一个点下划线(FF 3.5),而不是两段文字之间的点。
我调整了一下CSS,隐藏了
span
s下的虚线边框:诚然,这只在Chrome 8和Firefox 3.6,Ubuntu 10.10中进行了测试。
Updated JS Fiddle demo。
ifmq2ha24#
我不想把功劳归于自己,但我在www.example.com上找到了一个很好的解决方案codingforums.com
我已经做了一个JSFiddle了。
http://jsfiddle.net/DeDRE/9/
(虚线是用一张图片做的:dot.gif。如果你在阅读这篇文章的时候没有看到任何虚线,那么我现在使用的主机一定是把这张图片离线了)
来源:http://www.codingforums.com/showpost.php?p=578354&postcount=4
tsm1rwdh5#
我的解决方案是使用
postion:relative;
和position:absolute;
联系我们
联系我们
示例:http://jsfiddle.net/PyCnT/
行有
position:relative;
和一个固定的宽度。任何span
的孩子将有position:absolute;
,并使用left:0
和right:0
将跨度移动到正确的位置。添加background:white
覆盖了span
背景中的点。iezvtpos6#
预览:http://jsfiddle.net/E7cyB/1/