css跨浏览器的值是否为“ width:-moz-fit-content;”?


85

我需要一些div居中放置并同时适合其内容宽度

我现在这样做:

.mydiv-centerer{

  text-align: center;

  .mydiv {
    background: none no-repeat scroll 0 0 rgba(1, 56, 110, 0.7);
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0 0 5px #0099FF;
    color: white;
    margin: 10px auto;
    padding: 10px;
    text-align: justify;
    width: -moz-fit-content;
  }
}

现在,最后一个命令“ width:-moz-fit-content;” 正是我所需要的!

唯一的问题是..它仅在Firefox上有效。

我还尝试了“ display:inline-block;” ,但我需要这些div表现得像div一样。也就是说,每个下一个div应该位于上一个之下,而不是内联

您知道任何可能的跨浏览器解决方案吗?


1
试试这些问题的答案之一: stackoverflow.com/questions/5803030/...
马特^ h

3
Chomefit-content现在支持。
LinuxDisciple

Answers:


167

最后,我使用以下命令修复了它:

display: table;

4
我到这里是在寻找与您的问题完全相同的条款。我做了,display: tablemargin: auto居中form。大!:D
Leniel Maccaferri'5

同时,我不得不使用空白:pre!important;
Bimal Das

2
不尊重某些属性,例如max-width: 100%
丹尼尔(Daniel)

71

Mozilla的MDN建议类似以下[来源]:

 p {
  width: intrinsic;           /* Safari/WebKit uses a non-standard name */
  width: -moz-max-content;    /* Firefox/Gecko */
  width: -webkit-max-content; /* Chrome */
}

我们可以像设置p样式一样指定两次宽度属性吗?宽度:固有宽度;/ * Safari / WebKit使用非标准名称/宽度:-moz-max-content; / Firefox / Gecko * /
Sagar Bhosale 2014年

1
-moz-max-content仅等于-moz-fit-content父元素更宽时。 -moz-fit-content将适合内容并包装文本,但-moz-max-content将扩展到父元素之外。同样适用于Chrome-webkit-max-contentfit-content
LinuxDisciple

不要忘记添加width: max-content;
Tobias Tengler '19

13

在类似情况下,我使用了: white-space: nowrap;


1
这解决了下拉菜单内容溢出的问题。谢谢!
Zach Leighton

7

是否有一个针对Webkit,Gecko和Blink修复此问题的声明?否。但是,存在跨浏览器解决方案,方法是指定多个宽度属性值,这些值对应于每个布局引擎的约定。

.mydiv {  
  ...
  width: intrinsic;           /* Safari/WebKit uses a non-standard name */
  width: -moz-max-content;    /* Firefox/Gecko */
  width: -webkit-max-content; /* Chrome */
  ...
}

改编自:MDN


2

我用这些:

.right {display:table; margin:-18px 0 0 auto;}
.center {display:table; margin:-18px auto 0 auto;}


-1

为什么不使用一些br

<div class="mydiv-centerer">
    <div class="mydiv">Some content</div><br />
    <div class="mydiv">More content than before</div><br />
    <div class="mydiv">Here is a lot of content that
                       I was not anticipating</div>    
</div>

的CSS

.mydiv-centerer{
    text-align: center;
}

.mydiv{
    background: none no-repeat scroll 0 0 rgba(1, 56, 110, 0.7);
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0 0 5px #0099FF;
    color: white;
    margin: 10px auto;
    padding: 10px;
    text-align: justify;
    display:inline-block;
}

示例: http //jsfiddle.net/YZV25/


2
非常感谢您,它确实有效,但是很难处理div之间的顶部和底部边距。我找到了一个更好的解决方案,只需使用display: table;代替即可display: inline-block;
杜阿姆(DuArme)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.