2012-05-03 4 views
12

у меня есть некоторые разметки, как так:Div получает дополнительную высоту без причины

<div class="account-picture"> 
    <img src="http://i.imgur.com/Mcr3l.png"> 
</div> 

В div потребности быть размещены слева. Изображение 128 пикселей x 128 пикселей.

И некоторые CSS:

.account-picture{ 
    float: left; 
    background: #FFFFFF; 
    padding: 10px; 
    border: 1px solid red; 
    font-size: 1px; 
    overflow: hidden; 
} 

img{ 
    border: 1px solid #F8F8F8; 
    overflow: hidden; 
} 

Но проблема есть, кажется, некоторая дополнительная высота назначен дел. Схемы компоновки от firebug следующие: enter image description here

Почему высота div получает 2 дополнительных пикселя? Почему это зависит от браузеров?

  • Firefox 12: 2px дополнительный
  • IE9: 0.26px дополнительный
  • Chrome: 0px дополнительно.

А вот скрипка: http://jsfiddle.net/mWe5Y/

Почему это происходит, и как я могу избавиться от этой дополнительной «высоты»?

ответ

18

Поскольку img является встроенным элементом.

Чтобы избавиться от этой дополнительной высоты:

.account-picture img { 
    display: block; 
} 
+0

и вот рабочая скрипка: http://jsfiddle.net/mWe5Y/10/ – Alp

+0

Является ли это то, что мы можем нормализовать в таблице стилей сброса? – F21

+0

Можно ли использовать img {display: block; } в листе reset.css? Конечно, но, вероятно, вам понадобятся времена, когда вы хотите, чтобы рассматривался как встроенный элемент. В этих случаях вам нужно добавить CSS в соответствующие места для достижения этого. http://stackoverflow.com/questions/4904668/html5-vertical-spacing-issue-with-img – clyfish

Смежные вопросы