使用Css和Div ”画“个三角形_html/css_WEB-ITnose
程序员文章站
2022-05-21 14:41:43
...
看到这个导航的时候就在想这种三角是否可以通过css和html实现,于是就在网上找了找资料。整理如下:
1.思路很简单。看下面的图片(每条边是不是像三角形的底边)
1.思路很简单。看下面的图片(每条边是不是像三角形的底边)
html:
Css:
.triangle{ border-style:solid; border-width: 10px; border-top-color:#009246; border-left-color: #CE2B37; border-bottom-color:#5E5E5E; border-right-color: #000; }
2. 当div元素的宽度和高度是0的时候是什么样呢(其他属性不变,把width和height都设置为0)?
是不是每条边都是一个三角形了?
如果想让他大点,就把border-width属性值设置的大点。
3. 假如我们想要一个向上的三角形,那我们不要显示其他三个边,保留底边(border-bottom)就可以了。所以把其他三条边的(border-color)设置成transparent好了,再看效果。
三角形就出来了。
如果想要调整三角形的位置,可以通过设置div.triangle{position:relative; top:0;right:10px;}的属性来设置了。
最后是这个结果:
代码如下:
呵呵,把这个div放到三角div后面,背景色和那个border-color颜色设置成一样就好了
/*Css*/ .triangle{ width:0px; height:0px; border-style:solid; border-width: 10px; border-color:transparent; border-bottom-color:#5E5E5E; position:relative; top:0; left:20px; } .drop-down{ width:150px; padding:10px; border-radius:5px; background:#5E5E5E; color:white; }
延伸:如果使用伪元素:before 和:after呢,这样就不必搞一个空白的div元素了(原理自然和上面使用空白div是一样的)。
如果箭头在上面和左侧,就用:before;右侧和下面,就用:after 吧。
我们不需要空白的div来实现箭头了
/*Css*/ .no-empty-div{ width:150px; padding:10px; border-radius:5px; background:#5E5E5E; position:relative; } .no-empty-div:before{ content:""; display: block; border-color: transparent; border-bottom-color: #5E5E5E; border-width: 10px; border-style:solid; width:0; height:0; position:absolute; bottom:100%; right:50%; }
下面是一个向左箭头的(你可以和向上的代码对照看一下位置的改变):
我们不需要空白的div来实现箭头了
/*Css*/ .no-empty-div{ width:150px; padding:10px; border-radius:5px; background:#5E5E5E; position:relative; } .no-empty-div:before{ content:""; display: block; border-color: transparent; border-right-color: #5E5E5E; border-width: 10px; border-style:solid; width:0; height:0; position:absolute; top:20%; right:100%; }
推荐阅读
-
如何使用CSS3画出一个叮当猫_html/css_WEB-ITnose
-
现在就能投入使用的12个高端大气上档次的CSS3特性_html/css_WEB-ITnose
-
Awesome图标和css特殊字体的使用方法_html/css_WEB-ITnose
-
怎么把一个div放在另一个div的中间?口头说不清楚,见图求解!祝大家双休日快乐!_html/css_WEB-ITnose
-
想实现一个像csdn论坛的侧边栏显示和隐藏效果遇到困难_html/css_WEB-ITnose
-
div中有一个marquee标签,marquee中有滚动显示的文字,如何让文字在div中垂直居中从右向左滚动显示?_html/css_WEB-ITnose
-
一个标签使用多个样式符合标准么?_html/css_WEB-ITnose
-
div+csS中的一些技巧和浏览器兼容的办法_html/css_WEB-ITnose
-
CSS3阴影 box-shadow的使用和技巧总结_html/css_WEB-ITnose
-
div+CSS使用小技巧_html/css_WEB-ITnose