Почему свойство "box-sizing" не отображает мой значок "i"?

Я хочу, чтобы один из этих значков "i" появился рядом с именем на моем сайте, чтобы люди могли щелкнуть по нему и посмотреть дополнительную информацию. У меня есть этот HTML

<div id="personName"><h2>PersonA</h2> <div id="moreInfo">i</div></div>

и ниже стиль

#personName {
        display: block;
}

#moreInfo {
    border-radius: 50%;
    behavior: url(PIE.htc); /* remove if you don't care about IE8 */
    width: 36px;
    height: 36px;
    padding: 8px;
    background: #fff;
    border: 2px solid #666;
    color: #666;
    text-align: center;
    font: 32px Arial, sans-serif;
    font-weight: bold;
    font-style: italic;
    display: inline-block;
}

Проблема у меня тоже есть этот стиль

* {
    box-sizing: border-box;
}

что мне нужно для многих других элементов на моем сайте, и это, кажется, отбрасывает то, как появляется моя графика "я" - https://jsfiddle.net/ds9sqr0y/. Похоже, что оно не отображается рядом с именем, но, возможно, это отдельная проблема.

2 ответа

Это потому что box-sizing: border-box включает в себя как border иpadding в расчетах высоты.

Это означает, что если вы создаете элемент с height: 30px а также padding-top: 5px, он будет высотой 35px (высота + отступ), но с настройкой box-sizing: border-box, это будет 30 пикселей в высоту.

В вашем конкретном случае вы можете увеличить высоту и ширину, чтобы они выглядели так, как вы хотите:

width: 57px;
height: 57px;

Согласно ответу Джесси де Брюйне, вы можете установить свойство padding в селекторе #moreInfo на 0. Если вы можете, попробуйте уменьшить размер шрифта i, чтобы лучше позиционировать его (я использую Chrome). Установка 30px, кажется, показывает это лучше.

#moreInfo {
    ...
    padding: 0;
    font: 30px Arial, sans-serif;
    ...
}
Другие вопросы по тегам