【忘備録】iOSにも対応した背景固定の方法【CSS擬似要素で実装】
CSSの擬似要素を使って背景を固定する方法
この記事ではCSSの擬似要素を使って、背景を固定する方法を記載しています。
参考になった人はコピペして使って下さい。
background-attachment: fixed;
background-size: cover;
上記のコードでも背景を固定することはできますが、iOSでは動きません。
別の方法として擬似要素に背景を持たせて、それを固定するという方法があります。
<div class="parent">
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
<div class="child">
<h2>Title</h2>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
<p>text text text text text text text text text text text text </p>
</div>
</div>
.parent:before{
content:"";
display:block;
position:fixed;
top:0;
left:0;
z-index:-1;
width:100%;
height:100vh;
background:url(https://images.unsplash.com/photo-1526025202335-cf944dc3f799?ixlib=rb-1.2.1&ixid;=eyJhcHBfaWQiOjEyMDd9&auto;=format&fit;=crop&w;=800&q;=60) center no-repeat;
background-size:cover;
}
.child{
margin: 50px auto;
text-align: center;
font-size: 1.6rem;
color: white;
}
.child:nth-child(even){
color: salmon;
}
これで背景が固定されました。
.parent:before{
content:””;
display:block;
position:fixed;
top:0;
left:0;
z-index:-1;
width:100%;
height:100vh;
background:url() center no-repeat;
background-size:cover;
}
ここで重要なコードは上記の部分ですね。
擬似要素に背景を指定して固定しています。
個人的な忘備録ですが、参考になった人はコピペして使ってください。