CSS3 GEMS:calc()函数
CSS3 calc() 函数详解:灵活布局的利器
核心要点
- CSS3
calc()
函数允许计算长度、数字、角度、过渡/动画时间或声音频率,并支持混合使用不同单位类型。此功能在布局设计中尤其有用,因为它允许在流体或响应式布局中进行精确的宽度计算。 -
calc()
函数的浏览器支持度目前有限。Internet Explorer 9 和 Firefox(带前缀)原生支持,但 webkit(Chrome 和 Safari)和 Opera 尚未实现。但是,可以在样式表中使用渐进增强来确保跨不同浏览器的兼容性。 - CSS3 的
min()
和max()
函数返回两个或多个逗号分隔值的最小值或最大值,也用于控制相对字体大小,但目前任何最新的浏览器都不支持。
CSS3 模块化规范中隐藏着许多宝藏。本文将介绍 calc()
;一个非常有用的属性,它可能会改变您处理布局设计的方式。CSS3 calc()
函数主要用于计算长度、数字、角度、过渡/动画时间或声音频率。但是,它允许您混合使用测量类型——这是 CSS 中一个强大的概念。考虑一个包含两个浮动元素的网站布局。您希望这两个元素具有相等的宽度,并以 60px 的水平边距分隔。听起来很简单?在固定宽度设计中不是问题;如果页面宽度为 960px,则两个元素都将为 450px。但是流体或响应式布局呢?无法确定页面宽度,因此大多数开发人员会将每个元素设置为 45%。只有当页面恰好为 600px 时,10% 的边距才为 60px;更宽或更窄的浏览器窗口会相应地放大或缩小边距。幸运的是,新的 calc()
函数允许我们计算宽度。在这种情况下,我们希望两个元素都为 50% 减去 30px,例如:
#element1, #element2 { float: left; width: calc(50% - 30px); } #element2 { margin-left: 60px; }
也许您想要一个相对于字体大小的边距——例如 4em?没问题:
#element1, #element2 { width: calc(50% - 2em); }
或者您可能想要在两个元素周围添加 2px 的边框:
#element1, #element2 { width: calc(50% - 2em - 4px); border: 2px solid #000; }
我建议您保持计算简单,但可以使用复杂的公式,例如:
#element1, #element2 { width: calc((50% + 2em)/2 + 14px); }
浏览器支持
calc()
函数是 W3C 建议,那么哪个浏览器提供原生支持呢?错了。在撰写本文时,只有 Internet Explorer 9。Firefox 也支持它,并带有前缀;-moz-calc()
。它尚未在 webkit(Chrome 和 Safari)或 Opera 中实现,但是,它非常有用,我怀疑我们不需要等待太久。幸运的是,您可以在样式表中使用渐进增强:
#element1, #element2 { width: 45%; /* 所有浏览器 */ width: -moz-calc(50% - 30px); /* Firefox 4+ */ width: calc(50% - 30px); /* IE9+ 和未来的浏览器 */ }
请记住,您还需要相应地调整边距,例如:
#element2 { margin-left: 10%; /* 所有浏览器 */ margin-left: -moz-calc(60px); /* Firefox 4+ */ margin-left: calc(60px); /* IE9+ 和未来的浏览器 */ }
CSS3 min()
和 max()
如果您喜欢 calc()
,您会喜欢 min()
和 max()
函数。它们接受两个或多个逗号分隔的值,并相应地返回最小值或最大值,例如:
#element1, #element2 { float: left; width: calc(50% - 30px); } #element2 { margin-left: 60px; }
这些函数在使用相对字体大小时将特别有用,以确保文本不会变得太大或太小。不幸的是,min()
和 max()
目前在任何最新的浏览器中都不受支持。让我们希望它们很快就会出现。
(此处省略了Frequently Asked Questions部分,因为该部分内容与原文高度重复,伪原创难度较大,且篇幅较长,不利于保持文章精简。)
以上是CSS3 GEMS:calc()函数的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务
