zoukankan      html  css  js  c++  java
  • 使用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... 会呈现自适应效果。

  • 相关阅读:
    JavaScript 为字符串添加样式 【每日一段代码80】
    JavaScript replace()方法 【每日一段代码83】
    JavaScript for in 遍历数组 【每日一段代码89】
    JavaScript 创建用于对象的模板【每日一段代码78】
    html5 css3 新元素简单页面布局
    JavaScript Array() 数组 【每日一段代码88】
    JavaScript toUTCString() 方法 【每日一段代码86】
    位运算
    POJ 3259 Wormholes
    POJ 3169 Layout
  • 原文地址:https://www.cnblogs.com/xiaxianfei/p/5660270.html
Copyright © 2011-2022 走看看