用css制作带三角矩形

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

 用css制作带三角矩形_第1张图片

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

 用css制作带三角矩形_第2张图片

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

 用css制作带三角矩形_第3张图片

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

 用css制作带三角矩形_第4张图片

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

 用css制作带三角矩形_第5张图片

用css制作带三角矩形_第6张图片

用css制作带三角矩形_第7张图片


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



  
    
    The HTML5 Herald
	
  
  
  

#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;
}

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

用css制作带三角矩形_第8张图片

你可能感兴趣的:(web前端开发)