今回は【flexboxのjustify−content:center4選】CSS画像アニメーションを画面中央に配置をご紹介。シンプルかつ洗練されたデザイン。それぞれ違うエフェクトと滑らかな動き。Web制作で使える。ポートフォリオにも最適。コピペOK。HTML, CSSだけ
動きを見ていただければ使いたくなること間違いなしです!
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。
ふたご
1. 半分の背景が左右から現れるCSS画像アニメーションをflexboxのjustify−content:centerで中央配置
動きは下の画像のような感じになります
![]()
コードを見る
<div class="container">
<!-- 画像と背景・文字を配置 -->
<div class="bg-pic">
<div class="pic" style="background-image : url('https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80');">
<div class="screen one"></div>
<!-- 背景1段目 -->
<div class="screen two"></div>
<!-- 背景2段目 -->
<div class="fonts">
<h1>Malta's Building</h1>
<p>this is a photo in malta <br><br><br>Have A Good Time</p>
</div>
</div>
</div>
</div>
/* 要素全体のサイズ・配置を指定 */
.container {
width : 100%;
margin-top: 30px;
display: flex;
align-items:center;
justify-content:center;
}
.container:after{
clear : both;
display : table;
content : '';
}
.bg-pic {
width : 440px;
height : 300px;
background-color: white;
cursor : pointer;
}
.pic {
/* 画像が美しく見えるようにエフェクト(明るさ・コントラスト・彩度)を調整 */
filter: saturate(110%);
width : 440px;
height : 300px;
/* 相対的位置を指定 */
position: relative;
/* 枠に収まらない要素を隠す指定 */
overflow: hidden;
background-color: #102B46;
background-size: cover;
/* .pic全体に画像が表示されるように指定 */
}
/* ↓hover後に浮き出てくる文字と背景の設定 */
.fonts {
text-align: center;
background-color : #e43;
width : 440px;
height : 300px;
padding : 10px;
top : 0;
left: 0;
color : #fff;
/* hover前のの文字の不透明度を指定 */
opacity : 0;
transition : opacity .8s;
/* hover後カーソルを外した際に文字と背景が消える時間を指定 */
}
.fonts h1 {
font-size: 28px;
margin-top: 50px;
margin-bottom : 40px;
}
.fonts p {
font-size : 14px;
font-style: italic;
text-align: center;
line-height : 20px;
}
.pic:hover .fonts {
/* hover後の文字の不透明度を指定 */
opacity : 1;
transition : opacity .5s .3s;
/* hover後に文字と背景が現れる時間を指定 */
}
.pic div {
position : absolute;
/* .pic div(hover後に現れる文字と背景)の位置を指定 */
}
.screen {
/* スクリーン全体のスタイル設定 */
width : inherit;
height : 150px;
/* 背景の高さを指定 */
background-color: #e43;
}
.screen.one {
/* スクリーン1のスタイル設定 */
top : 0;
left: 100%;
transition : all .4s .2s;
/* 背景が消える速度調整 */
}
.screen.two {
/* スクリーン2のスタイル設定 */
top : 150px;
right: 100%;
transition : all .4s .2s;
/* 背景が消える速度調整 */
}
.pic:hover .one {
/* hover後のスクリーン1のスタイル設定 */
left : 0;
/* 背景が現れる始める位置指定 */
transition : all .4s;
/* 背景が現れる速度調整 */
}
.pic:hover .two {
/* hover後のスクリーン2のスタイル設定 */
right : 0;
/* 背景が現れる始める位置指定 */
transition : all .4s;
/* 背景が現れる速度調整 */
}
ここがポイント!
- flexboxのjustify−content:centerで画像を中央配置
- .picにoverflow: hiddenを設定することで収まらない要素を隠す
- screenに背景のアニメーションスタート位置を指定
- 画像の配置を固定するためpicクラスにposition:relative, picクラスのdivタグにposition:absoluteを指定
- 背景が左右から半分ずつ現れるように表示させるため2つのscreenクラスで異なる位置・速度を指定
- 各transitionプロパティをhover前・hover後に指定することで滑らかなアニメーションを実現
2. 背景が両斜めから現れるCSS画像アニメーションをflexboxのjustify−content:centerで中央配置
動きは下の画像のような感じになります
![]()
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image2.png?resize=600%2C152&ssl=1)
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image2.png?resize=600%2C152&ssl=1)
コードを見る
<div class="container">
<!-- 画像と背景・文字を配置 -->
<div class="bg-pic">
<div class="pic" style="background-image : url('https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80');">
<div class="screen one"></div>
<!-- 背景1段目 -->
<div class="screen two"></div>
<!-- 背景2段目 -->
<div class="fonts">
<h1>Malta's Building</h1>
<p>this is a photo in malta <br><br><br>Have A Good Time</p>
</div>
</div>
</div>
</div>
/* 要素全体のサイズ・配置を指定 */
.container {
width : 100%;
margin-top: 30px;
display: flex;
align-items:center;
justify-content:center;
}
.container:after{
clear : both;
display : table;
content : '';
}
.bg-pic {
width : 440px;
height : 300px;
background-color: white;
cursor : pointer;
}
.pic {
/* 画像が美しく見えるようにエフェクト(明るさ・コントラスト・彩度)を調整 */
filter: saturate(110%);
width : 440px;
height : 300px;
/* 相対的位置を指定 */
position: relative;
/* 枠に収まらない要素を隠す指定 */
overflow: hidden;
background-color: #102B46;
background-size: cover;
/* .pic全体に画像が表示されるように指定 */
}
/* ↓hover後に浮き出てくる文字と背景の設定 */
.fonts {
text-align: center;
background-color : #e43;
width : 440px;
height : 300px;
padding : 10px;
top : 0;
left: 0;
color : #fff;
/* hover前のの文字の不透明度を指定 */
opacity : 0;
transition : opacity .8s;
/* hover後カーソルを外した際に文字と背景が消える時間を指定 */
}
.fonts h1 {
font-size: 28px;
margin-top: 50px;
margin-bottom : 40px;
}
.fonts p {
font-size : 14px;
font-style: italic;
text-align: center;
line-height : 20px;
}
.pic:hover .fonts {
/* hover後の文字の不透明度を指定 */
opacity : 1;
transition : opacity .2s .3s;
/* hover後に文字と背景が現れる時間を指定 */
}
.pic div {
position : absolute;
/* .pic div(hover後に現れる文字と背景)の位置を指定 */
}
.screen {
/* スクリーン全体のスタイル設定 */
width : inherit;
height: inherit;
/* 背景の高さを指定 */
background-color:#e43;
transition : all .3s;
}
.screen.one {
transition : all .3s .3s;
/* 背景が消える速度調整 */
left : 100%;
bottom : 100%;
/* 背景のアニメーションスタート位置指定 */
}
.screen.two {
transition : all .3s .3s;
/* 背景が消える速度調整 */
right : 100%;
top : 100%;
/* 背景のアニメーションスタート位置指定 */
}
.pic:hover .one {
left : 0;
bottom : 0;
/* hover後の背景の位置指定 */
transition : all .6s;
/* 背景が現れる速度調整 */
}
.pic:hover .two {
right : 0;
top : 0;
/* hover後の背景の位置指定 */
transition : all .6s;
/* 背景が現れる速度調整 */
}
ここがポイント!
- flexboxのjustify−content:centerで画像を中央配置
- .picにoverflow: hiddenを設定することで収まらない要素を隠す
- screenに背景のアニメーションスタート位置を指定
- 画像の配置を固定するためpicクラスにposition:relative, picクラスのdivタグにposition:absoluteを指定
- 背景が両斜めから現れるように表示させるため2つのscreenクラスで位置・速度を指定
- 各transitionプロパティをhover前・hover後に指定することで滑らかなアニメーションを実現
3. 背景が上下から現れる自動ドアのようなCSS画像アニメーションをflexboxのjustify−content:centerで中央配置
動きは下の画像のような感じになります
![]()
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image3.png?resize=600%2C155&ssl=1)
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image3.png?resize=600%2C155&ssl=1)
コードを見る
<div class="container">
<!-- 画像と背景・文字を配置 -->
<div class="bg-pic">
<div class="pic" style="background-image : url('https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80');">
<div class="screen one"></div>
<!-- 背景1段目 -->
<div class="screen two"></div>
<!-- 背景2段目 -->
<div class="fonts">
<h1>Malta's Building</h1>
<p>this is a photo in malta <br><br><br>Have A Good Time</p>
</div>
</div>
</div>
</div>
/* 要素全体のサイズ・配置を指定 */
.container {
width : 100%;
margin-top: 30px;
display: flex;
align-items:center;
justify-content:center;
}
.container:after{
clear : both;
display : table;
content : '';
}
.bg-pic {
width : 440px;
height : 300px;
background-color: white;
cursor : pointer;
}
.pic {
/* 画像が美しく見えるようにエフェクト(明るさ・コントラスト・彩度)を調整 */
filter: saturate(110%);
width : 440px;
height : 300px;
/* 相対的位置を指定 */
position: relative;
/* 枠に収まらない要素を隠す指定 */
overflow: hidden;
background-color: #102B46;
background-size: cover;
/* .pic全体に画像が表示されるように指定 */
}
/* ↓hover後に浮き出てくる文字と背景の設定 */
.fonts {
text-align: center;
background-color : #e43;
width : 440px;
height : 300px;
padding : 10px;
top : 0;
left: 0;
color : #fff;
/* hover前のの文字の不透明度を指定 */
opacity : 0;
transition : opacity .8s;
/* hover後カーソルを外した際に文字と背景が消える時間を指定 */
}
.fonts h1 {
font-size: 28px;
margin-top: 50px;
margin-bottom : 40px;
}
.fonts p {
font-size : 14px;
font-style: italic;
text-align: center;
line-height : 20px;
}
.pic:hover .fonts {
/* hover後の文字の不透明度を指定 */
opacity : 1;
transition : opacity .2s .3s;
/* hover後に文字と背景が現れる時間を指定 */
}
.pic div {
position : absolute;
/* .pic div(hover後に現れる文字と背景)の位置を指定 */
}
.screen {
/* スクリーン全体のスタイル設定 */
width : inherit;
height : 150px;
/* 背景の高さを指定 */
background-color: #e43;
transition : all .3s;
}
.screen.one {
transition : all .3s .1s;
/* 背景が消える速度調整 */
top : -150px;
/* 背景のアニメーションスタート位置指定 */
}
.screen.two {
transition : all .3s .1s;
/* 背景が消える速度調整 */
bottom : -150px;
/* 背景のアニメーションスタート位置指定 */
}
.pic:hover .one {
top : 0px;
/* hover後の背景の位置指定 */
transition : all .3s;
/* 背景が現れる速度調整 */
}
.pic:hover .two {
bottom : 0px;
/* hover後の背景の位置指定 */
transition : all .3s;
/* 背景が現れる速度調整 */
}
ここがポイント!
- flexboxのjustify−content:centerで画像を中央配置
- .picにoverflow: hiddenを設定することで収まらない要素を隠す
- screenに背景のアニメーションスタート位置を指定
- 画像の配置を固定するためpicクラスにposition:relative, picクラスのdivタグにposition:absoluteを指定
- 上下から背景が現れて自動ドアのように表示させるため2つのscreenクラスで異なる位置・速度を指定
- 各transitionプロパティをhover前・hover後に指定することで滑らかなアニメーションを実現
4. 半分の背景が上下から現れるCSS画像アニメーションをflexboxのjustify−content:centerで中央配置
動きは下の画像のような感じになります
![]()
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image4.png?resize=600%2C154&ssl=1)
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/flexbox-justify−content-animation-image4.png?resize=600%2C154&ssl=1)
コードを見る
<div class="container">
<!-- 画像と背景・文字を配置 -->
<div class="bg-pic">
<div class="pic" style="background-image : url('https://images.unsplash.com/photo-1519221739757-4df89b4d0efe?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80');">
<div class="screen one"></div>
<!-- 背景1段目 -->
<div class="screen two"></div>
<!-- 背景2段目 -->
<div class="fonts">
<h1>Malta's Building</h1>
<p>this is a photo in malta <br><br><br>Have A Good Time</p>
</div>
</div>
</div>
</div>
/* 要素全体のサイズ・配置を指定 */
.container {
width : 100%;
margin-top: 30px;
display: flex;
align-items:center;
justify-content:center;
}
.container:after{
clear : both;
display : table;
content : '';
}
.bg-pic {
width : 440px;
height : 300px;
background-color: white;
cursor : pointer;
}
.pic {
/* 画像が美しく見えるようにエフェクト(明るさ・コントラスト・彩度)を調整 */
filter: saturate(110%);
width : 440px;
height : 300px;
/* 相対的位置を指定 */
position: relative;
/* 枠に収まらない要素を隠す指定 */
overflow: hidden;
background-color: #102B46;
background-size: cover;
/* .pic全体に画像が表示されるように指定 */
}
/* ↓hover後に浮き出てくる文字と背景の設定 */
.fonts {
text-align: center;
background-color : #e43;
width : 440px;
height : 300px;
padding : 10px;
top : 0;
left: 0;
color : #fff;
/* hover前のの文字の不透明度を指定 */
opacity : 0;
transition : opacity .8s;
/* hover後カーソルを外した際に文字と背景が消える時間を指定 */
}
.fonts h1 {
font-size: 28px;
margin-top: 50px;
margin-bottom : 40px;
}
.fonts p {
font-size : 14px;
font-style: italic;
text-align: center;
line-height : 20px;
}
.pic:hover .fonts {
/* hover後の文字の不透明度を指定 */
opacity : 1;
transition : opacity .2s .3s;
/* hover後に文字と背景が現れる時間を指定 */
}
.pic div {
position : absolute;
/* .pic div(hover後に現れる文字と背景)の位置を指定 */
}
.screen {
/* スクリーン全体のスタイル設定 */
width : inherit;
height : 300px;
/* 背景の高さを指定 */
background-color: #e43;
transition : all .3s;
}
.screen.one {
transition : all .3s .2s;
/* 背景が消える速度調整 */
left: 50%;
top : -300px;
/* 背景のアニメーションスタート位置指定 */
}
.screen.two {
transition : all .3s .2s;
/* 背景が消える速度調整 */
right: 50%;
bottom : -300px;
/* 背景のアニメーションスタート位置指定 */
}
.pic:hover .one {
top : 0px;
/* hover後の背景の位置指定 */
transition : all .4s;
/* 背景が現れる速度調整 */
}
.pic:hover .two {
bottom : 0px;
/* hover後の背景の位置指定 */
transition : all .4s;
/* 背景が現れる速度調整 */
}
ここがポイント!
- flexboxのjustify−content:centerで画像を中央配置
- .picにoverflow: hiddenを設定することで収まらない要素を隠す
- screenに背景のアニメーションスタート位置を指定
- 画像の配置を固定するためpicクラスにposition:relative, picクラスのdivタグにposition:absoluteを指定
- 上下から背景を半分ずつ表示させるため2つのscreenクラスで位置・速度を指定
- 各transitionプロパティをhover前・hover後に指定することで滑らかなアニメーションを実現
参考
そもそもWebデザインの基礎がわからない。。
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/iOS-の画像-3.jpg?w=110&ssl=1)
ふたご
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
![](https://i0.wp.com/www.twinzlabo.com/wp-content/uploads/2020/07/iOS-の画像-3.jpg?w=110&ssl=1)
ふたご
完全無料で一人前のエンジニアになれるプログラミングスクールあります
- プログラミング学習&サポートが無料!
- 誰もが知っている超優良企業への就職サポート付き!
- 学習言語:Java、PHP、HTML、CSSなど
話だけ聞いてみる