html lineheight div,html – Chrome上的文本输入:line-height似乎有最小值

我想我做到了!

在我的测试中,似乎line-height必须至少约115%的字体大小,所以如果你想50px高元素你必须有〜43px的东西,所有排队:

fiWAC.png

图1.字体大小为50px线宽的86%。事情排列,但不遵守OP要求的50px字体大小。

input, span {

border: 2px solid red;

display: inline-block;

font: 43px Arial;

line-height: 50px;

padding: 0;

vertical-align: middle;

width: 100px;

outline-style:none;

box-shadow:none;

overflow:hidden;

/* optional - to include the borders in the element size:

box-sizing:border-box;

*/

}

Text

如果你将字体大小增加到所需的50px,那么输入框尊重的最小行高为〜58px。任何尝试用垂直对齐来抵消这种影响在输入中没有影响,但是我们可以修正元素高度并隐藏溢出,以给出一致的(虽然不完全可信的)外观:

7sRpz.png

图2. 50px文本强制的行高58px,它被截断与溢出隐藏。

input, span {

border: 2px solid red;

display: inline-block;

font: 50px Arial;

line-height: 58px;

padding: 0;

height:50px;

vertical-align: top;

width: 100px;

outline-style:none;

box-shadow:none;

overflow:hidden;

/* optional - to include the borders in the element size:

box-sizing:border-box;

*/

}

Text

关闭,但没有雪茄。但是这让我想到 – 也许一个伪元素可能不那么限制?我发现,你可以风格的输入::第一行伪甚至在一个输入,这将尊重高度,字体大小,行高和垂直对齐!

因此voilà!

hyTWa.png

图3.第一行伪元素的胜利!

input, span {

border: 2px solid red;

display: inline-block;

font: 50px Arial;

line-height: 50px;

height: 50px;

padding: 0;

vertical-align: middle;

width: 100px;

outline-style:none;

box-shadow:none;

overflow:hidden;

/* optional - to include the borders in the element size:

box-sizing:border-box;

*/

}

input::first-line, span::first-line {

vertical-align: middle;

}

/* weirdly the placeholder goes black so we have to recolour the first-line */

input::-webkit-input-placeholder::first-line {

color:grey;

}

Text

这里有一个jsFiddle的很多,所以你可以看到我的工作。 😉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值