1

下图已经接近我正在寻找的解决方案(请参阅我的 codepen)。唯一缺少的是<tbody>or的轮廓边框<thead>和 the 的边框之间的填充/间隙<td>

虚线表当前状态

问题

  • 如果您必须创建看起来像上图的东西,您会采取什么方法?
  • 我怎样才能实现虚线在 td (/ tr) 的边界与 tr 或 tbody 或 table 的轮廓之间有一些间隙?

代码

您可以查看codepen 上的代码。我的 CSS 方法是这样的

table {  width: 100%; }
/** outline: 0.5pt solid; outline-color: black; border-spacing: .2em 0em; **/

thead, tbody { outline: 0.5pt solid; outline-color: black; }

th.sgn { border-bottom: 1pt dotted blue; padding-top: 1ex;}    
td.sgn { border-bottom: 1pt dotted blue; padding-top: 1ex;}  
<table>
       <colgroup>
         <col width="20%">
         <col width="35%">                    
         <col width="15%">
         <col width="30%">                    
    </colgroup>
    <thead>
       <tr>
            <th>Werkzeugnr:</th>
            <th class="sgn"> &nbsp; </th>
            <th>Index</td><th class="sgn"></th>
       </tr>                            
       <tr class="sml">
            <th colspan="4"> &nbsp; </th>
       </tr>                            
    </thead>
    <tbody>
        <tr><th colspan="4"><h3>Bitte ausfüllen und abheften!</h3></th></tr>
    </tbody>
    <tbody>                                                
       <tr>
         <td>Einbaudatum:</td><td class="sgn"> &nbsp; </td>
         <td>Name</td><td class="sgn"> &nbsp;</td>
       </tr>
       <tr><td>Anlaufprobleme:</td><td><input type="checkbox"></td><td colspan="2">Bitte Grund angeben</td>
       </tr>
    </tbody>    
</table>

4

2 回答 2

1

我会用伪类来实现这个::before间距::after

  1. 首先,给你想给空间一个独特的类的元素(例如.spaced)。
<td class="spaced sgn" colspan="3"> &nbsp; </td>
  1. 然后,给它一个relative位置,::before::after相对于它定位:
.spaced {
  position: relative;
}
  1. 添加::before和你想要::afterwidth空间,并将它们分别放置在左侧和右侧:
.spaced::before,
.spaced::after {
  content: "";
  position: absolute;
  width: 1rem;
  height: 1rem;
  background: white;
  bottom: -0.5rem;
}

.spaced::before {
  left: 0;
}

.spaced::after {
  right: 0;
}

CodePen:https ://codepen.io/moaaz_bs/pen/xxPJoQL?editors=1100

于 2022-02-25T09:17:27.223 回答
0

如果您必须创建看起来像上图的东西,您会采取什么方法?

CSS 伪元素非常适合这个用例。

.sgn::after {
  content: '';
  position: absolute;
  border-bottom: 2px dotted blue;
  width: 20%;
}

你可以根据自己的喜好调整它,我不知道让它工作的宽度,但我相信你能做到。

于 2022-02-25T09:15:31.510 回答