• 使用css3中calc()进行自适应布局


    calc()能做什么?

    calc()可以通过计算得到元素的宽度或者高度,让我们很容易进行自适应布局。

    你可以为一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“calc(50% + 2em)”,这样一来你就不用考虑元素div的宽度值到底是多少,而把这个任务交由浏览器去计算。

    calc()语法

    calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示:

    .elm {
       calc(expression);
    }

    其中"expression"是一个表达式,用来计算长度的表达式。

    calc()的运算规则

    calc()使用通用的数学运算规则,同时也提供更智能的功能:

    使用“+”、“-”、“*” 和 “/”四则运算;
    可以使用百分比、px、em、rem等单位;
    可以混合使用各种单位进行计算;
    表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;
    表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。


    浏览器的兼容性

    浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符,不过可惜的是,移动端的浏览器还没仅有“firefox for android 14.0”支持,其他的全军覆没。

    大家在实际使用时,同样需要添加浏览器的前缀。

    实例

    <head>
       <style>
        .left-elem {
             -moz-calc(100% - 100px);
             -webkit-calc(100% - 100px);
             calc(100% - 100px);
            float: left;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            }
    
        .right-elem {
             100px;        
            text-align: right;
            display: inline-block;
        }
       </style>
    </head>
    <body>
       <div style="border:solid 1px red">
          <div class="left-elem">
            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
          </div>
          <div class="right-elem">
            yyyyyyyyy
          </div>
       </div>
    </body>

    实现的效果如下:

    当缩小浏览器尺寸时,左边的xxxxxx... 会呈现自适应效果。

  • 相关阅读:
    使用Microsoft.DirectX和Microsoft.DirectX.Sound进行录音时遇到的异常
    一个奇怪的TextChanged事件
    正则表达式
    lambda详解
    AOP统一处理请求
    SpringBoot表单参数验证
    208道Java常见面试题
    Java100道基础面试题
    Java多线程面试题
    Java编码规范
  • 原文地址:https://www.cnblogs.com/xiaxianfei/p/5660270.html
Copyright © 2020-2023  润新知