flex实现中间文字,两边横线(1px)

学习了实现1px边框的实现方法。迫不及待的想要记录一下。顺便利用flex布局+1px边框实现一个 简单的中间文字,两边横线的组件。

演示

首先来看组件的需求:

  • 左右两边的横线在移动端显示为1px。
  • 中间内容部分可以随意传入文字内容。
  • 同时不论文字的多少,两边的横线会随着内容增大而减小,直到内容占据的最大宽度为40%。
    在这里插入图片描述
    根据以上需求,我们来制定步骤。

1px边框实现

mixin.styl

首先在mixin.styl中定义一个方法border-1px。此时宽度在drp为1.5的设备下显示的是1.5px。 在dpr为2的设备下显示的是2px。接下来要在base.styl中设置缩放才能真正实现1px。

no-wrap() //  文字超出省略
  text-overflow ellipsis
  overflow hidden
  white-space nowrap

border-1px($color) // 底部1px的边框,可传入颜色
  position: relative
  &::after 
    display block
    position absolute
    left 0
    bottom 0
    width 100%
    border-top 1px solid $color
    content ' '

base.styl

在base.styl下,查询设备dpr。再乘以缩放倍数使其达到1px的效果。

@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5)
    .border-1px
        &::after
            -webkit-transform scaleY 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值