css 制作小图标

1. outline 制作方块和加号

outline 不占空间, 像 box-shadow, border-radiusoutline 不起作用. 可以设置偏移, 当偏移为负值到一定程度, 一个加号就出来了.

div {
    margin: 20px;
}

.stop {
    width: 35px;
    height: 35px;
    border: 1px solid;
    border-radius: 100%;
    outline: 10px solid;
    outline-offset: -21px;
}

.add {
    width: 35px;
    height: 35px;
    border: 1px solid;
    border-radius: 100%;
    outline: 10px solid;
    outline-offset: -27px;
}

.close {
    width: 35px;
    height: 35px;
    border: 1px solid;
    border-radius: 100%;
    outline: 10px solid;
    outline-offset: -27px;
    transform: rotate(45deg);
}

<div class="stop"></div>
<div class="add"></div>
<div class="close"></div>

2. 汉堡菜单

    1. 利用 box-shadow 的多个值
.hamb1 {
    width: 50px;
    height: 0;
    box-shadow: 36px 10px 0 3px, 36px 0 0 3px, 36px 20px 0 3px;
}
    1. 利用 background-clip: content-box; 结合 padding, padding 空出来的就是汉堡菜单的空白部分, 中间的杠是利用背景剪裁的内容, 上下的杠是上下边框.
.hamb2 {
    width: 50px;
    height: 5px;
    padding: 5px 0;
    border-top: 5px solid;
    border-bottom: 5px solid;
    background-clip: content-box;
    background-color: black;
}
    1. 利用渐变函数
.hamb3 {
    width: 50px;
    height: 40px;
    background: linear-gradient(to bottom, black 0%, black 20%, transparent 20%, transparent 40%, black 40%, black 60%, transparent 60%, transparent 80%, black 80%, black 100%);
}
    1. 利用 background-size 将背景设置小一点, 背景就会平铺, 利用渐变函数和background-size.
.hamb4 {
    width: 50px;
    height: 40px;
    background: linear-gradient(to bottom, black 50%, transparent 50%);
    background-size: 18px;
}

3. 单选按钮

  1. 利用 box-shadow.
.radio1 {
    width: 16px;
    height: 16px;
    background: #000;
    border-radius: 100%;
    box-shadow: 0 0 0 5px #fff, 0 0 0 10px #000;
}
  1. 背景剪裁.
.radio2 {
    width: 16px;
    height: 16px;
    padding: 7px;
    border: 3px solid black;
    border-radius: 100%;
    background-clip: content-box;
    background-color: #000;
    /*must use background-color, background dose't work.*/
}

4. 九方格


这个样式有很多实现方式, 这里放一.

.square {
    margin: 40px;
    width: 0;
    border: 3px solid;
    outline: 6px dotted;
    outline-offset: 6px;
}

5. 下载按钮

.download {
    width: 0;
    border: 8px solid transparent;
    border-top: 8px solid;
    box-shadow: 0 -12px 0 -4px;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,830评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,355评论 0 11
  • 我还记得国外某位大牛在一篇文章中写道,CSS is fine, it's just really hard。读完他...
    garble阅读 1,140评论 0 0
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,229评论 0 11
  • 前天讲李白,昨晚老大说让妈妈讲杜甫的故事,书上怎么写我就怎么念,杜甫的《相思》是邻居小哥哥教会的,很建议小伙伴们周...
    小祥子阅读吧阅读 113评论 0 0