
問題5:モーダルを作成しよう
モーダルを作成してみましょう。
ここで実装するモーダルでは、
ボタンを押下したら表示、非表示などの機能は実装しません。
画面の真ん中にコンテンツを置き、それ以外はグレーエリアで覆いましょう。
またimgにつきましては、https://ninjacode.work/assets/img/kv.pngをお使いください。
見本を参考に作成してください。
ここで実装するモーダルでは、
ボタンを押下したら表示、非表示などの機能は実装しません。
画面の真ん中にコンテンツを置き、それ以外はグレーエリアで覆いましょう。
またimgにつきましては、https://ninjacode.work/assets/img/kv.pngをお使いください。
見本を参考に作成してください。
期待する画面

解答ソースコード
<section class="modal">
<div class="modal__overlay"></div>
<div class="modal__content">
<div class="modal__content__title">
<h2>モーダルのタイトル</h2>
</div>
<div class="modal__content__img"></div>
<div class="modal__content__discription">
<p>モーダルで訴求したいテキストをここに入れます。モーダルで訴求したいテキストをここに入れます。モーダルで訴求したいテキストをここに入れます。モーダルで訴求したいテキストをここに入れます。モーダルで訴求したいテキストをここに入れます。
</p>
</div>
</div>
</section>
¥HTML¥
/* resetCSS */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: ';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* -----ここから下に記述してください----- */
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.modal__content {
position: absolute;
overflow: hidden;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
width: 70%;
height: 400px;
padding: 10px 30px;
background-color: #fff;
}
.modal__content__title {
padding: 16px;
text-align: center;
font-size: 20px;
font-weight: bold;
}
.modal__content__img {
background-color: #000;
text-align: center;
width: 100%;
height: 50%;
background-image: url(https://ninjacode.work/assets/img/kv.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
.modal__content__discription {
padding: 24px;
font-size: 18px;
}
.modal__overlay {
width: 100%;
height: 100%;
background-color: rgba(30,30,30,0.9);
}
¥CSS¥
補足
実際の現場でモーダルを実装する際は、プラグインを用いられることが多いですが、場合によってプラグインに頼らず実装しなければいけないケースもあるので覚えておくといいでしょう。
#忍者CODE無料問題集で活動を記録しよう
完了にする!
1.HTMLの宣言をしてみよう
モーダル実装時に大事なのは、最上の親に対してposition: fixed;を付与する事です。
こうすることで背景を固定させることができます。
次に、背景のグレーエリアはオーバーレイと呼びます。
このオーバーレイは縦横画面いっぱいに広げて黒に透過0.9などしてあげればOKです。
最後にコンテンツ部分に関しては、position: absolute;で真ん中に持ってきて普段のようにタイトル、画像、説明文をつければ出来上がりです。