Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Перекрытие слоями (https://javascript.ru/forum/xhtml-html-css/33441-perekrytie-sloyami.html)

KupueIIIKo 23.11.2012 15:13

Перекрытие слоями
 
Вложений: 1
Кто нибуть смог такого добится? Я вот нефига не могу! Сижу вторые сутки! Снизу фон градиент! Нужно чтоб меню было от градиента! А остальное белое! Картинками не канает" только css! У меня все перекрывается!

ksa 23.11.2012 15:28

Цитата:

Сообщение от KupueIIIKo
Сижу вторые сутки!

Пример в студию! (с)

KupueIIIKo 23.11.2012 16:09

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" content="no-cache">
<style>
html
	{
		width: 100%;
		height: 100%;
		font-family: Arial, Helvetica, sans-serif;
	}
	
body
	{
		background: #1e5799; /* Old browsers */
		background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); /* FF3.6+ */
		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
		background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
		background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Opera 11.10+ */
		background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* IE10+ */
		background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%); /* W3C */
		filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
		width: 100%;
		height: 100%;
		margin: 0;
	}
	
#wrapper
	{
		top: -1px;
		margin:0 auto;
		width:800px;
		margin: 0 auto;
		border-radius: 100px 40px / 40px 100px;
		position: relative;
	}
	
.control_menu
	{
		width: 650px;
		margin: 0 auto;
		text-align: center;
		font-size: 20px;
		overflow: hidden;
	}
	
.control_menu_button
	{
		height: 30px;
		color:white;
		border: 1px white solid;
		border-width: 0 1px 1px 1px;
		border-radius:  0 0 20px 20px;
		display: inline-block;
		padding: 0 10px 0 10px;
	}
	
.control_menu_button:hover
	{
		color: orange;
		cursor:pointer;
	}
	
#content
	{
		background-color:white;
		text-align: center;
		padding: 20px;
	}
</style>
</head>
<body>

	<div id="wrapper">
			<div class="control_menu">
				<div class="control_menu_button">Авторизация</div>
				<div class="control_menu_button">Смотреть</div>
				<div class="control_menu_button">Управлять</div>
				<div class="control_menu_button">Выход</div>
			</div>
			<div id="content">
				<img src="../img/temp.gif">
			</div>
	</div>
</body>
</html>

KupueIIIKo 23.11.2012 16:10

Вот нужно чтоб меню, как бы было во wrapper) но при этом backround его был как у боди) Ну думаю поняли)

ksa 23.11.2012 16:13

На картинке у тебя края у пунктов меню не загнуты! :lol: А в примере уже загнул...

ksa 23.11.2012 16:18

Это
#wrapper {
	top: -1px;
	margin:0 auto;
	width:800px;
	margin: 0 auto;
	border-radius: 100px 40px / 40px 100px;
/* вот это вот */
	position: relative;
}

Принципиально?

Aetae 23.11.2012 16:26

В css нельзя "вырезать". Это делается элементарно, но по-другому:
[блок с закрашеным backgroud][блок с прозрачным][с закрашеным][с прозрачным][с закрашеным]
[                                    блок с закрашеным                                   ]

А уж особенности форматирования и используемые элементы на ваше усмотрение.

ksa 23.11.2012 16:26

Как вариант, у кнопок меню делать некую "подложку" с таким же градиентом как у body...
Правда там высота той подложки должна корректироваться скриптом. Т.к. только там можно будет 100%-тно попать в градиент body...

Но там пункты не такие и большие. :) Может даже небольшее расхождение не всякий глаз на мониторе и увидит... ;)
Т.о. размер той "подложки" можно задать фиксировано. И визуально будет похоже на то "как у body"...

Aetae 23.11.2012 16:46

Да не, если с закруглениеями надо, то всё просто закрашивается border-ами(или box-shadow).

ksa 23.11.2012 16:48

Цитата:

Сообщение от Aetae
если с закруглениеями надо то всё просто закрашивается border-ами

Так бордеры ведь так же загнутся...

Я так понял, что ТС нужно сделдать кагбэ дырки в белом фоне, а в дырках тех слова менюшные...

Может я не понял мысль твою как делать...
У ТСа есть тестовый пример - покажи на нём.

ivan-klimov 23.11.2012 16:54

Заинтересовала задачка))
Я решил ее так http://learn.javascript.ru/play/Z92jsc
Ну это первое, что пришло на ум. Работает в ие 7,8,9; ФФ, Хром, Опера, Сафари.

Конечно все зависит от задачи и от логики работы блоков. Мы Вам предлагаем варианты решения, а Вы уж смотрите, выбирайте и адаптируйте для себя.

Конечно лучше бы продумать оптимальный вариант, чтоб не плодить лишние сущности и т.д., но возлагаем это на Ваши плечи =))

Вот код кому не хочется по ссылке пройти:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Меню</title>
  <style type="text/css">
    .wrapp{width:800px; height:600px; margin:0 auto; background:url('bg.png') left top repeat-x;}
    .wrapp_block{width:500px; height:500px; margin:0 auto; position: relative; top: 160px;}
    .wrapp_block_items{list-style-type: none; margin: -28px 0 0 0; padding: 0; float:left;}
    .wrapp_block_items_item{margin: 0; padding: 0; float:left;}
    .wrapp_block_items_item_link{margin: 0; padding: 0 20px; float:left; display:block; width:60px; height:30px; text-align: center;}
    .wrapp_block_color_separate{margin: 0; padding: 0; width:30px; height:30px; background:#00fe22; float:left;}
    .wrapp_block_color{width:500px; height:500px; background:#00fe22;}
  </style>
</head>
<body>
  <div class="wrapp">
    <div class="wrapp_block">
      <ul class="wrapp_block_items">
        <li class="wrapp_block_items_item"><div class="wrapp_block_color_separate"></div><a class="wrapp_block_items_item_link" href="#">Меню 1</a><div class="wrapp_block_color_separate"></div></li>
        <li class="wrapp_block_items_item"><div class="wrapp_block_color_separate"></div><a class="wrapp_block_items_item_link" href="#">Меню 2</a><div class="wrapp_block_color_separate"></div></li>
      </ul>
      <div class="wrapp_block_color"></div>
    </div>
  </div>
</body>
</html>

Aetae 23.11.2012 17:07

Вот сделал табличкой, ибо лень возиться. Если охота, то можно всё переделать с display:table\inline-block - это уж как вам нравится.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" content="no-cache">
<style>
*{margin:0;padding:0;}
html
    {
        width: 100%;
        height: 100%;
        font-family: Arial, Helvetica, sans-serif;
    }
     
body
    {
        background: #1e5799; /* Old browsers */
        background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); /* FF3.6+ */
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
        background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
        background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Opera 11.10+ */
        background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* IE10+ */
        background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%); /* W3C */
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
        width: 100%;
        height: 100%;
        margin: 0;
    }
     
#wrapper
    {
        top: -1px;
        margin:0 auto;
        width:800px;
        margin: 0 auto;
        border-radius: 100px 40px / 40px 100px;
        position: relative;
    }
     
.control_menu
    {
        width: 100%;
		font-size: 20px;
        height: 20px;
		margin:0;
		padding:0;
		border-spacing:0;
	}
     
.control_menu_button
    {
		vertical-align:top;
    }
.control_menu_button a
    {
		display:block;
        color:white;
        border: 10px white solid;
        border-top: none;
        border-radius:  0 0 20px 20px;
        padding: 0 10px;
		margin-bottom:-10px;
		margin-left:-5px;
		margin-right:-5px;
    }
.control_menu_spacer
    {
        background-color:white;
		width:50%;
	}
.control_menu_button a:hover
    {
        color: orange;
        cursor:pointer;
    }
     
#content
    {
        background-color:white;
        text-align: center;
        padding: 20px;
    }
</style>
</head>
<body>
 
    <div id="wrapper">
			<table class="control_menu">
				<tr>
					<td class="control_menu_spacer"></td>
					<td class="control_menu_button"><a href="#">Авторизация</a></td>
					<td class="control_menu_button"><a href="#">Смотреть</a></td>
					<td class="control_menu_button"><a href="#">Управлять</a></td>
					<td class="control_menu_button"><a href="#">Выход</a></td>
					<td class="control_menu_spacer"></td>
				</tr>
			</table>
            <div id="content">
                <img src="../img/temp.gif">
            </div>
    </div>
</body>
</html>

ksa 23.11.2012 19:07

Цитата:

Сообщение от Aetae
Вот сделал табличкой

Понятно, спасибо.


Часовой пояс GMT +3, время: 18:07.