css3中样式计算属性calc()的使用和总结
2024-09-02 09:28:30
calc的介绍
在css3样式中有一个类似与函数的计算属性calc(),它主要用于指定元素的长度,无论是border、margin、pading、font-size和width等属性都可以使用calc来设置动态值。calc支持的运算单位有rem , em , %, px,calc是支持单位的混合使用的,其计算优先级别和数学一致。
calc的用法
.elm{
width:calc(expression);
}
其中,expression是一个用来计算长度的表达式,支持“+”,“-”,“*”,“/”运算符。
注意1: 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;而对于“*”,“/”并没有这种要求,但为了风格的统一,建议前后也要留空格。例如:
width: calc(100% -8px); /* 这样会出错,结果为0 */
width: calc(100% - 8px); /* 当 + - 符号用空格隔开时,运算成功 */
注意2:使用 * / 运算符时,必须保证有一个值为数值类型;
calc的兼容:
在IE9+、FF4.0+、Chrome19+、Safari6+支持较好,移动端支持不理想。 如图:
兼容性前缀:
.elm{
width: calc(80% - 10px);
width: -moz-calc(80% - 10px); /*Firefox*/
width: -webkit-calc(80% - 10px); /*chrome safari*/
}
在less如何使用
由于less中会把它当表达式计算掉了,需要在参数外面加上: ~("expression"),如:
.elm{
width: calc(~"100% - 80px");
}
或者使用e(“”)包裹在里面,如:
width:e("calc(100% - 80px)");
可如果要用变量怎么用呢?也不复杂,像下面这样就搞定啦。
.class {
@cap: 50px;
height: calc(~"100% - @{cap}");
}
办公资源网址导航 https://www.wode007.com
calc实现适应布局例子
必须使用设置百分比页面同时又有margin时,会出现不够满挤到下一行的情况,所以要用到calc重新计算百分比
<div class="container">
<div class="row">
<div class="col-sm-4 col-xs-6"></div>
<div class="col-sm-4 col-xs-6"></div>
<div class="col-sm-4 col-xs-12"></div>
</div>
<div class="row">
<div class="col-sm-3 col-xs-3"></div>
<div class="col-sm-6 col-xs-6"></div>
<div class="col-sm-3 col-xs-3"></div>
</div>
<div class="row">
<div class="col-sm-1 col-xs-2"></div>
<div class="col-sm-1 col-xs-2"></div>
<div class="col-sm-2 col-xs-8"></div>
<div class="col-sm-2 col-xs-3"></div>
<div class="col-sm-6 col-xs-3"></div>
</div>
</div>
@media screen and (min-width:768px){
.col-sm-{
width: calc(8.1% - 20px);
}
.col-sm-{
width: calc(16.7% - 20px);
}
.col-sm-{
width: calc(% - 20px);
}
.col-sm-{
width: calc(33.3% - 20px);
}
.col-sm-{
width: calc(%- 20px);
}
.col-sm-{
width: calc(% - 20px);
}
}
最新文章
- redis批量删除key
- WPF自定义控件与样式(15)-终结篇 &; 系列文章索引 &; 源码共享
- C#时间处理--DateTime和TimeSpan
- How Tomcat Works(六)
- 浅谈JavaScript递归
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
- FFmpeg的HEVC解码器源代码简单分析:解析器(Parser)部分
- C# 离线人脸识别 ArcSoft V2.0 Demo
- 转 一个oracle11g 使用exp导出空表丢失的问题分析及解决办法
- Docker学习笔记-Redis 安装
- 【PgSQL安装(含配置)】PostgreSQL简称PgSQL,是1980以加利福尼亚大学开发的DBMS,严格遵守标准SQL。
- “耐撕团队”部署并测试onezero团队记帐本项目
- codeforces279B
- scrapy框架之CrawlSpider操作
- [ 9.11 ]CF每日一题系列—— 441C暴力模拟
- 《Linux内核分析》第二周学习小结 操作系统是如何工作的?
- hdu2444The Accomodation of Students (最大匹配+推断是否为二分图)
- 在Maven仓库中添加Oracle数据库的JDBC驱动依赖
- 实验一 《网络对抗技术》逆向及Bof技术
- Atitit.故障排除系列-----apache 不能启动的排除
热门文章
- 全网最全测试点总结:N95 口罩应该如何测试?
- 大型Electron应用本地数据库技术选型
- iOS-Reactive Cocoa的常见用法
- Lavarel 执行:php artisan migrate时报错
- .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)
- IAT表
- CSS文本相关之水平排列[4]
- 在tp5.1中获取所有控制器的文件名和所有控制器下的方法名
- [问题解决]coding时修改代码键入前边后边的自动删除
- 3.kubernetes的CNI网络插件-Flannel