• 细线边框


    1,首先想到的方法是做一张高2像素(1像素有颜色1像素没颜色)的图片做背景,bg-size设置宽100%,高1px

    .line li{
    background: url('line.png') left top no-repeat;
    background-size: 100% 1px;
    background-position: left bottom;}
    <ul class="line">
    <li></li>
    <li></li>
    <li></li>
    </ul>
    OK,出来了,但有点瑕疵,那么问题来了,左右边框描边虽然可以做旋转(transform) ,但如果要是边框更换颜色那不是还要在做图片了,好像是有点麻烦哦;

    2,所以用上个方法联想到了线性渐变(linear-gradient)

    .line li{ border: none;
    background-image: -webkit-linear-gradient(#222 50%,transparent 50%);
    background-image: -moz-linear-gradient(#222 50%,transparent 50%);
    background-image: -o-linear-gradient(#222 50%,transparent 50%);
    background-image: linear-gradient(#222 50%,transparent 50%);
    background-size: 100% 1px;
    background-repeat: no-repeat;
    background-position: bottom;}
    <ul class="line">
    <li>linear-gradient</li>
    <li>linear-gradient</li>
    <li>linear-gradient</li>
    </ul>
    OK,又出来了,但还是有点瑕疵,那么问题来了,就是改变描边位置(left,top,right,bottom)需要修改参数

    如 left描边需要改变:

    background-image: -webkit-linear-gradient(left ,transparent 50%,#222 50%);
    background-size: 1px 100%;
    background-position: left;
    都不一一列出了,好像还是有点麻烦哦;

    3,所以想到了CSS3阴影(box-shadow),就是用阴影做描边然后用伪类把多余的给遮罩着,

    .line li{box-shadow: inset 0 -1px 1px #000;background: #fff;margin-left: -1px;margin-bottom: 10px;position: relative;}
    .line li::after{content:'';position: absolute;top:0;left: 0px;right: 0px;bottom: 0px;border: 1px solid #fff;}
    <ul class="line">
    <li>box-shadow</li>
    <li>box-shadow</li>
    <li>box-shadow</li>
    </ul>
    OK,又出来了,那么问题来了,到底用哪一种好呢,这都是因人而异,我只不过是给出了这些方案,仅供大家参考,如果大家有更好的方法可以贴出来大家共同探讨

  • 相关阅读:
    【收藏】如何理解二维数组
    【algo&ds】9.拓扑排序、AOV&AOE、关键路径问题
    【algo&ds】8.最小生成树
    【algo&ds】7.最短路径问题
    【algo&ds】6.图及其存储结构、遍历
    【c&c++】变量初始化
    【algo&ds】【pat】5.并查集及其应用
    【algo&ds】4.B树、字典树、红黑树、跳表
    【algo&ds】4.树和二叉树、完全二叉树、满二叉树、二叉查找树、平衡二叉树、堆、哈夫曼树、散列表
    【algo&ds】3.栈和队列
  • 原文地址:https://www.cnblogs.com/thongyan/p/5800760.html
Copyright © 2020-2023  润新知