Добавляется дополнительная добавка в 5px к нижней части каждого div
Я пытаюсь создать простой заголовок для страницы в css. Я планировал складывать два div друг на друга. Верхняя часть имеет много вкладок, а нижняя - сплошное одномерное изображение. Но при визуализации я вижу, что дополнительный 5px добавляется к высотам обоих этих div. Поэтому я не могу разместить нижнюю часть точно поверх другой.
Автоматическое нижнее поле 5px. Я попробовал отрицательные поля, reset глобальные поля и paddings равны нулю. Все равно бесполезно.
Вот код.
<div class ="main_nav">
<div class="first_tab">
<img src ="images/startup/tab1_brown.png" height="25" width="90" alt="Temp" />
</div>
<div class = "ind_tab">
<img src ="images/startup/tab1_orange.png" height="25" width="90" alt="Temp"/>
</div>
<div class = "ind_tab">
<img src ="images/startup/tab1_brown.png" height="25" width="90" alt="Temp" />
</div>
</div>
<div class="lock">
<img src ="images/startup/divbg_new.png" alt="Temp" />
</div>
CSS
*{ margin:0; padding:0; }
ul.master_navigation
{
font-size: 125%;
font-weight: bold;
text-align: center;
list-style: none;
margin: 0.5em 0;
padding: 0;
}
ul.master_navigation li
{
display: inline-block;
padding: 0 1%;
}
a
{
color: #08f;
font-weight: bold;
text-decoration: none;
}
a:visited
{
color: #88f;
}
a:hover
{
color: #f00;
}
p
{
text-align: justify;
}
p.cent
{
text-align: left;
}
div.header
{
height: 200;
}
div.main_nav
{
display: inline-block;
height: 25;
width: 900;
padding: 0;
margin: 0;
vertical-align: bottom;
}
div.first_tab
{
height: 25;
float: left;
}
div.ind_tab
{
height: 25;
float: left;
margin-left: -10px;
z-index: -5;
}
div.lock
{
margin-top: -100;
height: 91;
width: 900;
padding: 0;
margin: -5;
}
тело {
width:900px;
max-width: 100%;
margin: auto;
padding: 0;
background-image:url(images/startup/bg_2.gif);
background-repeat:repeat-x;
}
.pad
{
padding: 0;
margin: 0;
}
Здесь ссылка на страницу
http://net4.ccs.neu.edu/home/pradep/
Я потратил слишком много времени на это. Пожалуйста помоги.
Ответы
Ответ 1
Вам нужно указать единицы в объявлениях CSS.
http://jsfiddle.net/m7YCW/
div.main_nav
{
display: inline-block;
height: 25px; /* set px */
width: 900;
padding: 0;
margin: 0;
vertical-align: bottom;
}
Научитесь использовать инструменты разработчика в Chrome, если у вас была правая кнопка мыши на элементах и выбрана → проверить, что это приведет к появлению инструментов dev. Затем вы можете просмотреть области "метрики" и "вычисленные стили", чтобы увидеть, что main_nav был рендерингом как 30px вместо 25px, а также что рядом с объявлением 25 css был установлен предупреждающий символ, и он явно удалялся.
Ответ 2
Ответ Ege был очень полезен для меня. Я потратил часы, чтобы найти причину нижнего заполнения некоторых изображений в div. Это была линия-высота. Установите его в 0px в интересных областях:
.divclass {
line-height: 0px; /* crucial for bottom padding 0 !!! */
}
Ответ 3
Я думаю, что ваша проблема - это line-height
. Да, вот оно. Просто добавил line-height:0
, на firebug, и они застряли вместе.
Что касается встроенных блоков, так это то, что они ведут себя точно так же, как любой встроенный текст, у вас также есть аналогичная проблема в навигации ниже, потому что вы нажали ввести код, он будет отображать его как неразрывное пространство и добавить дополнительные поля x справа и слева. X здесь будет зависеть от размера шрифта.
Чтобы решить эту проблему, вы можете закрыть и открыть теги в той же строке, что и ниже:
<div>
.
.
.
</div><div>
.
.
.
</div>
или вы можете установить font-size
и line-height
в 0
, но это не всегда возможно, если у вас нет других селекторов внутри этого div.
Ответ 4
Попробуйте установить vertical-align:bottom
на изображения.