用css制作带三角矩形

在网页中通常会见到一种带三角的矩形框,常见于注释或者弹框提示。在百度2015校园招聘的笔试题目中也有一道题目要求利用css来绘出一个带三角矩形。如图所示。

 

css中,三角形是采用盒子模型的border属性来绘制的。所以在进行上图绘制之前有必要回顾一下css盒子模型。css盒子模型同一方向共有四个属性,比如横向有marginborderpaddingwidth。其中width指定内容区域的宽度,marginpadding为内外边距,外边距表示盒与盒之间的距离,内边距表示内容距离border的距离,border表示边框的宽度。css盒模型的border属性如图所示,它是由上右下左四个梯形构成。

 

在上图中将widthheight属性都设置为0px,就可以得到一个由四个三角形组合而成的矩形,如图。

 

到此时就可以得到一个三角形了,只需要将其余边框的颜色设置为白色或者透明,为了具有很好的扩展性,本文将其设置为透明,即border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;得到如图所示三角形。

 

到此时,已经不难想象到最初的带三角矩形边框如何得到了,可以将其分解为三个过程。如图。

 




按照这三个过程,很容易想到使用3div来进行绘制,其中一个绘制矩形边框,一个绘制红色三角形,最后一个绘制白色三角形。但是在百度的笔试题目中只给出了一个div,所以这里需要使用css伪元素。详细代码如下:

<!DOCTYPE HTML>
<html lang="en">
  <head>
    
    <title>The HTML5 Herald</title>
	<link type="text/css" rel="stylesheet" href="css/style.css">
  </head>
  <body>
  <div id="cssTest"></div>
  </body>
</html>

#cssTest{
	float:left;
	width:200px;
	height:200px;
	border:2px solid red;
	position:relative;
	left:20px;
	top:20px;
}
#cssTest:before{
	content:"";
	border:20px solid red;
	border-top-color:transparent;
	border-right-color:transparent;
	border-bottom-color:transparent;
	width:0px;
	height:0px;
	position:absolute;
	left:202px;
	top:50px;
}
#cssTest:after{
	content:"";
	border:19px solid #fff;
	border-top-color:transparent;
	border-right-color:transparent;
	border-bottom-color:transparent;
	width:0px;
	height:0px;
	position:absolute;
	left:200px;
	top:51px;
}

更多资讯可以关注微信扫描二维码关注:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值