如何在html和css中创建一个7字符下划线输入文本字段(附带截图)?

前端之家收集整理的这篇文章主要介绍了如何在html和css中创建一个7字符下划线输入文本字段(附带截图)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在创建一个移动应用程序的UI我需要创建一个popover,其中的UI附加在屏幕截图中.如何在html和css中创建一个7字符下划线输入文本字段,如下所示?

HTML代码

<ion-modal-view class="modal contact-details-modal" id="contactDetailModal">



<ion-content delegate-handle="modalContent">   
<center>
<br><br>
<img src="assets/images/camera-small.png">  
<br><p>Camera</p>
     <div class="underline_camera" style="border: 0;border-bottom: 1px solid  #b2b2b2;outline: 0;width: 100px;">
    <input type="text" id="camera" name=" camera" value="" />
</div><br>

<div class="meter_reading" style="border: 0;border-bottom: 1px solid     #b2b2b2;outline: 0;width: 20px;">
    <input type="text" id="meter" name=" meter" value="" />
    <!--<input type="text" id="meter" name=" meter" value="" />
    <input type="text" id="meter" name=" meter" value="" />
    <input type="text" id="meter" name=" meter" value="" />
    <input type="text" id="meter" name=" meter" value="" />
    <input type="text" id="meter" name=" meter" value="" />
    <input type="text" id="meter" name=" meter" value="" />-->

 </div>


 <div class="button-bar">

 <a class="button button-balanced">
 SUBMIT</a>
 </div> 
 </center>
</ion-content>
</ion-modal-view>

CSS代码

.contact-details-modal {
   top: 15%;
   border-radius: 3px;
   -webkit-border-radius: 3px;
   min-height: 70% !important;
   width: 80%;
   left: 10%;
}

解决方法

这是一个创建单个文本字段的解决方案,每个字符下都有下划线(尝试删除并在输入字段中写入另一个数字):
input {
  border: none;
  width: 10.5ch;
  background: 
    repeating-linear-gradient(90deg,dimgrey 0,dimgrey 1ch,transparent 0,transparent 1.5ch) 
      0 100%/100% 2px no-repeat;
  color: dimgrey;
  font: 5ch consolas,monospace;
  letter-spacing: .5ch;
}
input:focus {
  outline: none;
  color: dodgerblue;
}
<input maxlength='7' value='0123456'/>

这使用the ch unit,其宽度是0字符的宽度.它还假设输入字段中的字体是等宽字体,因此所有字符都具有相同的宽度.

所以每个角色的宽度总是1ch.字符之间的差距为.5ch.这是我们为字母间距设置的值.输入的宽度是字母数乘以字母宽度(1ch)和间隙宽度(.5ch)之和.所以这是7 *(1ch .5ch)= 7 * 1.5ch = 10.5ch.

我们删除输入的实际边界,并使用重复线性渐变设置假的边框.破折号(dimgrey)从0到1ch,差距(透明)在破折号后立即开始并且变为1.5ch.

它附加在输入的左侧和底部 – 这是背景位置组件(水平0%,垂直100%).

它横向扩展整个输入(100%)并且高2px – 这是背景的背景大小组件.

生成此CSS的Sass代码是:

$char-w: 1ch;
$gap: .5*$char-w;
$n-char: 7;
$in-w: $n-char*($char-w + $gap);

input {
  border: none;
  width: $in-w;
  background: repeating-linear-gradient(90deg,dimgrey $char-w,transparent $char-w + $gap) 
    0 100%/100% 2px no-repeat;
  font: 5ch consolas,monospace;
  letter-spacing: $gap;

  &:focus {
    outline: none;
    color: dodgerblue;
  }
}

你可以调整差距和其他东西here.

原文链接:https://www.f2er.com/html/226761.html

猜你在找的HTML相关文章