Я создал заголовок в html/css. Неожиданная высота приходит в menuOne. Как избавиться от этой высоты. ясно: оба также я добавил. Любой, пожалуйста, предложите мне, где я сделал неправильно.
HTML:
<div class="logo">
<img src="http://dummyimage.com/140x60/000/fff" />
</div>
<div class="rightContent">
<div class="menuOne">
<div class="fLeft">LeftContent</div>
<div class="fRight">RightContent</div>
<div class="cBoth"></div>
</div>
<div class="menuTwo">Second menu will come here</div>
</div>
и CSS:
.fLeft {
float:left
}
.fRight {
float:right
}
.cBoth {
clear:both
}
.logo {
float:left;
border:1px solid red
}
.rightContent {
margin-left:150px;
border:1px solid blue
}
.menuOne {
background-color:#ccc
}
.menuTwo {
background-color:#333;
color:#fff
}
Смотрите скрипку: http://jsfiddle.net/fLZHq
благодаря
Изменение clear:both
clear:right
исправляет это.
.cBoth {
clear:right;
}
Демонстрация первого подхода: http://jsfiddle.net/fLZHq/3/
clear:both
подталкивают элемент ниже всех предыдущих элементов с плавающей точкой (это включает в себя логотип div в вашем случае). В то время как clear:right
только подталкивает его под элементом с правопорядком, который вы хотите.
Второй подход заключается в том, чтобы сохранить rightContent
clear:both
но плавать ваш rightContent
и удалять левое поле, например:
.rightContent {
float:left;
border:1px solid blue
}
Демонстрация второго подхода: http://jsfiddle.net/fLZHq/7/
clear:both
нажимают на menu2
под logo
. Помните, что logo
также всплыл влево. В то время как clear:right
menu2
ниже menu1
Все проблемы с css относительно макета страницы можно найти с помощью трехмерного представления, доступного в Firefox.
Вы использовали float слева для изображения и не использовали float для div rightContent. Таким образом, изображение перекрывает ваш div "rightContent". Вот почему вам нужно было оставить маржу слева для div "rightContent".
Итак, как только вы дадите float: слева для div "rightContent", неожиданная проблема будет решена.
Попробуй это
.rightContent {
margin-left:150px;
float: left;
border:1px solid blue
}