当前位置: 首页 > 知识库问答 >
问题:

添加破折号直到换行

段干高歌
2023-03-14

可以设置文本样式,以便在出现换行符之前添加破折号。

示例:

Lorem ipsum dolor坐在那里,奉献给我们,我们的工作和伟大的礼物。我们的服务,我们的服务--------------------------------------------------------

我爱你,我爱你,我爱你,我爱你,我爱你,我爱你,我爱你,圣骑士--------------------------------------------------------------------------------

作为输入(由tinymce生成的模板),但可以根据需要引入任何额外的标记。这个想法是使用html2pdf从这个html生成一个pdf文件,使用这种格式,所以我想知道是否有一个解决方案,使用html/css/js,一个tinymce的插件或通过配置html2pdf类。

我曾尝试将每个段落包装在span/p标记中,然后使用伪类:after

span:after {
  display: inline-block;
  content: " -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ";
  width: 100%;
  overflow: hidden;
}
<html>

<body>
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
  <br><br> Lorem ipsum dolor sit amet, consectetur adipisicing elit
  <br> Lorem ipsum
  <br> Lorem ipsum dolor sit amet, consectetur
</body>

</html>

使用大型内容属性,并在发生换行时隐藏多余的破折号。但是,它在不隐藏额外破折号的情况下显示整个内容。

共有2个答案

孙明德
2023-03-14

您可以尝试以下方法:

body {
  background:url(http://placekitten.com/800/600);
}
div.container {
  border:1px solid white;
  padding:10px;
  width:700px;
  margin:0 auto;
}
div.inner-container {
  overflow:hidden;          
  position:relative;
  width:100%;
}
div.inner-container span {
  color:white;
  position:relative;     
  font-size:20px;
}
div.inner-container span:after {
  content:'';    
  position:absolute;
  width:300vw; /* as large as possible */
  border-bottom:0.05em dotted white;
  left:100%;
  bottom:0.25em;
  z-index:-1;
}

当然,您必须将文本包装到span元素中,并手动或使用脚本将所有内容包装到一些容器div中。下面是为您选择某个元素(主体)的所有内容并换行文本的脚本:

$(document.body).contents().wrapAll("<div class='container'>")
                .closest('div.container')
                .wrapInner("<div class='inner-container'>")
                .end().filter(function(i,e){ return e.nodeType == 3}).wrap('<span>');

请注意,我们使用2个容器,外部。容器和内部。内部容器。这是因为. ine-容器用于剪辑内容,而外部容器用于呈现边框。否则边框(如果使用)将接近虚线/虚线的末端,这确实很难看。

编辑:我已经测试了演示,除了所谓的FireFox,所有浏览器都运行良好,FireFox也有自己的行为方式,不关心标准。。。我不认为这里有什么解决办法,除非使用其他方法。仍然有一些方法,但请注意,这里的演示在图像背景上呈现所有虚线,还有一些其他解决方案,但它不能以这种方式工作(我的意思是文本背景将显示得很丑)。。。

这是一个支持FireFox的丑陋的演示,它丑陋是因为你不能在父母的某个图像背景上显示文本(末尾有虚线)。但是,如果坚实的背景是好的,这个演示是可以接受的(尽管它比第一个演示更复杂)。

詹斌蔚
2023-03-14

CSS很接近,但是您在这里所能做的有局限性。使每一条线都包裹在跨度中是关键。看起来您缺少溢出:隐藏;在跨度上。应该在那里,而不是在:after psuedo选择器上。

此外,还需要使用空白属性使跨度不包裹。

这是一把小提琴,希望它能让你更靠近:http://jsfiddle.net/adamfullen/6mG54/

span {
  display: block;
  overflow: hidden;
  white-space: nowrap;
}

span:after {
  content: " -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ";
}
<span>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
    </span>
<br>
<span>Lorem ipsum dolor sit amet, consectetur adipisicing elit</span>
<br>
<span>Lorem ipsum</span>
<br>
<span>Lorem ipsum dolor sit amet, consectetur</span>
 类似资料:
  • 所以信用卡号码有效的条件之一是“前4位数字之和必须比后4位数字之和少1”,我相信问题可能是它把破折号算作一个数字,但不确定。规则4是所有数字的和必须被4整除,这似乎有效,但规则5不是。 对不起,我对编码很陌生。

  • 我试图将像“plex”或“emby”这样的实时代码转换与我的应用程序集成在一起。 我可以服务dash内容到shaka-player或dash.js,但只有在“现场模式”。但我想通过玩家来实现搜索。 我看了一下plex,为了启用这一点,他们创建了自己的mpd文件和持续时间,这样玩家就有了一个完整的搜索栏。 然而,当寻找时,玩家会要求一个段号,如:449。我需要停止ffmpeg并使用偏移量重新启动,但

  • 问题内容: 我开始学习一些JavaScript,并且了解在命名标识符时不允许使用破折号。但是,在CSS中,ID和类通常使用破折号。 在CSS中使用破折号是否会干扰javascript交互?例如,如果我要使用。我已经尝试了一些使用getElementByID并将破折号作为div ID的名称的示例,并且它可以工作,但是我不确定在所有其他情况下是否都是这种情况。 问题答案: 在ID(或类名,如果您选择的

  • 我的dash应用程序具有基于可用dash留档中找到的食谱的导航。它的工作原理,但它不好看。谁知道介绍菜单的更好方法?我不想开发一个特殊的流星组件,但我很乐意使用目前可用的框架之一(引导,语义学,...)。

  • 我正在尝试创建一个网站来播放一些视频。对于每一个视频,我在3个不同的文件夹中提取视频、音频和字幕。碰巧一个视频有多个音轨和多个字幕。我做了很多研究,但我不知道如何将它们全部添加到清单中。现在,我使用以下命令: 我的两个视频有不同的分辨率和比特率,而且效果非常好。但我没有任何字幕,我的两个音轨被认为是同一个音轨,有两个不同的比特率(就像视频)。我想我应该有很多改编集,但我不知道如何制作它们。 如何以

  • 问题内容: 我希望这可以使某些使用破折号的样式的人免于头痛,尤其是因为引导程序变得如此流行。 我通过以下方式使用角度1.0.5 在ngClass文档中,该示例很简单,但还提到该表达式可以是类名到布尔值的映射。我试图在我的图标上使用“ icon-white”样式,如引导文档中所示,具体取决于布尔变量。 上面的行不起作用。当true为true 时,该类不附加。但是,如果将键更改为,则会成功将其添加到类