CSS 画一条横线/竖线

作为优秀的java程序员,扎实(la ji )前端水平是我工作的基础 , 所以今天记录一下怎么用css画一条横线/竖线出来 , 以此为笔记, 将来不需要去翻阅别人的代码

废话不多说  笔记开始

#CSS 代码

        /*中间的过度的横线*/
        .link-top {
            width: 50%;
            height: 1px;
            border-top: solid #ACC0D8 1px;
        }

        /*画一条再右边的竖线*/
        .link-right {
            width: 50px;
            height: 20%;
            border-right: solid #ACC0D8 1px;
        }

#整体的HTML代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>画一个直线</title>
    <style>
        /*中间的过度的横线*/
        .link-top {
            width: 50%;
            height: 1px;
            border-top: solid #ACC0D8 1px;
        }

        /*画一条再右边的竖线*/
        .link-right {
            width: 50px;
            height: 20%;
            border-right: solid #ACC0D8 1px;
        }

    </style>
</head>
<body>
<h1>Hellow World</h1>
<div class="link-top"></div>
<p class="link-right">段落1</p>
<div class="link-top"></div>
<p>段落2</p>
</body>
</html>

#页面效果图点我查看

#实际工作页面效果图

补充:

上面的图片很丑 , 后来发现了画竖线的妙法 就是 直接用 | 这个代替,效果非常好

#效果图

<think>嗯,用户想用纯CSS来绘制HTML家族树结构图。首先,我需要回忆一下如何使用CSS创建树状结构。可能要用到Flexbox或者Grid布局,还有伪元素来连接节点。 记得树形结构通常是从上到下分层的,每个层级用容器包裹,子节点排列在父节点下方。可能需要使用Flex的列方向,让子元素垂直排列。父节点居中,子节点水平排列,这样每个父节点下可以有多个子节点。 然后,连接线部分可能需要用伪元素,比如在父节点下方添加一个竖线,连接父节点到子节点。每个子节点之间可能需要横线连接,这样看起来像树枝分叉。可能需要使用绝对定位来定位这些线条,确保它们正确连接节点。 还要考虑HTML结构,可能需要嵌套的ul和li元素,每个li代表一个节点。使用类名来区分不同层级的节点,方便CSS选择器应用样式。 比如,最外层用.tree类包裹,每个节点用.node类,子节点用.children类包裹。然后通过CSS设置.node的位置和样式,以及.children的布局。 另外,响应式设计可能需要考虑,确保树形结构在不同屏幕尺寸下正常显示。可能需要媒体查询调整节点间距或字体大小。 测试代码的时候,要确保连接线正确绘制,节点之间的间距合适,结构清晰。可能需要调整margin、padding和position属性来微调布局。 现在,把这些思路整理成具体的HTML和CSS代码,确保每个部分都正确实现。检查是否有遗漏的样式,比如列表的默认样式需要去掉,使用list-style: none。线条的颜色和粗细也要合适,让结构看起来清晰。 最后,验证代码是否纯CSS,没有使用JavaScript或其他技术。确保代码简洁有效,用户可以复制示例直接使用,并根据需要修改内容或样式。</think>要仅用CSS创建HTML家族树结构图,可以通过Flex布局和伪元素实现层级连接效果。以下是具体实现方法: ```html <!DOCTYPE html> <style> /* 基础树形结构设置 */ .tree { display: flex; flex-direction: column; align-items: center; padding: 40px 0; } /* 节点样式 */ .node { position: relative; background: #4CAF50; color: white; padding: 12px 24px; border-radius: 4px; margin: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } /* 子节点容器 */ .children { display: flex; position: relative; gap: 40px; } /* 垂直连接线 */ .children::before { content: ''; position: absolute; top: -20px; left: 50%; height: 20px; border-left: 2px solid #666; } /* 水平连接线 */ .node::after { content: ''; position: absolute; top: -20px; left: 50%; width: 100%; border-top: 2px solid #666; } /* 消除根节点多余连接线 */ .tree > .node::after { display: none; } /* 调整多子节点连接线 */ .children > .node::before { content: ''; position: absolute; top: -20px; height: 20px; border-left: 2px solid #666; } /* 首尾子节点的连接线调整 */ .children > .node:first-child::before { width: calc(50% + 20px); right: 50%; } .children > .node:last-child::before { width: calc(50% + 20px); left: 50%; } </style> <div class="tree"> <div class="node">祖父 <div class="children"> <div class="node">父亲 <div class="children"> <div class="node">儿子</div> <div class="node">女儿</div> </div> </div> <div class="node">叔叔</div> </div> </div> </div> ``` 这个实现的关键点: 1. 使用Flex布局建立垂直排列的树形结构 2. 通过伪元素创建连接线:`::before`和`::after`生成连接线 3. 相对/绝对定位精确定位连接线 4. 使用`gap`属性控制同级节点间距 5. 通过CSS选择器控制不同层级的样式差异
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值