javascript - 如何用纯CSS实现自适应文字内容的分割线?
阿神
阿神 2017-04-11 11:50:20
[JavaScript讨论组]

有以下DOM结构:

文字内容

h1{ width:100%; padding:20px; }

要求:不能改变DOM结构,不能改变h1的已有样式;

实现: ---------- 文字内容 ----------- (左右两侧padding + 左右分割线宽度 + 文字内容宽度 = h1宽度)

  1. 左右侧分割线自动适应h1文字内容以外的剩余空间,文字内容变化,分割线也应根据文字内容变长或缩短;

  2. 文字只占一行;

除了用span背景遮住h1伪类分割线,还有其他方法吗?

关键是这个自适应很难搞。

阿神
阿神

闭关修行中......

全部回复(6)
ringa_lee

用flex吧
https://jsfiddle.net/opym5zd6/

迷茫

其实你 HTML 结构只需要 h1>span 这样就够了

大体思路是:

  1. 内层的 <span> 设置背景色,用于遮挡

  2. 外层 <span> 画线,这里画线可以用伪元素,也可以用线性渐变渐变背景图

PHPz

用js去获取“文字内容”的宽度,然后计算两边分割线应在的p的宽度并设置,用最多的“-”填充,超出部分overflow:hidden

迷茫

<fieldset >< legend>文本内容</legend></fieldset>

大家讲道理

第一种方法(你的意思,好像是说不想用这一种)

<p class="line-wrap">
    <span class="text">文字内容</span>
</p>

<style>
    .line-wrap{
        position: relative;
        text-align:center;
    }
    .line-wrap::after{
        position:absolute;
        left:0;
        top:50%;
        border-top:1px dashed #ddd;
        content:'';
        height:0;
        width:100%;
        z-index:1;
}
.line-wrap .text{
    background-color:#fff;
    padding:5px;
    position: relative;
    z-index:2;
}
</style>

第二种方法

<style>
    .line-wrap{
        text-align:center;
        overflow:hidden;
    }
    .line-wrap .text{
        background-color:#fff;
        padding:5px;
        position: relative;
    }
    .line-wrap .text::before,
    .line-wrap .text::after{
        position:absolute;
        top:50%;
        border-top:1px dashed #ddd;
        content:'';
        height:0;
        width:9999px;
    }
    .line-wrap .text::before{
        right:100%;
    }
    .line-wrap .text::after{
        left:100%;
    }
</style>

<p class="line-wrap">
    <span class="text">文字内容</span>
</p>
黄舟
<style>
.line {
    padding: 0 20px 0;
    margin: 20px 0;
    line-height: 1px;
    border-left: 200px solid #ddd;
    border-right: 200px solid #ddd;
    text-align: center;
}
</style>

html
<p class="line">小小分隔线 单标签实现</p>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号