#html #css
Вопрос:
Я пытаюсь получить тень css-поля от круга, чтобы она появилась под навигационной панелью, которая появляется под самим изображением. В данный момент я могу заставить изображение создать тень, которая появляется поверх навигационной панели, но я хочу, чтобы казалось, что это один объект.
Я пробовал использовать :раньше в классе «.logo» и помещать тень в другой z-индекс, но это просто заставляет тень исчезать. Я довольно новичок в веб-материалах (а также в переполнении стека), поэтому буду признателен за любую помощь.
Это css, который я использую, и проблема связана с классом логотипа
html{
overflow-y: scroll;
}
body {
font-family: "Arial", Helvetica, sans-serif;
font-weight: bold;
font-size: 20px;
color: #DCDCDC;
background-color: #222035;
margin: 0px;
}
.centered {
position: absolute;
left: 50%;
transform: translate(-50%);
}
.logo {
position: relative;
top: 100%;
left: 50%;
transform: translate(-50%, -50%);
width: auto;
height: 100%;
}
.logo:before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: -1;
border-radius:100%;
box-shadow: 0 2vh 5vh #000000;
}
.topnav {
box-shadow: 0px 2vh 5vh #000000;
width: 100%;
height: 15vh;
background-color: #222035;
}
header {
padding: 170px;
}
И остальная часть HTML
<!DOCTYPE html>
<html lang="en-UK">
<head>
<title>WOW</title>
<link rel="icon" href="icon.png">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<nav class="topnav">
<img class = "logo" src="icon.png"></nav>
</body>
Комментарии:
1. Не могли бы вы поделиться ссылкой на кодовую ссылку?
2. codepen.io/FlippyFishy/pen/bGNYLrb ты это имеешь в виду?
3.может быть, изображение должно быть просто
block
элементом сmargin: auto
codepen.io/toniweb/pen/rNwqRXN4. это на самом деле не сделало того, чего я хочу. Я все еще хочу, чтобы изображение было там, где оно есть, мне просто нужно, чтобы тень была под навигационной панелью, а не сверху
Ответ №1:
Вы можете использовать фильтр: filter:drop-shadow(0px 2vh 5vh #000000);
на самом nav
себе вместо a box-shadow
.
drop-shadow()
повторяет форму контейнера, в то время box-shadow
как повторяет исходную форму контейнера (прямоугольник).
см.: https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow()
пример
html {
overflow-y: scroll;
}
body {
font-family: "Arial", Helvetica, sans-serif;
font-weight: bold;
font-size: 20px;
color: #DCDCDC;
background-color: #222035;
margin: 0px;
}
.centered {
position: absolute;
left: 50%;
transform: translate(-50%);
}
.logo {
position: relative;
top: 100%;
left: 50%;
transform: translate(-50%, -50%);
width: auto;
height: 100%;
}
.logo:before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: -1;
border-radius: 100%;
}
.topnav {
filter: drop-shadow(0px 3px 5px #fff);/* make it obvious for the demo */
width: 100%;
height: 15vh;
background-color: #222035;
}
header {
padding: 170px;
}
<nav class="topnav">
<img class="logo" src="https://i.ibb.co/1bkLMQt/Suit-Yourself-logo-2.png">
</nav>
Комментарии:
1. Это сработало идеально, спасибо!