Here is a solution to display a dotted line between 2 texts on one line.
It used the display: flex;
property to align the dotted line and the texts on the left an right :
.wrap {
display: flex;
}
.left {
flex: 1;
display: flex;
}
.left::after {
content: '';
border-bottom: 1px dotted;
flex: 1;
margin: 0 .5em;
}
<div class="wrap">
<span class="left">Name :</span>
<span class="right">Engineer</span>
</div>
<div class="wrap">
<span class="left">Factory location :</span>
<span class="right">(not invoice address)</span>
</div>
Previous answer with floats :
Output :
This solution floats both texts and the dotted bottom border expands to the remaining width. Here is the relevant code :
div {
height: 1em;
}
.left,
.right {
padding: 1px 0.5em;
background: #fff;
float: right;
}
.left {
float: left;
clear: both;
}
.dotted {
border-bottom: 1px dotted grey;
margin-bottom: 2px;
}
<div class="left">Name:</div>
<div class="right">Engineer</div>
<div class="dotted"></div>
<div class="left">Factory location:</div>
<div class="right">not invoice address</div>
<div class="dotted"></div>