Jump to content
  • 0

Некорректное Отображение Div'a


Funtik44
 Share

Question

Добрый день всем.

Я новичок в этом деле и откровенно говоря это мой первый сай, точнее это только подготовка шаблона. Понемногу читаю, вникаю в суть. Начал делать шаблон и меню. Меню сделал, шаблон можно сказать тоже, но вот появились две проблеммы:

1. Главный контейнер (DIV, это картинка см. рис.1) прилип к левому краю, хотя все параметры я прописал в CSS для оцентровки. Такая картина во всех браузерах. В Opere вообще снизу появился какой-то подвал т.е. рис.1 не отображается там.

2. Меню почему-то не прилипает к верхнему краю, почему так? Появился отступ.

3. Меню делал по следующей технологии - http://demiart.ru/forum/index.php?showtopic=85145 Всё получилось, только не могу отобразить в этом меню хвост - поле, продолжение горизонтального меню, где уже нет кнопок (который на рис.2 серым цветом.)

Шаблон

db302a3701af.jpg

Рис.1

874b36338f00.jpg

Рис.2

ca33d4ada572.jpg

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=Windows-1251">
<title>Главная</title>
<link rel="stylesheet" href="all.css" type="text/css" media="screen">
</head>
<body id="site1page">
<div id="maindiv">


<div id="wrapper">
<ul id="navbar">
<li><a href="site1.html" class="site1">Сайт 1</a></li>
<li><a href="site2.html" class="site2">Сайт 2</a></li>
<li><a href="site3.html" class="site3">Сайт 3</a></li>
<li><a href="site4.html" class="site4">Сайт 4</a></li>
<li><a href="site5.html" class="site5">Сайт 5</a></li>
<li><a href="site6.html" class="site6">Сайт 6</a></li>
<li><a href="site7.html" class="site7">Сайт 7</a></li>
<li><a href="site8.html" class="site8">Сайт 8</a></li>
<li><a href="site9.html" class="site9">Сайт 9</a></li>
<li><a href="site10.html" class="site10">Сайт 10</a></li>
<li><a href="site11.html" class="site11">Сайт 11</a></li>
<li><a href="site12.html" class="site12">Сайт 12</a></li>
</ul>
</div>

</div>
</body>
</html>

CSS:


*
{outline: none;}

body
{margin: 0;
padding: 0;
border: 0px;
background-color: #b0d3f3;
}

#maindiv
{width: 1162px;
height: 100%;
border: 0;
padding: 0;
background-image: url(images/centerbody.png);
background-repeat: repeat-y;
margin: 0 auto;
position: absolute;
}

#wrapper
{width: 1094px;
margin: 0 auto;
}

ul#navbar
{width: 1094px;
list-style: none;
}

ul#navbar li
{display: inline;
}

ul#navbar li a
{float: left;
width: 67px;
height: 28px;
background: url(images/menu.png) no-repeat;
text-indent: -9999px;
}

ul#navbar li a.site1
{background-position: 0px 0px;}

ul#navbar li a.site1:hover
{background-position: 0px -28px;}

body#site1page ul#navbar li a.site1
{background-position: 0px -56px;}

.
.
.

ul#navbar li a.site12
{background-position: 0px 0px;}

ul#navbar li a.site12:hover
{background-position: 0px -28px;}

body#site12page ul#navbar li a.site12
{background-position: 0px -56px;}

Edited by Funtik44
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Ну что, никто не знает в чем дело? Мне казалось, что здесь достаточно простое решение! Народ помогите пожалуйста!!!

PS Хотябы первый вопрос подскажите пожалуйста!!!

Edited by Funtik44
Link to comment
Share on other sites

  • 0

Вы делаете все очень криво.

Для начала, откуда вы взяли такую хитрую ширину главного блока (1162px)?

Зачем вы поставили блоку #maindiv position: absolute;, какой в этом высший смысл?

Для чего вы создаете вложенные друг в друга блоки: #maindiv -> #wrapper, почему нельзя обойтись одним #wrapper?

Зачем вы пишете border: 0; для блока #maindiv?

Зачем вы пишете border: 0; для <body>?

Зачем это правило: * {outline: none;}?

1) все дело в position: absolute;

2) у элемента <ul> по умолчанию есть отступы сверху и снизу. Чтобы он "прилип" к верху обнулите их.

3) а почему собственно этот хвост должен отображаться? Бекграунд задан для <a>.

Link to comment
Share on other sites

  • 0
Вы делаете все очень криво.

Для начала, откуда вы взяли такую хитрую ширину главного блока (1162px)?

Зачем вы поставили блоку #maindiv position: absolute;, какой в этом высший смысл?

Для чего вы создаете вложенные друг в друга блоки: #maindiv -> #wrapper, почему нельзя обойтись одним #wrapper?

Зачем вы пишете border: 0; для блока #maindiv?

Зачем вы пишете border: 0; для <body>?

Зачем это правило: * {outline: none;}?

1) все дело в position: absolute;

2) у элемента <ul> по умолчанию есть отступы сверху и снизу. Чтобы он "прилип" к верху обнулите их.

3) а почему собственно этот хвост должен отображаться? Бекграунд задан для <a>.

Ширина от разрешения на котором базируется сайт - 1280 на 1024.

Я уже убрал position: вообще.

Один Div (maindiv) это контейнер, в который будет помещено меню и остальной контент страницы. Контейнер #wrapper это само меню. Вы считаете, что лучше делать в одном?

Если не писать border: 0, то по умолчанию он будет 0? Или в чем тут смысл, не понимаю?

Правило тоже убрал.

1. Убрал.

2. Отступы, это что имеется ввиду, border, padding или margin? Все обнулил, отступ остались.

3. Бэкграунд задал для wrapper.

Получается следующая картина.

Благодаря вашим советам, получилось оцентровать блок maindiv и wrapper.

Но рисунок блока maindiv и хвост меню, серого цвета, появляются только тогда, когда я добавляю текст в блок wrapper, при этом рисунок растягивается по высоте текста.

Link to comment
Share on other sites

  • 0

Осталась одна проблемка - рисунок блока maindiv растягивается по высоте меню, адолжен по высоте на весь экран. Мне посоветовали такой прием - http://perishablepress.com/press/2009/12/0...-clearfix-hack/ Но не могу понять, куда прописывать данные параметры:

.clearfix:after {

visibility: hidden;

display: block;

font-size: 0;

content: " ";

clear: both;

height: 0;

}

.clearfix { display: inline-table; }

/* Hides from IE-mac \*/

* html .clearfix { height: 1%; }

.clearfix { display: block; }

/* End hide from IE-mac */

Эти параметры в моём случае, необходимо прописывать для класса "maindiv" блока DIV?

И что такое ".clearfix:after", ".clearfix" - это наименование класса, а что такое двоеточие и "after"?

Да нет, просто ширина какая та не стандартная.

Просто я хотел отталкиваться от разрешения 1280 на 1024. Если брать такое разрешение, то картинка (Рис.1) в длину будет какраз 1162 пиксела.

Link to comment
Share on other sites

  • 0
Просто я хотел отталкиваться от разрешения 1280 на 1024. Если брать такое разрешение, то картинка (Рис.1) в длину будет какраз 1162 пиксела.

Это неправильный подход. Сейчас у многих нетбуки и ноутбуки, и в интернет большинство народа выходит именно с них, так что оптимальным решением будет заточка сайта под разрешение 1024х768. Опять же далеко не все будут разворачивать окно на весь экран (я к примеру никогда не разворачиваю).

Link to comment
Share on other sites

  • 0

Ок. Понял. Сейчас переделаю.

Подскажите пожалуйста с последним вопросом!? Я всё сделал как советовали, все получилось, но бэкграунд, который показан на рисунке 1 в первом моём посте, отображается только по высоте блока div (который содержит меню, т.е. по высоте меню). Почему так, как растянуть картинку на все поле по вертикали?

Edited by Funtik44
Link to comment
Share on other sites

  • 0
Попробуйте задать так:

#navbar li {
display: -moz-inline-stack;
display: inline-block;
//display: inline;
//zoom: 1;
}

Серый бекграунд должен быть у <ul>, а не у <a>

Ничего не меняется.

На счет серого бэкграунда, я его сделал для div'a а не для li, все работает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy