Всплывающие блоки обычно бывают 2-х разновидностей: спозиционированные относительно всего экрана (типа сервисные сообщения) и спозиционированные относительно конкретного элемента (например выпадающие меню). Если вы не сильный в программировании,рекомендуем доверить создание сайта в Казани специалистам сторонней компании.
Позиционируем всплывающий блок по центру экрана
Позиционировать относительно экрана не сложно. Размещаем перед закрывающим body нужное количество всплывающих блоков, назначаем им всем position:absolute, display:none – его мы поменяем на block в момент всплывания, z-index побольше, чтобы точно выше других был в стопке, и позиционируем себе.
HTML
...
CSS
.alert {
position:relative;
display:none;
z-index:10000;
width:300px;
height:200px;
left:50%; // левый верхний угол по центру по горизонтали
top:50%; // левый верхний угол по центру по вертикали
margin-left:-150px; // сместили на половину ширины влево
margin-right:-100px; // сместили на половину высоты вправо
}
В этом примере, мы центрировали блок относительно экрана. Продаю маленькое ноу хау: воспринимаемый нами оптический центр находится чуть выше середины экрана, к тому же сверху обычно еще есть панели браузера, поэтому вверх блок лучше сместить на величину чуть большую, чем половина высоты.
Позиционируем всплывающий блок относительно родительского (drop menu)
1. Создаем блок, относительно которого будет позиционироваться всплывающий. Например, на сайте http://doctorvet.info верхнее меню содержит два таких блока – “Личная жизнь”, справа и слева.
2. Внутри (!) основного блока создаем всплывающий.
3. Далее задаем стили.
HTML
...
...
...
...
CSS
.daddy {
position:relative;
z-index:10000;
}
.child {
position:absolute;
display:none;
left:0;
top:30px; // например
// ширину и высоту задаем, если они не должны определятся по содержимому
}
.daddy:hover child {
display:block;
}
Если нужно сделать всплывающим блок, который позиционируется не относительно родительского, а относительно своей нормальной позиции, но при этом ведет себя как абсолютно позиционируемый (т.е. не влияет на другие блоки), то используем для смещения margin-left и margin-top. Теорию этого дела можно почитать в статье о блочной верстке.
Позиционируем всплывающий блок по центру экрана
Позиционировать относительно экрана не сложно. Размещаем перед закрывающим body нужное количество всплывающих блоков, назначаем им всем position:absolute, display:none – его мы поменяем на block в момент всплывания, z-index побольше, чтобы точно выше других был в стопке, и позиционируем себе.
HTML
...
...
CSS
.alert {
position:relative;
display:none;
z-index:10000;
width:300px;
height:200px;
left:50%; // левый верхний угол по центру по горизонтали
top:50%; // левый верхний угол по центру по вертикали
margin-left:-150px; // сместили на половину ширины влево
margin-right:-100px; // сместили на половину высоты вправо
}
В этом примере, мы центрировали блок относительно экрана. Продаю маленькое ноу хау: воспринимаемый нами оптический центр находится чуть выше середины экрана, к тому же сверху обычно еще есть панели браузера, поэтому вверх блок лучше сместить на величину чуть большую, чем половина высоты.
Позиционируем всплывающий блок относительно родительского (drop menu)
1. Создаем блок, относительно которого будет позиционироваться всплывающий. Например, на сайте http://doctorvet.info верхнее меню содержит два таких блока – “Личная жизнь”, справа и слева.
2. Внутри (!) основного блока создаем всплывающий.
3. Далее задаем стили.
HTML
...
...
...
...
CSS
.daddy {
position:relative;
z-index:10000;
}
.child {
position:absolute;
display:none;
left:0;
top:30px; // например
// ширину и высоту задаем, если они не должны определятся по содержимому
}
.daddy:hover child {
display:block;
}
Если нужно сделать всплывающим блок, который позиционируется не относительно родительского, а относительно своей нормальной позиции, но при этом ведет себя как абсолютно позиционируемый (т.е. не влияет на другие блоки), то используем для смещения margin-left и margin-top. Теорию этого дела можно почитать в статье о блочной верстке.