在每个字符下带有下划线的输入字段中更改字体

时间:2019-02-05 00:04:04

标签: html css django html5 sass

我想在Django中创建一个完整的文本。差距应显示缺少多少个字母。 例如: 这是一个例子。我会__你我我__。

我在codepen上找到了一些有用的CSS片段。我尝试使用它,并使用字母代替数字,然后将字体更改为Segoe UI。我的问题是,当我使用Segoe UI时,下划线不再与字母同步。我必须如何更改配置才能使其再次适合?

我的SCSS代码:

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

input {
    display: block;
    margin: 2em auto;
    border: none;
    padding: 0;
    width: $in-w;
    background: repeating-linear-gradient(90deg, 
        dimgrey 0, dimgrey $char-w, 
        transparent 0, transparent $char-w + $gap) 
        0 100%/ #{$in-w - $gap} 2px no-repeat;
    font: 5ch Segoe UI; /*That's the attribute i changed*/
    letter-spacing: $gap;

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

我的HTML代码:

<input maxlength='7' value=''/>

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是您使用的字体不是monospaced(字母具有各自的宽度)。如果将字体更改为font-family: monospace;,它将起作用。

以下是使用Ubuntu的示例:

@import url("https://fonts.googleapis.com/css?family=Ubuntu|Ubuntu+Mono");
body {
  font: 1.2rem 'Ubuntu', sans-serif;
}

input {
  display: inline-block;
  margin: 1.2rem auto;
  border: none;
  padding: 0;
  width: 10.5ch;
  background: repeating-linear-gradient(90deg, dimgrey 0, dimgrey 1ch, transparent 0, transparent 1.5ch) 0 100%/ 10ch 2px no-repeat;
  font: 1.2rem 'Ubuntu Mono', monospace;
  letter-spacing: 0.5ch;
}
input:focus {
  outline: none;
  color: dodgerblue;
}
Lorem ipsum <input maxlength='7' value=''/> dolor sit amet