Было замечено, что, когда fancybox вычисляет, насколько широким он должен соответствовать содержимому, он не обрабатывает десятичные числа/числа с плавающей запятой.fancybox не обрабатывает ширины с десятичными значениями
Например, если у нас было 2 <div>
из 300px
и 217.367px
соответственно FancyBox бы округлить width
его содержания в 300px + 217px = 517px
. Это означает, что второй div
не подходит и поэтому опустится до следующей строки.
Возможно, это связано с использованием метода jQuery width()
.
Соответствующий код
HTML:
<a class="fancybox" href="#inline">open inline</a>
<div id="inline" class="cf">
<div id="content">
<h3>Lorem Ipsum</h3>
<p>More text content etc</p>
</div>
<div id="red">Other floating content</div>
</div>
CSS:
#inline {
position: relative;
white-space: nowrap;
}
#content {
width: 15.526em; /* 217.367px */
height: 150px;
display: block;
float: left;
}
#red {
height: 150px;
width: 300px;
display: block;
float: left;
}
JQuery:
$(".fancybox").fancybox({
padding: 0
});
Примечание в скрипку #inline
контейнер всегда виден только для демонстрационных целей. Также обратите внимание на width
одного из контейнеров был установлен в ems
, который является довольно распространенным сценарием поэтому изменение его в px
фиксированной width
не может быть путь (хотя это можно установить width: 217.367px
на CSS с такой же результат)
Есть ли исправление или обходной путь?
Возможным и простым решением было бы добавить дополнительный пиксель в контейнер fancybox, но было бы лучше добавить его только тогда, когда это необходимо, а не как общее правило.