元素的包裹性之css绘制三角形问题

本文介绍如何使用CSS绘制三角形,通过设置元素的宽高为0及边框颜色和样式来实现。文章还探讨了绝对定位对元素尺寸的影响,并解释了为何在不设置宽高或使用相对定位时会出现意外的效果。

由css绘制三角形说起

我们知道利用css绘制三角形时利用宽高为0,border transparent等属性可以实现,示例代码如下:

.div_parent{
            width: 0;
            height: 0;
            border-color: #e8aeb8 #333 #ccc #666;
            border-style: solid;
            border-width: 20px;
        }

或者:

 .div_parent{
            position: absolute;
            border-color: #e8aeb8 #333 #ccc #666;
            border-style: solid;
            border-width: 20px;
        }

效果图如下:
这里写图片描述

当不设置元素宽高为0 或者不设置绝对定位而是用相对定位时,就会出现下面这种效果:

这里写图片描述

元素高度为0,但是宽度撑满了容器
查看元素盒模型就会发现它的高度为0,宽度是自适应屏幕大小的。

这里写图片描述

究其本质原因:

是由于绝对定位会使元素具有包裹性,包裹性换种说法就是让元素inline-block化,例如一个div标签默认宽度是100%显示的,但是一旦被absolute属性缠上,则100%默认宽度就会变成自适应内部元素的宽度。

推荐张鑫旭讲的:CSS 相对|绝对(relative/absolute)定位系列

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值