输入带有虚线边框的文本,并且笔划长度等于字符

时间:2015-04-18 21:09:45

标签: html css

如何使用CSS创建输入文本,使用虚线底部边框/线条表示笔画长度等于每个字符的长度?

以下是一个例子:

enter image description here

3 个答案:

答案 0 :(得分:2)

dashed边框样式没有给出确切的效果,因为我们cannot control the length of strokes。相反,我们可以通过在输入后面使用绝对定位的伪元素来创建虚线边框,并通过letter-spacing属性指定笔划之间的间距。

input[type="text"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 0;
  outline: 0;
  background: transparent;
  width: 12.70em;
  font-size: 1em;
}

.input-wrapper, input[type="text"] {
  font-family: monospace;
  font-weight: bold;
  letter-spacing: .3em;
}

.input-wrapper {
  display: inline-block;
  position: relative;
  overflow: hidden;
  padding-bottom: .2em;
  font-size: 200%;
}

.input-wrapper:after {
  content: "——————————————————————————————";
  line-height: .3em;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
}
<div class="input-wrapper">
  <input type="text" value="Hello World" maxlength="15">
</div>

答案 1 :(得分:1)

尝试使用border-bottom: 1px dashed black;

答案 2 :(得分:0)

您还可以为每个字母使用单个跨度并获得相同的结果(仅使用边框底部并设置固定宽度,高度和边距):

&#13;
&#13;
span{ 
    display:inline-block;
    border-bottom:5px solid black;
    margin-right:2px; 
    width:20px;
    text-align:center;
    height:30px; 
    font-family:Verdana; 
    font-weight:bold; 
    font-size:24px; 
    /* Add padding-bottom if changing the font-size */
}
&#13;
<span>H</span>
<span>E</span>
<span>L</span>
<span>L</span>
<span>O</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>
<span>&nbsp;</span>            
&#13;
&#13;
&#13;