我真的很想要我想要的东西,它是3列布局,其中只有中心内容通过普通滚动条滚动。
我的问题是外部图像/列具有背景附件:已修复,可以工作,但是到目前为止,我无法按自己的意愿放置背景图像。
使它起作用的唯一方法是将左一个放置在左侧,右一个放置在右侧(这与我要查找的相反)。这样可以使图像随着您加宽页面而尽可能宽地散开,我想保持它们的紧密度,并在降低页面宽度时使其外部边缘溢出。
我可以通过示例更好地展示我想要的效果。
1。)此页面固定了背景图像滚动,但是随着页面变宽,而不是紧紧抓住中心内容,它们移到外面。当它们溢出时,它们会在内部进行操作-我正在寻找这两种行为的反面。
https://codepen.io/xcr/pen/drNXPx
2。)除了固定的背景图像并随内容滚动之外,下面的内容非常适用
https://codepen.io/xcr/pen/Jzbepo
这些示例的唯一区别应该是CSS中的background-position和background-attachment属性。
第一个示例中的html&css(接近正常工作)是
html, body {
height: 100%;
margin: 0;
background-color: black;
font-family: Verdana;
}
.wrapper {
display: flex;
flex-direction: row;
justify-content: center;
background-color: #000;
height: 100%;
}
.leftTower {
background-attachment: fixed;
background-position: left top;
}
.rightTower {
background-attachment: fixed;
background-position: right top;
}
.side {
min-height: 775px;
flex-grow: 1;
background-repeat: no-repeat;
background-image: url("https://www.plaseebo.net/news/wp-content/uploads/2019/01/moonlight_gnaw_x_c-450x775.jpg");
}
.content {
max-width: 750px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.mainContent {
background-color: #00ff00;
flex: 1;
}
.img-fluid {
max-width: 100%;
height: auto;
}
.text-center {
text-align: center;
}
@media only screen and (max-width: 750px) {
.side {
display: none;
}
}
<div class="wrapper">
<a href="http://www.example.com" target="_blank" class="side leftTower">
</a>
<div class="content">
<header class="text-center">
<img src="https://i.pinimg.com/originals/57/27/d7/5727d7e809ed08fb9cbda10b1f4a5e48.jpg" class="img-fluid" />
</header>
<main class="mainContent text-center">
This is the content area<br />
<div style="height: 220px;background-color: #0000aa;color: white;margin: 0 15px 0 15px;">
Taking up 220px of vertical space to show stick footer behavior
</div>
</main>
<footer class="text-center">
<img src="https://thecriticalcritics.com/review/wp-content/images/mid-noad.jpg" class="img-fluid" />
</footer>
</div>
<a href="http://www.example.com" target="_blank" class="side rightTower">
</a>
</div>
答案 0 :(得分:0)
使用04FS的建议,知道中心列和侧面图像的宽度,我可以使用纯CSS和background-position属性中的calc()函数解决此问题。
基本上,取中心列和侧面图像的宽度,将总和除以2,然后在calc()函数中使用50%,以获得所需的侧面图像定位和行为。
请注意leftTower和rightTower类选择器
下面是代码和有效的代码笔
CSS
html, body {
height: 100%;
margin: 0;
background-color: black;
font-family: Verdana;
}
.wrapper {
display: flex;
flex-direction: row;
justify-content: center;
background-color: #000;
height: 100%;
}
.leftTower {
background-attachment: fixed;
background-position: calc(50% - ((728px + 450px) / 2)) top;
}
.rightTower {
background-attachment: fixed;
background-position: calc(50% + ((728px + 450px) / 2)) top;
}
.side {
min-height: 775px;
flex-grow: 1;
background-repeat: no-repeat;
background-image: url("https://www.plaseebo.net/news/wp-content/uploads/2019/01/moonlight_gnaw_x_c-450x775.jpg");
}
.content {
max-width: 750px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.mainContent {
background-color: #00ff00;
flex: 1;
}
.img-fluid {
max-width: 100%;
height: auto;
}
.text-center {
text-align: center;
}
@media only screen and (max-width: 750px) {
.side {
display: none;
}
}
HTML
<div class="wrapper">
<a href="http://www.example.com" target="_blank" class="side leftTower">
</a>
<div class="content">
<header class="text-center">
<img src="https://i.pinimg.com/originals/57/27/d7/5727d7e809ed08fb9cbda10b1f4a5e48.jpg" class="img-fluid" />
</header>
<main class="mainContent text-center">
This is the content area<br />
<div style="height: 220px;background-color: #0000aa;color: white;margin: 0 15px 0 15px;">
Taking up 220px of vertical space to show stick footer behavior
</div>
</main>
<footer class="text-center">
<img src="https://thecriticalcritics.com/review/wp-content/images/mid-noad.jpg" class="img-fluid" />
</footer>
</div>
<a href="http://www.example.com" target="_blank" class="side rightTower">
</a>
</div>