javascript - 用点填充两个文本元素之间的空间

标签 javascript jquery html css space

<分区>

我正在尝试找出如何自动填充两个对象之间的空间。我有菜单项和价格。

目标是这样的:

Burger..........................$9.99
Steak and Potato.........$14.99
Mac and Cheese.........$6.99

菜单项和价格之间的间距应该相同。 用户可以输入菜单项和价格,我需要填写任何空格。

这是我试过的方法,但效果不佳:

.inLine {
  display: inline-block;
}
 <h1 class='inLine menuItem'> Burger </h1> 
<span class='inLine dots'> .....................</span>
<h3 class='inLine price'>  $9.99 </h3> 
<br>
<h1 class='inLine menuItem'> Steak </h1> 
<span class='inLine dots'> .....................</span>
<h3 class='inLine price'>  $14.99 </h3>

<h1 class='inLine menuItem'> Mediterranean Chopped Salad </h1> 
<span class='inLine dots'> .....................</span>
<h3 class='inLine price'>  $14.99 </h3>

问题是无论元素名称有多长,点都需要占用正确的空间量。我已经尝试将点设置为 width: 100% 但似乎并没有这样做。有任何想法吗?

最佳答案

section {
  display: flex;                     /* 1 */
  align-items: baseline;             /* 2 */
  margin-bottom: 10px;
}
section > * {
  padding: 0;
  margin: 0;
}
span {
  flex: 1;                          /* 3 */
  overflow: hidden;                 /* 4 */
}
<section>
  <h1> Burger </h1>
  <span>..............................................................................................................................................................</span>
  <h3>  $9.99 </h3>
</section>
<section>
  <h1> Steak </h1>
  <span> ..............................................................................................................................................................</span>
  <h3>  $14.99 </h3>
</section>
<section>
  <h1> Mediterranean Chopped Salad </h1>
  <span> ..............................................................................................................................................................</span>
  <h3>  $14.99 </h3>
</section>

注意事项:

  1. 建立 flex 容器。
  2. 将所有元素与基线垂直对齐。
  3. 点将占用线上的所有可用空间。这将迫使菜单项和价格位于容器的两端。
  4. 任何多余的点都被剪掉了。

您可以通过调整容器的宽度轻松控制菜单项与价格之间的距离。在上面的示例中,宽度设置为 100%( block 级元素的默认值)。

当然,在你的 span 元素中有这么多点是很丑陋的。但这是一个基本的例子。您可以尝试使用伪元素或编写循环脚本。

或者,您可以尝试使用虚线点线 边框

section {
  display: flex;
  align-items: baseline;
  margin-bottom: 10px;
}
section > * {
  padding: 0;
  margin: 0;
}
span {
  flex: 1;
  border-bottom: 2px dotted #333;
<section>
  <h1> Burger </h1>
  <span></span>
  <h3>  $9.99 </h3>
</section>
<section>
  <h1> Steak </h1>
  <span></span>
  <h3>  $14.99 </h3>
</section>
<section>
  <h1> Mediterranean Chopped Salad </h1>
  <span></span>
  <h3>  $14.99 </h3>
</section>

关于javascript - 用点填充两个文本元素之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438026/

相关文章:

javascript - 如何在 AJAX 加载的 HTML 上创建新的 Bootstrap 选择器控件?

javascript - AngularJs ng-href 动态链接的范围未更新/工作

javascript - 使用 ui-sref 解析处于 ui-router 状态的对象

javascript - jQuery:处理混合 html/js ajax 响应

javascript - 如何使完整的百万值显示在 y 轴和工具提示上 (Highcharts)

jquery - 在ajax加载的内容中预加载图像

javascript - 如何在 HTML 文件之间保留变量值?

html - Rails 形式的文本区域

javascript - 如何从数组中检索并显示本地存储中的数据?

javascript - 如何将此功能放入表单元素按钮中?