• 提高你css技能的css开发技巧(转载)


    一、resize实现图片对比

    resize的语法如下:

    resizenone | both | horizontal | vertical

    案例效果如下图 (鼠标移到左下角白色区域,往右侧拖动,实现图片对比效果)

    我应用到了resize的如下代码:

    resize: horizontal;

    可以水平拉伸!

    二、:not()的应用技巧

    我们平时在书写导航栏分割线的时候,最后一个标签是没有分割线的,我们一般的写法如下:

    /* 先给所有添加右侧边框 */
    .nav li {
      border-right: 1px solid #666;
    }
    /* 再去除最后一个边框 */
    .nav li:last-child {
      border-right: none;
    }

    运用:not()之后如下书写:

    .nav li:not(:last-child) {
      border-right: 1px solid #666;
    }
    .nav li:first-child ~ li {
      border-left: 1px solid #666;
    }

    我们在用逗号分隔的列表,最后一个让他没有逗号,写法如下:

    ul > li:not(:last-child)::after {
      content: ",";
    }

    not的应用,让我们方便了不少,节省了一些代码!

    三、任意元素垂直居中

    关于css垂直居中,代码如下:

    html, body {
      height: 100%;
      margin: 0;
    }
    
    body {
      -webkit-align-items: center;  
      -ms-flex-align: center;  
      align-items: center;
      display: -webkit-flex;
      display: flex;
    }

    当然,这个有一定的兼容问题!不过现代浏览器是没有问题的!

    四、表格单元格等宽

    用如下代码可以让表格单元格等宽

    .haorooms{
      table-layout: fixed;
    }

    五、使用Flexbox摆脱各种Margin Hacks

    实现侧栏时,我们不再需要各种nth-、first-和last-child等设置margin,可以使用Flexbox轻松实现均匀分布!代码如下:

    .list {
      display: flex;
      justify-content: space-between;
    }
    
    .list .person {
      flex-basis: 23%;
    }

    六、给空连接使用属性选择符

    我们还可以给空a标签添加属性,代码如下:

    a[href^="http"]:empty::before {
      content: attr(href);
    }

    七、初始化box-sizing

    从html中继承box-sizing属性,这样的话,后期维护比较方便。

    html {
      box-sizing: border-box;
    }
    
    *, *:before, *:after {
      box-sizing: inherit;
    }

    八、在nth-child中使用负数

    nth-child中使用负数,可以选择小于等于某个数的值,例如:

    li:nth-child(-n+4){background:red}

    小于等于4的li,显示为红色!

    还可以如下应用:

    li {
      display: none;
    }
    
    li:nth-child(-n+3) {
      display: block;
    }

    上面代码的含义是,我们让前三个li显示(小于等于3的),其他的li都隐藏!

    九、文本显示优化

    html {
      -moz-osx-font-smoothing: grayscale;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    上面代码可以让字体在我们的设备中最优显示!

    十、border的应用技巧!

    border的应用还是蛮广泛的!我之前在慕课网的课程 html5左侧导航,讲了三道杠的书写!,是运用了box-shadow,关于文章,具体请看:http://www.haorooms.com/post/box_shadow_css

    但是呢,这个是css3的属性,今天给大家讲运用border书写三道杠,兼容性很好!代码如下:

    width:40px;height:7px;
    color: #999;
    border-top:18px  double;
    border-bottom: 6px solid;

    运用border的double属性,可以轻松绘制三道杠,兼容性很好!并且,大家注意的是:border-color可以继承color,我们只要修改color的值,就可以修改border-color的值!

    十一、vertical-align 属性

    vertical-align 只在行内元素,或者inline、inline-block等中才起作用。当我们在某个div中使用垂直居中是不管用的,

    除此之外,vertical-align 还支持数值和百分比!

    我们可以如下写:

    .haorooms{vertical-align:-2px;}
    .haorooms{vertical-align:-10%;}

    这个负值和 margin-bottom类似,但是呢,vertical-align可以将父级元素撑大!

    十二、margin重叠解决方案列举

    1、父级元素bfc ,

    2、父级元素给一个padding

    3、父级元素给一个border

    4、子元素前面加任意一个空的内联元素,(例如:span、nbsp等等)

  • 相关阅读:
    git .gitignore不生效的解决方法
    python 爬虫中常需要睡眠防止被封IP time sleep
    Python 实现字典操作详解
    Python遍历字典到列表中出现覆盖前面数据或者字典对值(值为列表)赋值出现重复的问题
    小红书app之shield 逆向
    淘宝h5 页面 sign加密算法
    jemter-base64加密
    Python 中更优雅的日志记录方案
    logging再学习
    elasticsearch中must和should条件同时满足
  • 原文地址:https://www.cnblogs.com/yaomin/p/6252769.html
Copyright © 2020-2023  润新知