您现在的位置是:网站首页> 编程资料编程资料
巧用CSS3的calc()宽度计算做响应模式布局的方法使用CSS混合模式和SVG来动态更改产品图片的颜色使用CSS实现黑暗模式和高亮模式的切换功能CSS中元素的显示模式
2023-10-20
225人已围观
简介 本篇文章主要介绍了巧用CSS3的calc()宽度计算做响应模式布局的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天浏览这个http://www.sitepoint.com站时,因为好奇看了下人家写的代码,结果发现了这行代码,

于是就研究了一下,calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。
calc()能做什么?
calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em)”,这样一来你就不用考虑元素DIV的宽度值到底是多少,而把这个烦人的任务交由浏览器去计算。
calc()语法
calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示:
width: calc(expression);
其中”expression”是一个表达式,用来计算长度的表达式。
calc()的运算规则
calc()使用通用的数学运算规则,但是也提供更智能的功能:
- 使用“+”、“-”、“*” 和 “/”四则运算;
- 可以使用百分比、px、em、rem等单位;
- 可以混合使用各种单位进行计算;
- 表达式中有“+”和“-”时,其前后必须要有空格,如”widht: calc(12%+5em)”这种没有空格的写法是错误的;
- 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
浏览器的兼容性

我们来个例子,我们做一个三列并排的模块,宽度按百分比、有padding值、有border值、还有margin-right,而且这三个值是px,
li{ float:left; width:33.3333%; height:50px; padding:10px; margin-right:10px; background:#FF6666; border:5px solid #DAC8A7; } 效果图:

它是不会好好并列的,在这种情况下就不好算了,就算算出来也有那么一点误差,不是吗?现在我们就用到了calc(),
li{ float:left; //width:33.3333%; height:50px; padding:10px; margin-right:15px; background:#FF6666; border:5px solid #DAC8A7; width:calc(33.3333% - (10px + 5px) * 2 - 15px ) } 意思是(width-(padding+border)*2-margin)
现在可以并排了

好了,到这就告一段络了,再稍微优化一下左右边15px的空距,让两边都挨边。就在父级上加个margin-right:-15px,OK 搞定,
现在拿这个去做响应模式应该很方便了,
还有一篇外国人写的具体如何做大家有兴趣的可以了解一下http://osvaldas.info/imitating-calc-fallback-fixed-width-sidebar-in-responsive-layout
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 利用css3径向渐变做一张优惠券的示例使用css创建一个优惠券的方法CSS实现优惠券边沿打孔效果纯css3绘制的精美购物优惠券样式效果源码CSS 使用radial-gradient 实现优惠券样式
- 详解如何用div实现自制滚动条div的滚动条如何实现css将div层固定显示在页面底部不随滚动条滚动给DIV添加滚动条的实现代码给div加滚动条 div显示滚动条设置代码css实现div自动添加滚动条(图片或文字等超出时显示)div css 滚动条样式 DIV滚动条属性及样式设置方式
- css3 边框、背景、文本效果的实现代码基于CSS 属性实现按钮悬停边框和背景动画集合CSS 制作带边框背景色透明的消息框CSS3实现多背景模拟动态边框的效果CSS控制背景图像平铺实现边框阴影效果css div 边框阴影利用背景图或内外层div实现层次感觉阴影效果css样式div或li在ie6下背景平铺及border边框断线解决技巧 CSS新特性:圆角边框多栏Gird布局背景设置css背景和边框标签实例详解
- CSS 图片动画特效的示例代码(相框)CSS相框效果示例代码CSS伪元素before、after设置特殊效果:制作时尚焦点图相框
- 魔法门10:遗产实用通关技巧详解_手机游戏_游戏攻略_
- 天天富翁闪退原因及解决方法_手机游戏_游戏攻略_
- 全民飞机大战春节快速刷分方法详解_手机游戏_游戏攻略_
- 天天飞车IOS版无异常不封号刷分教程_手机游戏_游戏攻略_
- 找你妹3全新奖励关卡玩法攻略大全_手机游戏_游戏攻略_
- 天天飞车最简易隐身无限吸金刷高分攻略_手机游戏_游戏攻略_
