input内容右对齐_按钮和输入的垂直文本对齐

点上面“东哥IT笔记”,关注并星标

每天一篇业界最新技术分享


你曾经苦恼于文本的垂直对齐吗?我想很多的前端开发者都会遇到这样的烦恼吧,那么本文就来给你详细介绍一下如何利用line-height, padding以及flexbox实现相应的对齐功能。

基本的按钮和输入风格

一个按钮和输入的高度以及垂直对齐是由他的边框,padding,字体大小以及line-height决定的。

20d5fc31675fdf42ff42b3c239aa62e1.png

有了这个理解之后,我们来定义按钮以及输入的基本风格:

<input type="text"value="Input element"><button>Buttonbutton> <style>  .btn, .form-control {    /* reset user agentstylesheet */    background-color:transparent;    padding: 0;    border: 0;    border-radius: 0;    color: inherit;    appearance: none;     /* make sure propertiesaffecting height have same value */    font-size: 1em;    line-height: 1.2;    padding: 0.5emvar(--padding-x);    border-width: 2px;    border-style: solid;  }   /* button */  .btn {    display: inline-flex;    justify-content: center;/* center the content horizontally */    align-items: center; /*center the content vertically */    --padding-x: 1.2em;    border-color: transparent;/* hide button border */  }   /* input */  .form-control {    --padding-x: 0.5em;  }style>
  • 这里我们把按钮的display设置成了inline-flex,这样我们就可以使用justify-content以及align-items来做中间对齐。

  • 我们对按钮和文本使用了同样的vertical padding,     font-size, line-height以及border-width。

  • 我们并不想给按钮加入特定的边框,所以这里设置成transparent.

  • Line-height的值需要比1大一点点。假如使用1,输入的元素就会有问题,所以我们这里使用的是1.2,当然你也可以使用normal。

上面这样的基本风格设置可以保证按钮和输入元素有同样的高度,以及他们的内容是垂直对齐的。当然,你可以修改他们的font-size,或者设置不同的font-family,这些修改都不会影响对齐。

进一步优化

下面我们需要做的是为按钮和输入设置定制主题。

e94d5cc0280f408edb8b3a2272d9cc33.png

例外

也许你会遇到一些情况,我们需要设置固定高度的按钮和输入元素,而默认的line-height会破坏对齐。这种情况下,我们可以把垂直padding去除掉,并且设置line-height等于height的值。下面是一个例子:

.height-30, .height-40, .height-50 {  height: var(--height);   &.btn,&.form-control {    line-height:var(--height);    padding-top: 0;    padding-bottom: 0;  }} .height-30 {  --height: 30px;} .height-40 {  --height: 40px;} .height-50 {  --height: 50px;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值