css写√的图标_用CSS来制作图标

想知道如何利用CSS来制作图标吗?并且只使用一个标签的情况下,不能使用伪元素哦!

在利用CSS制作图标时,经常用到border边框,所以,先看看边框的相关知识。

1.藏在border中的不能说的秘密

.box{

width:100px;

height:100px;

border-top:10px solid red;

border-right:10px solid blue;

border-bottom:10px solid yellow;

border-left:10px solid green;

}

复制代码

运行结果如下:

9565e5462601a0ccc82675d34480eb84.png

从运行结果可以看出,每个边框是个梯形,那么我们把宽度和高度都设置为0,会怎么样呐?

a3e518fa008d1c4d8030aeb31bbfbbd1.png

从上图中,可以看出,四个边框都变成了三角形,那么如果将左,右,下的边框都设置为透明(transparent),那么就显示了一个下三角。

3e0b70e222bbd6a42e0f08dec84befc0.png

在使用边框的问题上,我们也遇到过一些问题,例如:

481b7d9ecf8d03ef109a530bb94af3b1.png

从上图可以发现,第二个菜单和第三个菜单的左边框不正确,其原因是,前一个元素的右边框和后一个元素的左边框叠加在了一起。想要解决这个问题,很简单,把后面两个元素的左边框去掉或者设置它们的margin-left为负值即可。

*{

margin:0;

padding:0;

}

li{

list-style:none;

}

ul li{

float:left;

width:100px;

height:35px;

line-height:35px;

text-align:center;

margin:100px auto;

border:4px solid #dedede;

}

ul li ~ li{

/*border-left:none;*/

margin-left:-4px;

}

  • HTML
  • CSS
  • Javascript

复制代码

运行效果,如下所示:

0aa3313d818e0fd60f1217f5d977d342.png

2.一个和边框很像的属性outline

可以用它来绘制元素的轮廓,并且不占空间。

.box{

width:100px;

height:100px;

line-height:100px;

margin:100px auto;

text-align:center;

background:red;

outline:1px solid #dedede;

}

outline

复制代码

猜一猜,这个div的宽度和高度是多少呐?

使用outline属性可以很好的解决了,当鼠标移动到某元素上时,动态添加边框带来的抖动问题。

.box{

width:100px;

height:100px;

line-height:100px;

margin:100px auto;

text-align:center;

background:red;

}

.box:hover{

outline:4px solid #dedede;

}

outline

复制代码

运行结果如下:

829f6217670ad40a1c8fb07cfa013eaa.png

值得注意的是,border-radius不会作用在outline上。

.box{

width:100px;

height:100px;

line-height:100px;

margin:100px auto;

text-align:center;

background-color:red;

outline:5px solid #dedede;

border-radius:20px;

}

outline

复制代码

运行结果如下:

f4bef17bffb64ade221be22daf2c43d7.png

如果想不占空间,还想使用border-radius怎么办呐?

.box{

width:100px;

height:100px;

line-height:100px;

text-align:center;

background-color:red;

border:10px solid #dedede;

border-radius:20px;

box-sizing:border-box;

}

复制代码

还可以利用box-shadow属性:

.box{

width:100px;

height:100px;

line-height:100px;

text-align:center;

background-color:red;

box-shadow:0 0 0 10px #dedede;

border-radius:10px;

margin:10px;

}

box-shadow

复制代码

运行结果如下:

02871f3ed48d2c0e47eb3a36a9cd2e57.png

box-shadow:x轴偏移 y轴偏移 阴影大小 边框大小 填充颜色,利用此属性,可以很好的模拟边框,还不占空间。

3.利用CSS制作图标

(1) 平行四边形图标

.box{

width:50px;

height:50px;

background:red;

transform:skew(-25deg);

margin-left:100px;

}

复制代码

运行结果如下:

f9be7ffb23b9be13178a4289135b0e81.png

(2) 暂停按钮

暂停按钮的原理是利用边框border,里面的方形用outline,再利用outline-offset属性可以用来设置偏移,并且是按照比例来的。

.box{

width:50px;

height:50px;

color:#000;

border:1px solid #000;

cursor:pointer;

border-radius:50%;

outline:10px solid #000;

outline-offset:-26px;

}

复制代码

运行结果如下:

f770f409ce7ae7de0261b6f477a9c49c.png

如果将outline-offset再设置小一点,就出现了一个+号。

bace3d2b6874bbb8b16a2a5bbec701e1.png

如果再修改一些属性和添加一些属性,就会出现如下的图标:

.box{

width:50px;

height:50px;

background-color:#000;

border:1px solid #000;

cursor:pointer;

border-radius:50%;

outline:10px solid #fff;

outline-offset:-35px;

transform:rotate(45deg);

}

复制代码

99511f8269ec128350dd90e092fb86a8.png

(3) 梯形图标

.box{

width:35px;

border:50px solid transparent;

border-bottom:50px solid red;

}

复制代码

运行结果如下:

9d7c4e829f20ae8bb238b0a59a721ffd.png

(4) 鹰嘴图标

.box{

width:35px;

border-top:50px solid transparent;

border-right:22px solid #096;

border-bottom-right-radius:100%;

}

复制代码

运行结果如下:

963b55ddf258a89a1a0d6b66d1c3edfd.png

(5) 左右箭头图标

.box{

width:0;

height:0;

border:10px solid transparent;

border-left:10px solid red;

-webkit-box-reflect: left 5px;

box-reflect:left 5px;

margin-left:100px;

}

复制代码

运行结果如下:

527cea92a8ce12ca2bbb0572c4f0763c.png

值得注意的是,box-reflect属性具有兼容性问题,只能在Chrome浏览器中打开。

(6) 下载图标

.box{

width:0;

color:blue;

border:8px solid transparent;

border-top:8px solid blue;

box-shadow:0 -12px 0 -4px;

}

复制代码

运行结果如下:

2662325bc056ee93451a2c8c6a16a6d2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值