您现在的位置是:网站首页> 编程资料编程资料
巧用CSS3的calc()宽度计算做响应模式布局的方法使用CSS混合模式和SVG来动态更改产品图片的颜色使用CSS实现黑暗模式和高亮模式的切换功能CSS中元素的显示模式
2021-09-04
1104人已围观
简介 本篇文章主要介绍了巧用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设置特殊效果:制作时尚焦点图相框
- css多行文本溢出时出现省略号的示例纯CSS定制文本省略的方法大全css3实现渐变、阴影、超出指定文本省略号显示等一些效果实例CSS实现标题文字过长部分显示省略号的方法CSS样式 解决文字过长显示省略号问题
- 分享CSS书写规范、顺序【推荐大家使用】CSS代码书写规范究极指南Discuzx系统 CSS 编码规范、CSS属性书写顺序CSS书写规范、顺序和命名规则书写CSS的5个小技巧让你的样式更规范CSS XTHML书写规范以及常见问题总结(页面最优化)web开发中怎么样使css书写规范? CSS 的加载及加载顺序简介详解CSS中的选择器优先级顺序解决CSS3的opacity属性带来的层叠顺序问题深入解析CSS中z-index属性对层叠顺序的处理
- 浅谈CSS层叠机制CSS样式继承和层叠css照片有如层叠效果的实现方法浅谈CSS中的继承性,特殊性,层叠性和重要性CSS特殊性、继承与层叠解决CSS3的opacity属性带来的层叠顺序问题深入理解CSS定位与层叠详解CSS中的z-index属性在层叠布局中的用法深入解析CSS中z-index属性对层叠顺序的处理详解CSS的结构与层叠以及格式化权重和层叠规则决定了CSS样式优先级
- 详解css display:box 新属性一文了解CSS 标签显示模式详解CSS标签中的显示模式浅析css中使用border属性与display属性的方法浅谈CSS3中display属性的Flex布局的方法浅谈CSS的Display属性可能的值CSS display属性的table表格布局详解CSS标签模式display属性
- 浅谈CSS浮动的特性Css实现清除浮动的方法汇总深入理解CSS overflow:hidden——溢出,坍塌,清除浮动CSS清除浮动方法大全(小结)CSS3 清除浮动的方法示例深入理解css布局之定位与浮动CSS实现元素浮动和清除浮动的方法
- 前端应该掌握的CSS实现多列等高布局技巧css设置多列等高布局的方法示例利用CSS3的flexbox实现水平垂直居中与三列等高布局浅析CSS等高布局的6种方式用CSS实现三列DIV等高布局以传达更好的视觉效果多列等高的CSS实现代码CSS 三栏等高布局实现方法CSS实例:CSS实现的等高网页布局CSS实例:三列等高布局-CSS教程-网页制作-网页教学网css多种方式实现等高布局的示例代码
