CSS实战样式:文字两侧加居中横线

CSS实战样式:文字两侧加居中横线


在日常的开发中,会遇到这样的需求,比如移动web开发中的登录页的底部,会出现这样的需求:其他登录方式,两侧有居中的横线


实现的方案:

(一)使用 vertical-align 属性来实现

  • 原理:利用vertical-align属性设置负值,实现样式;

1.html部分

<div class="other-way-login">
    <span class="line"></span>  
    <span class="txt">其他登录方式</span>  
    <span class="line"></span>  
</div>

2.css部分

.other-way-login {
    height: 30px;
    line-height: 30px;
    font-size: 24px;
    text-align: center;
}
.other-way-login .line {
    display: inline-block;
    width: 150px;
    border: 1px solid black;
}
.other-way-login .txt {
    color: black;
    vertical-align: middle;
    vertical-align: -20%;
    margin: 0 30px;
}

优点:背景颜色


(二)使用定位属性来实现

  • 原理:使用定位属性进行实现
  • 缺点:需要调整,扩展性低,效率低;背景颜色需要单独设置;

1.html部分

<div class="other-way-login">
    <span class="line"></span>
    <span class="txt">其他登录方式</span>
</div>

2.css部分

.other-way-login {
    background-color: rgb(134, 213, 233);
    width: 600px;
    height: 300px;
    margin: 100px auto;
    font-size: 24px;
    overflow: hidden;
    position: relative;
}
.line {
    position: relative;
    width: 100%;
    height: 0px;
    display: block;
    border:1px solid black;
    margin-top:50px;
}
.txt {
    background: rgb(134, 213, 233);
    position:absolute;
    left:230px;
    top:35px;
}

(三)使用伪元素来实现

  • 原理:利用伪元素进行定位,样式拼接;

1.html部分

<div class="other-way-login">
    <h2 class="wrap">
        <span class="title">其他登录方式</span>
    </h2>
</div>

2.css部分

.other-way-login {
    width: 700px;
    height: 200px;
    margin: 0 auto;
    position: relative;
    background: rgb(78, 210, 228);
}
.wrap {
    position: absolute;
    top: 0px;
    left: 50%;
    width: 700px;
    margin-left: -350px;
    /* 左外边距宽度的一半,50% */
    text-align: center;
}
/*伪元素实现*/
.title:before {
    display: inline-block;
    position: relative;
    top: -7px;
    right: 20px;
    content: "";
    width: 200px;
    height: 0px;
    border: 1px solid #000;
}
.title:after {
    display: inline-block;
    position: relative;
    top: -7px;
    left: 20px;
    content: "";
    width: 200px;
    height: 0px;
    border: 1px solid #000;
}

(四)使用浮动属性实现

  • 原理:块级元素的浮动属性float效果,实现相应的样式;

1.html部分

<div class="wrap">
    <span class="line"></span>
    <span>其他登录方式</span>
    <span class="line"></span>
</div>

2.css部分

* {
    margin: 0px;
    padding: 0px;
}
.wrap {
    width: 600px;
    margin: 200px auto;
    overflow: hidden;
    position: relative;
}
.wrap span {
    float: left;
    font-size: 28px;
    text-align: center;
    width: 33.3%;
}
.wrap .line {
    border-bottom: 1px solid black;
    height: 12px;
}

(五)背景图填充

  • 原理:使用背景图实现横线居中效果

  • 局限:颜色一致性的问题

  • 解决:就看你如何与UI小姐姐如何沟通了,只能帮你到这里了!!!


综合选择

  • 代码量,个人习惯,样式复杂程度,实际的具体需求等方面进行选择;

  • 以上方法只是一部分,还有其他的方法,需要你自己去发现喽!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值