Есть ли кросс-браузерное значение CSS для "width: -moz-fit-content;"? - PullRequest
65 голосов
/ 20 октября 2011

Мне нужно, чтобы некоторые дивы были в центре и , чтобы соответствовать ширине их содержимого одновременно.

Я сейчас делаю это так:

.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 должен быть ниже , а не inline , предыдущего.

Знаете ли вы какие-либо возможные кросс-браузерные решения?

Ответы [ 7 ]

123 голосов
/ 24 октября 2011

Наконец-то я исправил это просто:

display: table;
53 голосов
/ 03 августа 2013

MDN Mozilla предлагает что-то вроде следующего [ source ]:

 p {
  width: intrinsic;           /* Safari/WebKit uses a non-standard name */
  width: -moz-max-content;    /* Firefox/Gecko */
  width: -webkit-max-content; /* Chrome */
}
7 голосов
/ 12 сентября 2014

Существует ли одно объявление, которое исправляет это для 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

5 голосов
/ 25 марта 2015

В аналогичном случае я использовал: white-space: nowrap;

1 голос
/ 18 июля 2012

Я использую это:

.right {display:table; margin:-18px 0 0 auto;}
.center {display:table; margin:-18px auto 0 auto;}
0 голосов
/ 10 января 2019
width: intrinsic;           /* Safari/WebKit uses a non-standard name */
width: -moz-max-content;    /* Firefox/Gecko */
width: -webkit-max-content; /* Chrome */
0 голосов
/ 20 октября 2011

Почему бы не использовать 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...