栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

flex-basis和width有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flex-basis和width有什么区别?

考虑
flex-direction

阅读问题时首先想到的是,

flex-basis
这并不总是适用于
width

flex-direction
row
flex-basis
控制宽度。

但是,当

flex-direction
column
flex-basis
控制高度。


关键差异

以下是

flex-basis
width
/ 之间的一些重要区别
height

  • flex-basis
    仅适用于弹性商品。Flex容器(也不是flex项目)将忽略,
    flex-basis
    但可以使用
    width
    height

  • flex-basis
    仅在主轴上起作用。例如,如果您在中
    flex-direction: column
    ,则
    width
    需要该属性以水平调整弹性项目的大小。

  • flex-basis
    对绝对放置的弹性项目没有影响。
    width
    height
    属性将是必要的。绝对定位的弹性项目不参与弹性布局。

  • 通过使用

    flex
    属性,三种属性-
    flex-grow
    flex-shrink
    flex-basis
    -可整齐地组合成一个声明。使用
    width
    ,相同的规则将需要多行代码。


浏览器行为

就它们的呈现方式而言,和之间应该 没有区别 ,除非是或。

flex-basis``width``flex-basis``auto``content

从规格:

7.2.3。 该

flex-basis
物业

对于

auto
和以外的所有值
content
flex-basis
其解析方式与
width
水平写入模式相同。

但是,影响

auto
content
可能根本很少或没有。规格中的更多内容:

auto

在弹性商品上指定时,

auto
关键字将检索main size属性的值作为used
flex- basis
。如果该值本身是
auto
,则使用的值为
content

content

表示根据弹性项目的内容自动调整大小。

_注意:此值在“ Flexible Box Layout”的初始发行版中不存在,因此某些较早的实现不支持该值。

可以通过将

auto
主尺寸(
width
height
)与一起使用来达到同等效果
auto
。_

因此,根据规范,

flex-basis
并进行
width
相同的解析,除非
flex-basis
auto
content
。在这种情况下,
flex-basis
可以使用内容宽度(大概也可以使用该
width
属性的宽度)。


flex-shrink
因素

记住Flex容器的初始设置很重要。其中一些设置包括:

  • flex-direction: row
    -伸缩项目将水平对齐
  • justify-content: flex-start
    -flex项目将堆叠在主轴线的开始处
  • align-items: stretch
    -伸缩物品将扩展以覆盖容器的横向尺寸
  • flex-wrap: nowrap
    -弹性项目被迫停留在一行
  • flex-shrink: 1
    -允许伸缩项目收缩

注意最后的设置。

因为默认情况下允许弹性项目收缩(这可以防止它们溢出容器),所以指定的

flex-basis
/
width
/
height
可能会被覆盖。

例如,

flex-basis: 100px
width: 100px
与结合使用
flex-shrink: 1
,不一定是100px。

要呈现指定的宽度( 并保持固定) ,您将需要禁用缩小:

div {   width: 100px;   flex-shrink: 0;}

要么

div {  flex-basis: 100px;  flex-shrink: 0;}

或者,按照规范的建议:

flex: 0 0 100px;    

7.2。 灵活性的组成部分

鼓励作者使用

flex
速记而不是直接使用其速记属性来控制灵活性,因为速记会正确地重置任何未指定的组件以适应常见用途。


浏览器错误

某些浏览器无法在嵌套的flex容器中调整flex项的大小。

flex-basis
在嵌套的flex容器中被忽略。
width
作品。

使用时

flex-basis
,容器将忽略其子容器的大小,并且子容器会溢出容器。但是在拥有该
width
属性的情况下,该容器尊重其子级的大小并相应地扩展。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号