#css #html #opacity
#css #HTML #непрозрачность
Вопрос:
Хорошо, по какой-то причине мое изображение, которое на 100% непрозрачно, отображается частично прозрачным и показывает баннер и фоновое изображение за ним. Как мне это исправить?
Вот моя таблица стилей:
#banner{
width:1280px;
height:80px;
line-height:100px;
background-color:#a8a8a8;
text-align:center;
font-size:40px;
color:#00FF00;
}
#content{
width:100%;
font-family:comic;
font-size:14px;
padding:10%;
margin:auto;
margin-top:200px;
}
#greeting{
margin-top:-275px;
margin-left:640px;
font-size:25px;
}
#graphic{
margin-left:640px;
margin-bottom:-140px;
}
#banner{
width:1280px;
height:80px;
line-height:100px;
background-color:#a8a8a8;
text-align:center;
font-size:40px;
color:#00FF00;
opacity: 0.5;
filter: alpha(opacity=25);
margin-top: 20px;
}
#background{
margin-bottom:-860px;
opacity: 0.4;
filter: alpha(opacity=25);
}
вот мой html:
<!DOCTYPE html>
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" align="center">
</head>
<body>
<div id="graphic">
<img src="jmfiller2.png" height="150">
</div>
<div id="banner"></div>
<div id="greeting">
Hello! Welcome to my portfolio site!
</div>
<div id="content"></div>
<div id="background">
<img src="background5.JPG">
</div>
</body>
</html>
Ответ №1:
Установка непрозрачности как свойства элемента в CSS воздействует на все, что содержится в этом элементе.
Другими словами, если для вашего баннера div установлена непрозрачность 50% / 25%, все в нем также будет непрозрачным на 50% / 25%.
и кажется, что часть HTML отсутствует, если только вы просто не разместили все это
Ответ №2:
Скотт прав, вы установили для родительского элемента прозрачность, которая будет применена ко всем дочерним элементам, и вы абсолютно ничего не можете сделать, чтобы сделать дочерний элемент непрозрачным, когда родительский CSS установлен на уровень прозрачности.
Я знаю два подходящих обходных пути для этого:
-
Используйте крошечное
PNG
изображение для «имитации» прозрачности с помощью следующего:background:url(path/to/image/semi-transparent-background.png) repeat;
-
Вы можете создать прозрачный фон для псевдоэлемента, используя
:before
или:after
.
В зависимости от того, какую степень обратной совместимости вы хотите, вы можете выбрать один или оба из этих параметра с помощью медиа-запросов и тому подобного.
Ответ №3:
Я немного изменил ваш css, баннер больше не прозрачный:
#content{
width:100%;
font-family:comic;
font-size:14px;
padding:10%;
margin:auto;
margin-top:200px;
}
#greeting{
margin-top:-275px;
margin-left:640px;
font-size:25px;
}
#graphic{
margin-left:640px;
margin-bottom:-140px;
}
#banner{
width:1280px;
height:80px;
line-height:100px;
background-color:#a8a8a8;
text-align:center;
font-size:40px;
color:#00FF00;
margin-top: 20px;
}
#background{
margin-bottom:-860px;
opacity: 0.4;
filter: alpha(opacity=25);
}