1、简介

  calc()看其外表像个函数。平时在制作页面的时候,总会碰到有的元素是100%的宽度(例如body元素)。如果元素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子撑破。比如说,有一个边框,或者说有margin和padding,这些都会让你的盒子撑破。我们换句话来说,如果你的元素宽度是100%时,只要你在元素中添加了border,padding,margin任何一值,都将会把元素盒子撑破(标准模式下,除IE怪异模式)。平时我们碰到这样的现象时,只能通过改变结构来实现,有时甚至无法解决。就算你通过繁琐的方法实现了,但由于浏览器的兼容性而导致最终效果不一致。虽然上一篇随笔介绍的CSS3属性中的box-sizing在一定程度上解决这样的问题,但calc()函数功能实现上面的效果来得更简单。

2、语法

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

  calc() = calc(四则运算);

  说明:

  用于动态计算长度值。

  • 需要注意的是,运算符前后都需要保留一个空格,表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格;例如:width: calc(100% - 10px)
  • 可以使用百分比、px、em、rem等单位;
  • 任何长度值都可以使用calc()函数进行计算;
  • calc()函数支持 "+", "-", "*", "/" 运算;
  • calc()函数使用标准的数学运算优先级规则;

3、浏览器兼容性

  浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符。

  (-moz-、-webkit-)

4、实例

  比如要实现以下的设计图(注:图片来自百度前端技术学院2016春季班第一阶段任务三,链接:http://7xrp04.com1.z0.glb.clouddn.com/task_1_3_1.png)中的中间一栏的布局。

 代码如下:

  HTML:(只有中间一栏的部分布局)

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8" /><title>Third</title>
</head>
<body>
<div class="middle"><h3>团队介绍</h3><p><strong>黃藥師</strong>,「天下五絕」之一「東邪」。桃花島島主,黃蓉之父。黃藥師形相清癯,身材高瘦,風姿雋爽,蕭疏軒舉,湛然若神。身穿青衣直綴,頭戴同色方巾,文士模樣。個性離經叛道,狂傲不羈。性情孤僻,行動怪異,身形飄忽,有如鬼魅。「桃花影落飛神劍,碧海潮生按玉簫」是他一生武功的寫照,武功造詣非凡,已臻化境,為金庸小說中武功最絕頂的高手之一。</p><p><strong>歐陽鋒</strong>,「天下五絕」之一「西毒」。歐陽鋒身材高大,身穿白衣,高鼻深目,臉鬚棕黃,英氣勃勃,目光如電,眼神如刀似劍,甚是鋒鋭,語聲鏗鏗似金屬之音。應為歐洲白人血統。此人兇狠毒辣,為求奪得「武功天下第一」的名號不擇手段,是金庸武俠小說中的著名反派角色和武功最絕頂的高手之一。</p><p><strong>段智興</strong>,「天下五絕」之一「南帝」,後改稱「南僧」。法號「一燈」,一燈身穿粗布僧袍,兩道長長的白眉從眼角垂了下來,面目慈祥,眉間雖隱含愁苦,但一番雍容高華的神色。身兼「先天功」及「一陽指」兩大神功武學,功力深厚非凡。</p><p><strong>洪七公</strong>,「天下五絕」之一「北丐」,是郭靖、黃蓉的師父,為金庸小說中武功最絕頂的高手之一。洪七公一張長方臉,頦下微須,粗手大腳,身上衣服東一塊西一塊的打滿了補釘,卻洗得乾乾淨淨,手裡拿著一根打狗棒,背上負著個朱紅漆的大葫蘆,身法迅雷不可目,「神龍見首不見尾」是他一生的寫照。</p><p><strong>王重陽</strong>,「天下五絕」之一「中神通」。中國道教全真派創始人,被尊為全真五祖之一,原名中孚,字允卿,本金朝諸生,後為武官,改名德威,字世雄。入道後改名嚞,一名喆,字知明,道號重陽子,故稱王重陽,綽號王害瘋,京兆咸陽(今陝西省咸陽市)大魏村人。七個主要門人稱七真。</p></div>
</body>
</html>

  CSS:(只包含中间布局部分)

 

.middle {width: calc(100% - (80px + 120px + 200px));/*用100%的屏幕宽度减去已经知道固定的宽度,就是自适应的部分*/overflow: auto;background-color: #FFF;border: 1px #999 solid;margin: 20px;
}
.middle h3,p {margin: 20px;
}

  

转载于:https://www.cnblogs.com/zhaoyingli/p/5404793.html

利用CSS3中的clac()实现按照屏幕分辨率自适应宽度相关推荐

  1. Android程序对不同手机屏幕分辨率自适应的总结

    各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知.目前比较主流的有WVGA=800x480,HVGA=480x320,另外的还有QVGA=320x240.当然还有魅族M9的D ...

  2. pyqt界面屏幕分辨率自适应_在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法

    在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法 PyQt5: 程序入口添加 QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHi ...

  3. 一种利用百分比布局适配所有Android手机屏幕分辨率的方法

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 场景 1.团队里面,UI设计师往往只提供以一个标准分辨率来设计的UI设计稿, ...

  4. Android不同手机屏幕分辨率自适应

    有必要了解的 Android中常见的单位 dip, dp, px, sp之间的区别: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设 ...

  5. Android不同手机屏幕分辨率自适应【转】

    有必要了解的 Android中常见的单位 dip, dp, px, sp之间的区别: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设 ...

  6. vue PC端屏幕分辨率自适应

    场景 不同的电脑屏幕大小根据宽度进行等比缩放,自适应.代码中的单位还是使用px,根据设计稿的尺寸来进行还原.它会自动转为rem. 第一步 安装依赖 npm install postcss-px2rem ...

  7. android屏幕分辨率自适应问题

    前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文档 郭霖: Android官方提供的支持不同屏幕大小的全部方法 Stormzhang ...

  8. pyqt界面屏幕分辨率自适应_后台系统界面设计踩过的那些坑

    源起 由于之前曾经在后台系统开发公司工作过的缘故,所以有些后台管理系统界面的产出.后来虽然从那家公司离职,但也接到过一些后台界面设计和优化的项目,前前后后也快十来个了. 这里想分享下一些关于后台界面设 ...

  9. jsp使用rem页面内容不能根据屏幕分辨率自适应_为什么很多web项目还是使用 px,而不是 rem?...

    是不是当你接触到 rem 的时候,感觉 rem 很强大.但是自己接触到的公司项目全部都使用 px,是不是心里有一万个为什么?想知道吗?是你的公司技术更新落后了吗? 有这个疑问的小朋友,如果我没猜错的话 ...

  10. 利用 CSS3 实现僵尸行走动画

    CSS3的出现使用Web页面的开发和展示更加的有趣和多样,同时页面动画的实现也更加的简单,此项目利用 CSS3 中提供的 @keyframes 和 animation 语法实现僵尸行走动画. 项目教学 ...

最新文章

  1. 网课谁的最好_报补习班,还是“上网课”?利用课余时间提高成绩,网课更加适合...
  2. [afterCode] docker 速成班 1: image
  3. CMake3:添加一个库
  4. 验证用户名和密码业务逻辑
  5. 调整了canvas的高度页面变化后还原_Python GUI编程入门(25)-移动Canvas对象
  6. nagios nrpe
  7. 将Quarkus应用程序部署到AWS Elastic Beanstalk
  8. Open vSwitch实验常用命令
  9. 转载在linux下执行java窗口被锁定问题
  10. 粒子效果的开始和结束颜色属性
  11. 手机型号修改 修改手机型号,在QQ空间想朋友展示个性化的手机型号
  12. 数据分析-数据平滑处理
  13. linux系统能看抖音吗,在Linux系统下用XDroid来安装和运行抖音Android APP应用
  14. Vue+Element-ui实现考试检查答题(判断正确答题,错答,漏答)
  15. 十大概念:每个软件工程师的必备
  16. linux 统一设备模型 pci,【原创】Linux PCI驱动框架分析(二)
  17. 神奇的H5视频画中画功能
  18. 横向合计代码 锐浪报表_锐浪报表/Grid++Report/V5.8/6.0非常好注册正式版
  19. sns java_JEESNS
  20. 淘宝AR直播功能上线,看阿里如何玩转虚拟购物

热门文章

  1. 动态域名解析服务(花生壳)
  2. 提供一套基于SpringBoot-shiro-vue的权限管理思路.
  3. 利用免费的必应 Bing 自定义搜索打造站内全文搜索
  4. halcon之屌炸天的自标定(1)
  5. 非模式物种ROSE超级增强子鉴定分析详解
  6. 怎样用计算机画太极,用IF函数画个太极图
  7. gatk过滤_「简化基因组」如何过滤用GATK分析得到的SNP
  8. 青岛飞阳计算机学校,青岛通济实验学校:综艺比赛 青春飞扬
  9. 互联网企业的职位职位之间的相互关系
  10. html设置单元格不可编辑状态,excel单元格不能编辑 如何取消Excel 2013中单元格的直接编辑状态...