jQuery в Chrome возвращает «блок» вместо «встроенный» - PullRequest
2 голосов
/ 02 мая 2011

У меня есть два встроенных div.они оба имеют схожие стили и, что важно, оба являются встроенными.

JQuery сообщает, что их css "display" является блоком ТОЛЬКО в Chrome.Мне действительно нужно знать, что эти два встроены.

jsfiddle здесь

css:

div
{
    display: inline;
    width: 50%;
    float: left;
    height: 100px;
    text-align: center;
    font-weight: bold;
    padding: 10px;
    box-sizing: border-box;
}
.div1
{
    background-color: black;
    color: white;
    border: 2px solid grey;
}

.div2
{
    background-color: white;
    color: black;
    border: 2px solid black;
}

html:

<div class="div1">1</div>
<div class="div2">2</div>

jQuery:

jQuery("div").click(function()
{
    jQuery(this).append("<br/><span>" + jQuery(this).css("display") + "</span>");
});

jQuery("div").click();

Кто-нибудь знает, что происходит, или, что более важно, что я могу сделать? (кроме того, что вырвать мои волосы ... начинает болеть;))

1 Ответ

8 голосов
/ 02 мая 2011

Как я уже сказал в своем комментарии, float: left заставляет display: block.

Вот соответствующая информация в спецификации:

http://www.w3.org/TR/CSS21/visuren.html#propdef-float

Элемент генерирует блок-блок , который всплывает влево.

А затем:

http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo

В противном случае, если «float» имеет значение, отличное от «none», поле является плавающим, и «display» устанавливается в соответствии с таблицей ниже.

Чтобы подвести итог упомянутой таблицы: float = display: block.

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