如何在网页上排列可变长度的下划线?

时间:2014-06-30 21:11:19

标签: html css tcpdf

我正在使用TCPDF来显示一些表数据。为此,我使用HTML + CSS,然后将其转换为PDF格式。我希望在我的表格中加下划线,人们可以在其中写入笔记。我目前使用下划线字符_来绘制这些线条。我似乎遇到的问题是它们在右侧是锯齿状的(参见下面的夸张图片)。 enter image description here

我正在寻找一种不让线条锯齿的方法。实际上我可以让它们更少锯齿,但是由于非固定宽度的字体,它们仍然看起来有点锯齿,即使我添加/删除下划线字符以尝试排列它们。

我正在寻找任何合理的解决方案,其中下划线与table / div / container的右边界对齐。这可以通过任何方式完成(使用字符或CSS,甚至可能是图像),只要事情正确排列即可。就我而言,容器是<td>words words _____</td>

这样的事情: enter image description here

注意/更新:

不幸的是,在尝试了下面的答案之后,我发现TCPDF不是非常强大或宽容,当CSS标记比基本更多时。在浏览器上工作时,下面的解决方案似乎没有在HTML + CSS到{PDF到TCPDF}转换器中存活。我不确定在TCPDF开发状态下是否可以提供解决方案,至少对于免费版本而言。我现在可能不得不坚持使用不均匀的下划线字符。

3 个答案:

答案 0 :(得分:1)

如果没有看到现有的标记,很难给你很好的建议,但希望这会指出你正确的方向:JSFiddle。基本上,我们有一个全宽线来伪造下划线,然后我们的文本有一个白色背景来掩盖它下面的线。

示例HTML:

<p><span>Text</span></p>
<p><span>Longer text</span></p>
<p><span>Even longer text</span></p>

CSS:

p {
    position: relative;
}

p:after {
    background: #000;
    content: "";
    display: block;
    height: 1px;
    position: absolute; bottom: 1px;
    width: 100%;
}

span {
    background: #fff;
    padding-right: 5px;
    position: relative;
    z-index: 1;
}

答案 1 :(得分:1)

这是一个使用bottom-border来实现下划线的解决方案。

.container {
    width: 400px;
    background-color: purple;
    color: white;
    padding: 1rem;
}

p {
    border-bottom: solid white 1px;
}

span {
    border-bottom: solid purple 3px;
    padding-right: 1rem;
}

<div class="container">
    <p><span>Question thingy</span></p>
    <p><span>Question thingy asdf </span></p>
    <p><span>Question thingy asdf asdf asdf  </span></p>
</div>

它产生这个输出:

Screenshot

答案 2 :(得分:0)

我想到了一个念头......

或许不是专注于使线条保持一致,我可以改变我的设计。即使用类似于Excel表格的表格。

 _________________
|_words__|________|  <-- empty cells instead 
|_words2_|________|      of underlines

TCPDF似乎可以解决这些问题。