css3实现小箭头,各种图形

https://segmentfault.com/a/1190000002780453#articleHeader18

css实现各种图形真是太赞了,再也不用切图了,直接用css就可以实现。

最常用的就是用css实现的小三角了

#triangle-up{
	display:inline-block;
	width:0;
	height:0;
	border-left:30px solid transparent;
	border-right: 30px solid transparent;
	border-bottom:50px solid red;}
#triangle-down {
	display:inline-block;
	width:0;
	height:0;
	border-left:30px solid transparent;
	border-right: 30px solid transparent;
	border-top:50px solid red;}
#triangle-left {
	display:inline-block;
	width:0;
	height:0;
	border-top: 30px solid transparent;
	border-right: 50px solid red;
	border-bottom: 30px solid transparent;}
#triangle-right{
	display:inline-block;
	width:0;
	height:0;
	border-top: 30px solid transparent;
	border-left: 50px solid red;
	border-bottom: 30px solid transparent;}


#triangle-topleft {
    display:inline-block;
    width: 0;
    height: 0;
    border-top: 50px solid red;
    border-right: 50px solid transparent;
}
#triangle-topright {
    display:inline-block;
    width: 0;
    height: 0;
    border-top: 50px solid red;
    border-left: 50px solid transparent;
}
#triangle-bottomleft {
    display:inline-block;
    width: 0;
    height: 0;
    border-bottom: 50px solid red;
    border-right: 50px solid transparent;
}
#triangle-bottomright {
    display:inline-block;
    width: 0;
    height: 0;
    border-bottom: 50px solid red;
    border-left: 50px solid transparent;
}

通过这样的小箭头在项目中我们可以实现验证提示层箭头这样的样式,非常的实用,再也不用为提示层样式发愁啦。吐舌头


我们看到了实现css小箭头的style样式中都用到了transparent这样的一个属性,transparent到底是什么意思?于是查看了css参考手册,定义是:

用来指定全透明色彩。

  • transparent是全透明黑色(black)的速记法,即一个类似rgba(0,0,0,0)这样的值。
  • 在CSS1中,transparent被用来作为background-color的一个参数值,用于表示背景透明。
  • 在CSS2中,border-color也开始接受transparent作为参数值。
  • 在CSS3中,transparent被延伸到任何一个有color值的属性上。

transparent我总结意思就是透明,无颜色的。


看图,三角形的实现实际上是一个宽度和高度都为0的div的四个边框实现的,如果我们要实现朝下的箭头,那就要让div的左~右 边框都为透明(透明但左右边框还占位置)。


左上箭头 实现思路是什么呢?div的右边框和底部边框都为透明,这样左上角的箭头就露出来了。


css3实现心形

#heart {
    position: relative;
    width: 100px;
    height: 90px;
}
#heart:before,
#heart:after {
    position: absolute;
    content: "";
    left: 50px;
    top: 0;
    width: 50px;
    height: 80px;
    background: red;
    -moz-border-radius: 50px 50px 0 0;
    border-radius: 50px 50px 0 0;
    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transform-origin: 0 100%;
       -moz-transform-origin: 0 100%;
        -ms-transform-origin: 0 100%;
         -o-transform-origin: 0 100%;
            transform-origin: 0 100%;
}
#heart:after {
    left: 0;
    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
         -o-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: 100% 100%;
       -moz-transform-origin: 100% 100%;
        -ms-transform-origin: 100% 100%;
         -o-transform-origin: 100% 100%;
            transform-origin :100% 100%;
}



  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要使用 CSS 绘制类似地图标点的图形,可以使用圆形来模拟标点。使用 CSS 的 `border-radius` 属性可以将矩形变成圆形,并使用 `background-color` 属性设置圆的颜色。 例如,下面的代码可以创建一个大小为 50px 的红色圆形: ```css .map-marker { width: 50px; height: 50px; border-radius: 50%; background-color: red; } ``` 你还可以使用 `box-shadow` 属性为圆添加阴影,或者使用 `border` 属性在圆周围添加边框。 注意,如果你想要创建一个真正的地图标点,可能还需要使用其他技术,例如使用纯 HTML 和 CSS 创建箭头等。 ### 回答2: 在CSS中,可以使用伪元素和伪类来绘制像地图标点的图形。首先,创建一个元素作为地图容器,并设置宽度和高度。 然后,在地图容器中创建一个矩形元素作为地图图层,并设置宽度、高度、背景颜色和边框样式,使其看起来像一个地图。 接下来,使用伪元素:before来绘制标点图形。为伪元素:before设置宽度和高度,并使用绝对定位将其定位在地图图层上。 可以通过调整伪元素:before的宽度、高度和背景颜色来改变标点图形的形状和颜色。使用border-radius属性可以使标点图形变为圆形。 为了让标点图形在地图上显示出来,可以使用伪类:hover来触发标点图形样式。为伪类:hover设置背景颜色和边框样式,以突出显示标点。 可以使用CSS的动画属性,如transition和keyframes,来增加标点图形的动态效果。例如,当鼠标悬停在地图上时,标点可以放大或产生其他变化。 最后,可以使用CSS的文本属性来添加地图上的文本信息。通过设置文本的字体、大小、颜色和位置,可以将地点名称显示在标点图形旁边。 综上所述,可以通过使用CSS的伪元素、伪类、定位、动画和文本属性来绘制像地图标点的图形,并通过调整相关属性和样式实现各种效果和交互响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值