我应该使用display:block,还是应该总是使用display:flex?

时间:2016-08-15 01:53:17

标签: html css css3 flexbox

我最近学到了很多关于flexbox的知识,但有一点我还不清楚。我应该始终将adapter.getFilter().filter(cs); //no need to use Activity_ListView.this.adapter.getFilter().filter(cs); 设置为display / flex,还是使用inline-flex / block是否有利?

我找到了几篇有用的文章,但没有一篇文章回答这个具体问题。 This article使用flexbox解释了不同inline-block值之间的差异,而不是将它们与display进行比较。问题确实表明使用display: block / block已经过时,但我还没有看到任何其他来源确认这一点。如果inline-block现在过时了,我会认为它会在W3 Schools上这样说(并不是说它们总是正确的,但它们似乎是一个很好的来源)。

有几个答案提到this article,但同样,它没有解释何时应该使用display: block而不是display: block(如果有的话)。

其他回答类似问题的文章有this onethis one。虽然两者都很棒。第一个给两者带来优势和劣势,但flexbox的唯一显着缺点是浏览器兼容性,这不是该项目的关注点。后一篇文章给出了我看到的最佳答案,即使用display: flex允许元素保留flexbox属性。这是否意味着如果它不需要flexbox属性,我应该使用display: flex?是否会对性能产生影响,或者我应该始终使用display: block

2 个答案:

答案 0 :(得分:4)

它们是不同的盒子布​​局模型。一切都是有效的,每一个都有自己的优点和缺点。

blockinline-block都不过时。您仍然可以使用它们,CSS工作组仍在添加可用于这些旧布局的新功能。

  

Flexbox的唯一显着缺点是浏览器兼容性

这是假的,flexbox有多个缺点,比如lack of floating and lack of multicolumns

  

Flex布局在表面上类似于块布局。它缺乏很多   可以使用的更复杂的以文本或文档为中心的属性   在块布局中,例如floatscolumns。作为回报,它变得简单   和强大的工具,用于分配空间和对齐内容   网络应用程序和复杂的网页经常需要。

  

这是否意味着如果它不需要flexbox属性,我应该使用display: block

即使您不需要弯曲,Flexbox仍然可以正常工作。但在那种情况下,我会劝阻它。块布局更简单,这可能意味着浏览器可以更快地渲染它。

答案 1 :(得分:0)

创建“ flex”是为了使用简单且响应更好的设计,因此它需要更多的渲染计算时间,如果您不需要响应设计,则最好使用“块”,因为它更快。