
当我说 “即将到来” 时,我的意思是它还没有被任何浏览器,而且规格也没有最终确定(在写这篇文章的时候)。也就是说,它在下一个版本的Chrome中是一个标志,而且我毫不怀疑它很快就会出现在所有中。
类似于,但有一个主要的,也是关键的区别。媒体查询可以查询整个文档,并根据这些查询来修改内容。例如,如果文档超过1025px,你可能想把内容移到两列而不是一列。这将看起来像这样。
main.content {
column-count: 1;
column-gap: 2em;
}
@media screen and (min-width: 1025px) {
main.content {
column-count: 2;
}
}
容器查询遵循同样的原则,但不是查询整个文档,而是查询容器。
想象一下下面的情况;你有一个联系卡,你想在你的网站上到处显示。在一些地方,它在主要内容中,但在其他地方,你决定将它显示在一个旁侧。在同一个媒体查询中,旁白可能是250px,但主要部分可能是700px,导致卡片需要看起来不同。解决这个问题很简单,你需要用不同的媒体查询为卡片设置不同的类,但还有一个更好的 *** …… 容器查询!
要使用容器查询,我们必须告诉容器(我们想要应用查询的元素的父级)我们关心它的尺寸,我们用新的 属性来做。
目前Mozilla上的文档有点缺失,这很罕见。我们想使用 inline-size 属性,在Mozilla的其他地方描述为
当我们使用媒体查询时,大多数时候我们关心的是可用宽度(或
inline-size)。
让我们以前面的联系卡为例,想出一些代码来描述它。
<div> <main> <div> <img src="profile.png" alt="profile" /> <div> <h1>Both Names</h1> <p>Some info about me</p> </div> </div> </main> <aside> <div> <img src="profile.png" alt="profile" /> <div> <h1>Both Names</h1> <p>Some info about me</p> </div> </div> </aside> </div>
这个HTML是相当简单的,但我认为它表达了一个观点,我们有一个联系卡,它在两个地方,有可能有极大的不同宽度。
/* Just some simple css to get it started */
.site {
display: flex;
max-width: 800px;
margin: 0 auto;
}
main.content {
width: 60%;
background: #ccc;
}
aside.side-panel {
width: 40%;
background: tomato;
}
/* Real css starts here */
main.content, aside.side-panel {
contain: layout inline-size;
}
.contact-card {
display: flex;
flex-direction: column;
align-items: center;
width: 200px;
background-color: white;
padding: 2em;
box-sizing: border-box;
border-radius: 2px;
margin: 1em;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.4)
}
.contact-card__profile-image {
height: 50px;
width: 50px;
border-radius: 50px;
border: 1px solid black;
}
.contact-card__profile-information {
margin-left: 0.5em;
}
.contact-card__profile-information h1 {
text-align: center;
margin: 0;
font-size: 1.2em;
}
.contact-card__profile-information p {
text-align: center;
margin: 0.5em 0 0 0;
}
@container (min-width: 450px) {
.contact-card {
width: 300px;
flex-direction: row;
align-items: flex-start;
}
.contact-card__profile-information h1 {
text-align: left;
}
.contact-card__profile-information p {
text-align: left;
}
}
在这个CSS中,我们为 contact-card 设计了样式,然后我们有一个容器查询,当我们传递450px的宽度时,它就会改变卡片的样式。正如你所看到的,它基本上与媒体查询相同,但它是基于容器的。
下面是代码的呈现方式(希望有一天我们能在更多的浏览器中试用)。这里是代码,如果在实际工作中,。

正如我在一开始所说的,规范还没有最终确定,如果你想看看人们的建议,或者你想自己提出建议,现在还有时间去做。请到上看一看。
我对此非常兴奋,我主要是用React工作,我真的很期待组件能够根据其父级的大小来改变。
宝塔面板另外一个特质是,你无需通过Linux命令行来查看服务器各项指标状况,即可以阿里云服务器类似的可视化图表,查看资源使用、负载、CPU占用及内容使用百分比等指标。 默认监控是关闭,有需要的,可以开启,监控数据默认保存30天,可以自行修改,默认监控数据保存在日志,可手动清理该日志。 监控管理,...
Laravel多年来一直是PHP应用程序开发的摇滚明星,这是有充分理由的。庞大的生态系统、活跃的社区、强大的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。 如果你想学习Laravel,你不需要更进一步。通过浏览本指南,您可以找到最适合您的Laravel教程,与您的知识水平和...
PHP开发:有些人认为它是,另一些人认为它是一种过时的技术,不值得花时间学习。但是这些数字说明了什么,尤其是当您查看PHP开发人员的薪水时? 虽然肯定有许多更新、更炫、更令人兴奋的语言,但PHP仍然是后端Web开发的可靠主食,也是许多雇主仍在寻找的技能。 有兴趣自己成为PHP开发人员吗?我们...
您可能听说过SaaS,您可能听说过PaaS和IaaS,但您听说过函数即服务 (FaaS) 吗? FaaS市场正在快速增长。根据Allied Market Research的数据,2018年市场价值 。预计到2026年,这一数字将增长到240亿美元——这意味着该行业将从2020年到2026年以2...
随着越来越需要以更快的周转时间生产可扩展、安全和灵活的应用程序,Microservices和APIs在软件开发领域无处不在。 客户需求瞬息万变,他们希望软件解决方案能够减轻他们的任务并为他们提供便利。 采用单体架构的传统方法限制了开发人员进行大量创新。由于它们的成分很硬,因此在应用程序中进行...
为您的项目选择框架或语言可能具有挑战性,尤其是在后端,其中维护用户数据和创建API和库是关键。在撰写本文时,最流行的Web开发技术是Node.js和Ruby on Rails。 选择其中一个可能是一项艰巨的任务。这两种技术各有利弊,了解它们将帮助您为您的项目选择最佳选择。我们将在本文中为您提供...