如何将元素的高度扩展到 100vh 以上以包含整个可滚动区域?



当我的网站加载时,它有一个滚动条,其中包含一些低于 100vh 限制的内容,可以像往常一样通过滚动来访问。我有一个元素(mdl 抽屉菜单(只能达到 100% 或 100vh。当我打开此菜单时,我希望它一直延伸到页面的末尾,包括滚动区域,以便当我向下滚动时,菜单仍然存在于侧面。我该怎么做呢?似乎整个车身元件也固定在 100vw 100vh。

以下是索引.html:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
<link rel="stylesheet" href="styles.css" />
<script defer src="https://code.getmdl.io/1.3.0/material.min.js">
</script>

<div class="demo-layout-transparent mdl-layout mdl-js-layout">
<header class="mdl-layout__header mdl-layout__header--transparent">
<div class="mdl-layout__header-row">
<span class="mdl-layout-title">foo</span>
</header>
<div class="mdl-layout__drawer">
<span class="mdl-layout-title" style="font-size:20px">Navigation</span>
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="#card1">foo</a>
<a class="mdl-navigation__link" href="#card2">foo</a>
<a class="mdl-navigation__link" href="#card3">foo</a>
</nav>
</div>
<main class="mdl-layout__content">
</main>
</div>
<div class='cards'>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card1">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card2">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card3">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
</div>

<script>
function close() {
var d = document.querySelector(".mdl-layout");
d.MaterialLayout.toggleDrawer();
console.log('a')
}
document.querySelector(".mdl-navigation").addEventListener("click", close);
</script>

和样式.css:

html {
/*background: url('https://i.redd.it/8qxg1uomq2f31.jpg') center center fixed;*/
background: url('https://i.redd.it/xcork1aobaa31.jpg') center center fixed;
background-size: 100vw;
}
.demo-card-wide {
margin-top: 50px;
margin-bottom: 50px;
}
.demo-card-wide.mdl-card {
width: 30vw;
}
.demo-card-wide>.mdl-card__title {
color: #fff;
height: 150px;
/*background: url('https://i.redd.it/xcork1aobaa31.jpg') no-repeat center center fixed;*/
background: url('https://i.redd.it/7zebjsi4m8a31.jpg') fixed;
background-size: 100vw;
}
.demo-card-wide>.mdl-card__menu {
color: #fff;
}
.demo-layout-transparent {}
.demo-layout-transparent .mdl-layout__header,
.demo-layout-transparent .mdl-layout__drawer-button {
/* This background is dark, so we set text to white. Use 87% black instead if
your background is light. */
color: white;
}
.cards {
position: absolute;
top: 75px;
left: 35vw;
}
#fcard {
position: relative;
top: 50px;
}
.material-icons {
font-size: 50px;
}
.mdl-layout-title {
font-size: 60px;
}
.mdl-layout__obfuscator.is-visible {
background-color: rgba(0, 0, 0, 0)
}
.mdl-layout__drawer {
transition-duration: .1s;
}
.mdl-card__title-text {
font-size: 40px;
text-shadow: 2px 2px #000000;
}

听起来您希望将position: fixed添加到.mdl-layout__drawer.is-visible

html {
/*background: url('https://i.redd.it/8qxg1uomq2f31.jpg') center center fixed;*/
background: url('https://i.redd.it/xcork1aobaa31.jpg') center center fixed;
background-size: 100vw;
}
.demo-card-wide {
margin-top: 50px;
margin-bottom: 50px;
}
.demo-card-wide.mdl-card {
width: 30vw;
}
.demo-card-wide>.mdl-card__title {
color: #fff;
height: 150px;
/*background: url('https://i.redd.it/xcork1aobaa31.jpg') no-repeat center center fixed;*/
background: url('https://i.redd.it/7zebjsi4m8a31.jpg') fixed;
background-size: 100vw;
}
.demo-card-wide>.mdl-card__menu {
color: #fff;
}
.demo-layout-transparent {}
.demo-layout-transparent .mdl-layout__header,
.demo-layout-transparent .mdl-layout__drawer-button {
/* This background is dark, so we set text to white. Use 87% black instead if
your background is light. */
color: white;
}
.cards {
position: absolute;
top: 75px;
left: 35vw;
}
#fcard {
position: relative;
top: 50px;
}
.material-icons {
font-size: 50px;
}
.mdl-layout-title {
font-size: 60px;
}
.mdl-layout__obfuscator.is-visible {
background-color: rgba(0, 0, 0, 0)
}
.mdl-layout__drawer {
transition-duration: .1s;
}
.mdl-layout__drawer.is-visible {
position: fixed;
}
.mdl-card__title-text {
font-size: 40px;
text-shadow: 2px 2px #000000;
}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
<link rel="stylesheet" href="styles.css" />
<script defer src="https://code.getmdl.io/1.3.0/material.min.js">
</script>
<div class="demo-layout-transparent mdl-layout mdl-js-layout">
<header class="mdl-layout__header mdl-layout__header--transparent">
<div class="mdl-layout__header-row">
<span class="mdl-layout-title">foo</span>
</header>
<div class="mdl-layout__drawer">
<span class="mdl-layout-title" style="font-size:20px">Navigation</span>
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="#card1">foo</a>
<a class="mdl-navigation__link" href="#card2">foo</a>
<a class="mdl-navigation__link" href="#card3">foo</a>
</nav>
</div>
<main class="mdl-layout__content">
</main>
</div>
<div class='cards'>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card1">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card2">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
<div class="demo-card-wide mdl-card mdl-shadow--2dp" id="card3">
<div class="mdl-card__title">
<h2 class="mdl-card__title-text">foo</h2>
</div>
<div class="mdl-card__supporting-text">
foo
</div>
</div>
</div>
<script>
function close() {
var d = document.querySelector(".mdl-layout");
d.MaterialLayout.toggleDrawer();
console.log('a')
}
document.querySelector(".mdl-navigation").addEventListener("click", close);
</script>

请注意,您需要将其添加到.mdl-layout__drawer.is-visible,而不仅仅是直接.mdl-layout__drawer,因为材料设计针对具有更高特异性的相同元素(应用position: absolute(。

相关内容

最新更新