有 CSS 跨浏览器替代 Firefox 的“width: -moz-fit-content;”吗?

问题描述 投票:0回答:7

我需要一些 div 来同时适应它们的内容宽度。

我现在这样做:

.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; }
最后一个命令

“宽度:-moz-fit-content;”正是我所需要的!唯一的问题是......它只能在 Firefox 上运行。 我也尝试过使用 "display:inline-block;"

,但我需要这些 div 表现得像 div。也就是说,下一个 div 应该位于

under,而不是前一个 div inline 你知道任何可能的跨浏览器解决方案吗?

最后我简单地使用以下方法修复了它:
css cross-browser
7个回答
192
投票
display: table;

Mozilla 的 MDN 建议类似于以下内容 [


16
投票


是否有一个声明可以针对 Webkit、Gecko 和 Blink 修复此问题?不可以。但是,有一个跨浏览器解决方案,可以指定与每个布局引擎的约定相对应的多个宽度属性值。

11
投票
.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;}

我正在寻找一种方法来防止长行文本超出其容器,并且 

2
投票
在 Chrome 中有效,但在 Firefox 中无效。

我找到了一个解决方法:如果该元素是最后一个显示的子元素,则设置 
display: table-caption;

caption-side: bottom;

 以及父对象上的 
display: table;
 确实具有相同的效果。

为什么不使用一些

-1
投票

<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/

© www.soinside.com 2019 - 2024. All rights reserved.