未経験のwebサイト制作の勉強

未経験からwebサイト制作の勉強をし、現在制作会社で働いております。

Ulkit(cssフレームワーク)の使い方【1:lightbox】

まずは公式サイトからファイルをDLしてリンクします。
getuikit.com

DLしたファイルの中で必要なのは、下記3つです。

<link rel="stylesheet" href="css/uikit.min.css" />
<script src="js/uikit.min.js"></script>
<script src="js/uikit-icons.min.js"></script>


Ulkitのメディアクエリは4つに設定されております。
変えたい場合はuikit.min.cssの数字を置換するしかないですね…
クラス名
uk-hidden@s  →640px以上のデバイス幅にのみ影響します。
uk-hidden@m  →960px以上のデバイス幅にのみ影響します。
uk-hidden@l  →1200px以上のデバイス幅にのみ影響します。
uk-hidden@xl  →1600px以上のデバイス幅にのみ影響します。


各使用方法はDocumentationのページで紹介されております。
https://getuikit.com/docs/introduction


今回は【1】として、

lightboxの使い方です。

https://getuikit.com/docs/lightbox

画像をクリックするとモーダルで画像が拡大で表示され、次の写真をスライドさせましょう。

公式サイトのマークアップです。

<div class="uk-child-width-1-3@m" uk-grid uk-lightbox="animation: slide">
<div>
<a class="uk-inline" href="images/photo.jpg" data-caption="Caption 1">
<img src="images/photo.jpg" alt=""></a>
</div>
<div>
<a class="uk-inline" href="images/dark.jpg" data-caption="Caption 2">
<img src="images/dark.jpg" alt=""></a>
</div>
<div>
<a class="uk-inline" href="images/light.jpg" data-caption="Caption 3">
<img src="images/light.jpg" alt="">
</a>
</div>
</div> <!-- .uk-child-width-1-3@m -->


これだけの記述で簡単にlightboxが完成です!!
※こちらのマークアップはグリッドレイアウトも加わっております。

class名の説明をします。

uk-child-width-1-3@m

グリッドレイアウトのクラス名です。
一行に3枚の画像を並べ、「@m」というのは960px以上のデバイス幅対象ということです。
なので、959以下になるとグリッドが解消され縦一列になります。
https://getuikit.com/docs/width
上記URLを参照して、自分の好きなサイズ・可変にしましょう!

uk-grid

クラス名ではありませんが、「uk-grid」を入れるとグリッドレイアウトになります。
uk-gridを入れないと「uk-child-width-1-3@m」などのクラス名を入れてもグリッドされません。

uk-lightbox="animation: slide"

lightboxにする記述です。
「="animation: slide"」の部分がアニメーションの種類になります。
上記ではslideを指定しておりますが、デフォルトがslideなのでslideでいいのであれば
「uk-lightboxだけで大丈夫です。

アニメーションの種類は3種類あります。
・slide(デフォルト)
・fade
・scale

uk-inline

aタグにあるclass名ですが、これは名の通りaタグをinline-blockに命令してるclass名です。

.uk-inline{
display: inline-block;
position: relative;
max-width: 100%;
vertical-align: middle;
}

このようなcssが設定されてますね。

data-caption="Caption 1"

モーダルしたときに画像の下に出てくるタイトルです。
説明文や名前を入れたいときは使用しましょう。
無くても問題ありません。