搜索
首页web前端css教程使宽度和灵活的物品一起玩得很好

Making width and flexible items play nice together

简短回答: flex-shrinkflex-basis 属性很可能就是您在寻找的解决方案。

详细解答

假设您希望将图像和文本像这样并排排列:

现在,假设您使用 Flexbox 来实现这一点。将父元素设置为 display: flex; 是一个良好的开端。

<code>.container { 
  display: flex; 
}</code>

结果是……

糟糕!好吧,我想这还可以接受。图像紧贴文本是有道理的,因为我们没有设置图像的宽度。理想情况下,我们希望图像具有固定宽度,然后文本占据剩余空间。

好的,让我们来做吧!

<code>.container { 
  display: flex; 
}

img { 
  width: 50px;
  margin-right: 20px; 
}</code>

这在 Chrome 中看起来很棒。但是等等,什么?如果我们在 Firefox DevTools 中检查图像标签,我们会发现它根本不是我们设置的宽度值:

我们可以使用 min-width 来强制图像达到我们想要的 50px 宽度:

<code>img {
  min-width: 50px;
  margin-right: 20px;
}</code>

但是,这只会帮助设置宽度,所以我们也必须添加一个 margin。

<code>img {
  min-width: 50px;
  margin-right: 20px;
}</code>

就是这样。在 Firefox 中更好,并且在 Chrome 中仍然有效。

更详细的解答

我意识到图像之所以被压缩,是因为我们需要使用 flex-shrink 属性来告诉 Flex 项目不要减小大小,无论它们是否具有宽度。

所有 Flex 项目的 flex-shrink 值都为 1。我们需要将图像元素设置为 0:

<code>.container { 
  display: flex; 
}

img {
  width: 50px;
  margin-right: 20px;
  flex-shrink: 0;
}</code>

越来越好了!但是我们仍然可以做更多改进。

最终解答

我们可以进一步整理,因为 flex-shrink 包含在 flex 简写属性中。

<code>flex: none | [  ? ||  ]</code>

如果我们将 flex-shrink 值设置为 0,并将 flex-basis 值设置为我们希望图像具有的默认宽度,那么我们可以完全摆脱 width 属性。

<code>.container { 
  display: flex; 
}

img {
  flex: 0 0 50px;
  margin-right: 20px;
}</code>

哦,耶:

另一个例子

flex-shrink 属性解决了大量其他问题,如果您想开始使用 Flexbox,它非常重要。这是另一个例子说明为什么:我偶然发现了另一个类似于上述的问题,我在最近一期的通讯中提到了它。我正在构建一个导航组件,允许用户左右滚动多个项目。在检查我的工作时,我注意到以下问题:

较长的导航项目不应该像那样换行——但我最终明白了为什么会发生这种情况,这要感谢之前的问题。如果将 flex-shrink 属性设置为 0,它将告诉此导航中的每个项目不要收缩,而是采用内容的宽度,如下所示:

是的,我们可以再次采取额外的步骤来使用 flex 属性,这次使用 auto 作为 flex-basis,因为我们希望在分配导航容器中的空间时考虑所有项目尽可能多的空间。

万岁!我们解决了。尽管答案只是一行代码,但它对于创建真正灵活的元素至关重要。

以上是使宽度和灵活的物品一起玩得很好的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中