java.lang.UnsupportedClassVersionError
происходит из-за более высокого JDK во время компиляции и более низкого JDK во время выполнения.
Пусть прозрачное изображение диктует ваши размеры DIV
.
Внутри этого div поместить то же самое image
<div id="mainHeaderWrapper">
<img src="path/to/image.jpg"><!-- I'm invisible! yey!-->
</div>
установил это изображение на
#mainHeaderWrapper{
background: no-repeat url(path/to/image.jpg) 50% / 100%;
}
#mainHeaderWrapper img{
vertical-align: top;
width: 100%; /* max width */
opacity: 0; /* make it transparent */
}
Таким образом, высота DIV будет определяться содержащимся невидимым изображением, если для параметра background-image
установлено значение ] center, full (50% / 100%
), он будет соответствовать пропорциям этого изображения.
Не уверен, хотите ли вы манипулировать цветами фонового изображения или что (используя CSS3 filter
), но теперь, прочитав снова то, что я написал ... Не проще ли просто поместить изображение внутри DIV? :)
jsBin demo Из-за содержащего изображения вам понадобится дополнительный дочерний элемент, который будет установлен на position:absolute
и действовать как элемент наложения
<div id="mainHeaderWrapper">
<img src="path/to/image.jpg"><!-- I'm invisible! yey!-->
<div>
Some content...
</div>
</div>
#mainHeaderWrapper{
position: relative;
background: no-repeat url(path/to/image.jpg) 50% / 100%;
}
#mainHeaderWrapper > img{
vertical-align: top;
width: 100%; /* max width */
opacity: 0; /* make it transparent */
}
#mainHeaderWrapper > div{
position: absolute;
top: 0;
width: 100%;
height: 100%;
}
body{ margin: 0; padding: 0}
#box1{
background: url(http://lorempixel.com/400/200/food/);
background-size: cover;
background-attachment: fixed;
margin: 0;
width: 100%;
height: 100vh;
display: table;
}
h1{ color: #ffffff; font-family: "Gill Sans", "Gill Sans MT", "Myriad Pro", "DejaVu Sans Condensed", Helvetica, Arial, "sans-serif"; font-size: 38px; text-align: center; font-weight: normal; background: rgba(0,0,0,0.3); display: table-cell; vertical-align: middle}
<div id="box1">
<h1>Code Bluster BILU </h1>
</div>
Если вы знаете пропорции изображения, используйте процентное отступы для определения высоты контейнера. Установите height:0
и установите вертикальное заполнение в процентах от ширины.
Ключи к этому методу заключаются в том, что вертикальное заполнение на основе процентов всегда связано с шириной.
Согласно box model (w3.org) :
Процент вычисляется по ширине блока сгенерированного блока, даже для «padding-top» и «padding-top», padding-bottom '.
Ниже изображение составляет 400px X 200px, поэтому соотношение высоты к ширине равно 1: 2, а
padding-top
установлено на 50%;
#mainHeaderWrapper { width: 100%; height: 0; padding-top:50%; background-image: url(//lorempixel.com/400/200/abstract/1/); background-size: 100% auto; background-repeat: no-repeat; }
<div id="mainHeaderWrapper"></div> stuff below the image
В другом примере изображение равно 300px X 100px. Высота равна ⅓ ширины, поэтому для параметра
padding-top
установлено значение 33.33%:
#mainHeaderWrapper { width: 100%; height: 0; padding-top:33.33%; background-image: url(//lorempixel.com/300/100/abstract/1/); background-size: 100% auto; background-repeat: no-repeat; }
<div id="mainHeaderWrapper"></div> stuff below the image
Изменить :
Как было предложено Paulie_D, другое содержимое в div должно быть помещено абсолютно, как показано ниже. Я предлагаю также позиционировать эти элементы, используя проценты.
#mainHeaderWrapper { width: 100%; height: 0; padding-top: 33.33%; background-image: url(//lorempixel.com/300/100/abstract/1/); background-size: 100% auto; background-repeat: no-repeat; } div#inner_content { position: absolute; top:0; width:100%; margin-top:10%; color: #FFF; text-align: center; font-size:20px; }
<div id="mainHeaderWrapper"> <div id="inner_content">Hello World</div> </div> stuff below the image
Это можно сделать без использования фиктивного изображения. Я буду использовать размеры изображения, с которым я только что работал, например.
Размеры моего изображения: 2880x1410. Упростите размеры -> 96/47 (я использовал этот простой калькулятор отношения http://andrew.hedges.name/experiments/aspect_ratio/ ). Когда у вас есть упрощенное соотношение, подключите высоту и ширину к уравнению:
height: calc ((100vw * W) / H); Таким образом, мой мог бы прочитать: height: calc ((100vw * 47) / 96);
Не нужно беспокоиться о содержимом div либо (если они не подходят)