在本文中将分享用CSS3设计出来的样式来呈现出关闭按钮的样子,这样以后想设计简单的对话框,就不需要求美工来帮忙画按钮的图片了。先来看看样式:
/* basic style */
.close {
/* still bad on picking color */
background: orange;
color: red;
/* make a round button */
border-radius: 12px;
/* center text */
line-height: 20px;
text-align: center;
height: 20px;
width: 20px;
font-size: 18px;
padding: 1px;
}
/* use cross as close button */
.close::before {
content: "\2716";
}
/* place the button on top-right */
.close {
top: -10px;
right: -10px;
position: absolute;
}
然后直接把它加到HTML元素上就可以看到效果了:
<div style="height: 100px; width: 100px; border: 1px solid black; position: relative;">
<span class="close"></span>
</div>
这主要是利用了在CSS的::before伪属性可以直接添加内容的特点,这样就可以直接设置样式在class上而不用做其它操作。当然这里用::after效果也是一样的。唯一要注意的是如果要指定关闭按钮在特定位置,就需要使用到position:absolut;,相应的其父元素就不能是默认的position:static;。像上边的示例中就使用的是position:relative;以保证按钮呈现在正确的位置上。
对于按钮中的叉按钮,用的是Unicode中的一种标识,以下这些也可以使用:
标识 编码(16进制) Name
✖ \2716 粗体乘法
✗ \2717 交叉
✘ \2718 粗体交叉
× \00D7 乘法符号
⨯ \2A2F 向量乘积
x \78 小写字母
X \58 大写字母
只是使用了不同字符后,可能居中位置会有偏差需要重新调整。
再结合JavaScript和CSS3的gradient,就能完成一个看起来还不错的对话框了。
点击我打开对话框
尾类实现:
b {display:inline-block; width:20px; height:1px; background:#fff; font-size:0; line-height:0;vertical-align:middle;-webkit-transform: rotate(45deg); border: 1px solid red;}
b:after { content:''; display:block; width:20px; height:1px; background:#fff;-webkit-transform: rotate(-90deg);}