株式会社プライムネットワークスタッフが、html5やCSS3、phpなどのWEB技術に関することやワードプレスなどのCMSについて学んだことなどを紹介して行きたいと思います。
CSSもCSS3となって思っているよりも多くのことがCSSだけでできるようになり、JavaScriptの出番を極力減らせるようになってきましたね。
まぁ、できることが多くなった半面、学習コストはがっつりとアップしたのではありますが・・・。
そんな中でも手っ取り早く学習でき、かつ使える関数って、「calc()」という関数ではないでしょうかね?
まぁ、ざっくりというと、「calc()」はプロパティに設定する値を数式で計算することができるもので、さらには記述も簡単、わかりやすい便利なものなんです。
例えば、以下のような使い方ができるんです。
.box {
width: calc(100% - 50px);
}
これは、親要素の幅100%から「50px」を引いたサイズが「width」ですよという表現で、今どきのレスポンシブ対応のサイトではありがたい使い方ですよね。
上記のように、「calc()」は数値計算を行ってくれる関数で、数式として使用できる演算子は、+ (足し算)、ー (引き算)、× (掛け算)、÷ (割り算) の4種類となっています。
気を付けておきたいのは、演算子の前後は必ず「スペース」が必要で、「スペース」を開けずに表記してしまうとエラーとなります。
計算できるからって、あまり便利になることはないんじゃないか?って思われた方もいるでしょうけど、これ、3つのボックスを横並べにしたいと思ったときに便利になるって思いませんか?
普通に横並びにしようとすると、おそらく以下のように表記していたとは思うのですが、
.box1,.box2 {
width: 33%;
}
.box3 {
width: 34%;
}
これを一気に、以下のように表現することができます。
.box1,.box2,.box3 {
width: calc(100% / 3);
}
ソースをシンプルにできるうえ、四則演算さえ知っていれば、パッと見るだけでどのような表示になるのかも理解しやすく、もっというと、box1,2,3なんてわけなくてもいいですよね。
まぁ、とにもかくにもCSS3の関数は覚えれば、超絶便利なものなので、新しいプロパティなどが増えすぎて諦めた人も、今一度、学習する価値は十分にありますよ!
ツイートCSSフレームワークであるBULMAがいい。
このBULMAは文字通り「ブルマ」と呼ぶのですが、なにがいいってJavaScriptを必要としないうえに、最近の流行りである「Flexbox」を利用しているんです。
これだけでも十分すぎるのですが、このBULMA,シンプルかつ軽量でカスタマイズがしやすい!!!だけでなく・・・・用意されたCSSファイルを一つ、Webページに組み込むだけで手軽に使えるようになるんです!!!!
しかも、MITライセンスとなっていて、個人でも商用でもクライアントのプロジェクトでも無料!!!
まさに感謝感激、雨あられ!
これまでは最も軽量でシンプル、高速なフレームワークの1つであったSkeletonを気に入って使っていたのですが、今後はBULMAに乗り換えそうです。
使い方は、「NPMコマンドでインストール」「公式サイトからダウンロード」「CDNを利用」の三つが用意されているようで、「NPMコマンド」については、私の技量不足でなにがなんだかわからないのですが、1番楽なのが、やっぱり「CDN」。
なんて言ったって、HTMLファイルに以下の1行を追加するだけで利用できるんですから!!
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.1.2/css/bulma.css" />
まさに神!!!
こんなふうにお手軽に、今風の技術が使えるなんて、なんて素敵な世の中なのでしょう!
ツイートフラットデザインが急速に流行っていますね。
一体どんなものかというと、下の画像を比較してもらうとわかるのですが、まずiOS6のようにアイコン自体がとてもリアルで現実のものを模写したようなデザイン、光沢、影などがいままで流行っていたのが「スキューモーフィックデザイン」。
そして、下のWINDOWS8のスタート画面が「フラットデザイン」で、非常に平坦な見た目で、欲言えばシンプルなデザインとなります。
まぁ、ざっくりというと、凄く見た目が綺麗でリアル、こんなの自分では作れない、または作るにしても時間かかりそう・・・なものが「スキューモーフィックデザイン」で、あっさり自分でも作れそうだとおもわせてくれるものが「フラットデザイン」です。
まぁ、簡単に作れそうなんていうと語弊がありますが、この「フラットデザイン」はシンプルなので、かえってデザイン力が問われます。
僕もいままで数々のフラットデザインを見てきた中で、優れたものは数知れずです。
特に日本語を使用したフラットデザインにおいては、格好良いものを見たことがありません
ちなみに、僕個人の感想なのですが、「フラットデザイン」はUIで考えると、ちょっとわかりづらいものがあります。
現実を模したもの、「スキューモーフィックデザイン」であれば、なんとなく直感で操作がわかるのですが、フラットデザインは、とてもシンプルなので、ボタンなのか、罫線なのかがわからない時があります。
とはいえ「フラットデザイン」は、無駄に画像を使わずにCSSのみである程度のデザインを施すことができるので、実は制作だけを取ってみると、かなり好きな部類に入ります。
(CSSである程度できるので、とにかくやり直しが簡単!いちいちイラストレータやフォトショップを開く必要がない!)
そんなわけで、今回は、「フラットデザイン」における「ロングシャドウ」を実践してみます。
まずは「ロングシャドウ」がどういったものかというと、以下のような見栄えが「ロングシャドウ」となります。
ロングシャドウです
ソースは、以下のようにシンプルになっており、CSSでlongshadowというクラスを入れています。
html <p class="longshadow">ロングシャドウです</p>
css .longshadow {
background-color: rgb(22, 160, 133);
text-shadow:
1px 1px rgb(20, 100, 80),
2px 2px rgb(20, 100, 80),
3px 3px rgb(20, 100, 80),
4px 4px rgb(20, 100, 80),
5px 5px rgb(20, 100, 80),
6px 6px rgb(20, 100, 80),
7px 7px rgb(20, 100, 80),
8px 8px rgb(20, 100, 80),
9px 9px rgb(20, 100, 80),
10px 10px rgb(20, 100, 80),
11px 11px rgb(20, 100, 80),
12px 12px rgb(20, 100, 80),
13px 13px rgb(20, 100, 80),
14px 14px rgb(20, 100, 80),
15px 15px rgb(20, 100, 80),
16px 16px rgb(20, 100, 80),
17px 17px rgb(20, 100, 80),
18px 18px rgb(20, 100, 80),
19px 19px rgb(20, 100, 80),
20px 20px rgb(20, 100, 80),
21px 21px rgb(20, 100, 80),
22px 22px rgb(20, 100, 80),
23px 23px rgb(20, 100, 80),
24px 24px rgb(20, 100, 80),
25px 25px rgb(20, 100, 80),
26px 26px rgb(20, 100, 80),
27px 27px rgb(20, 100, 80),
28px 28px rgb(20, 100, 80),
29px 29px rgb(20, 100, 80),
30px 30px rgb(20, 100, 80),
31px 31px rgb(20, 100, 80),
32px 32px rgb(20, 100, 80),
33px 33px rgb(20, 100, 80),
34px 34px rgb(20, 100, 80),
35px 35px rgb(20, 100, 80),
36px 36px rgb(20, 100, 80),
37px 37px rgb(20, 100, 80),
38px 38px rgb(20, 100, 80),
39px 39px rgb(20, 100, 80),
40px 40px rgb(20, 100, 80),
41px 41px rgb(20, 100, 80),
42px 42px rgb(20, 100, 80),
43px 43px rgb(20, 100, 80),
44px 44px rgb(20, 100, 80),
45px 45px rgb(20, 100, 80),
46px 46px rgb(20, 100, 80),
47px 47px rgb(20, 100, 80),
48px 48px rgb(20, 100, 80),
49px 49px rgb(20, 100, 80),
50px 50px rgb(20, 100, 80); box-shadow:
1px 1px rgb(212, 212, 212),
2px 2px rgb(212, 212, 212),
3px 3px rgb(212, 212, 212),
4px 4px rgb(212, 212, 212),
5px 5px rgb(212, 212, 212),
6px 6px rgb(212, 212, 212),
7px 7px rgb(212, 212, 212),
8px 8px rgb(212, 212, 212),
9px 9px rgb(212, 212, 212),
10px 10px rgb(212, 212, 212),
11px 11px rgb(212, 212, 212),
12px 12px rgb(212, 212, 212),
13px 13px rgb(212, 212, 212),
14px 14px rgb(212, 212, 212),
15px 15px rgb(212, 212, 212),
16px 16px rgb(212, 212, 212),
17px 17px rgb(212, 212, 212),
18px 18px rgb(212, 212, 212),
19px 19px rgb(212, 212, 212),
20px 20px rgb(212, 212, 212),
21px 21px rgb(213, 213, 213),
22px 22px rgb(214, 214, 214),
23px 23px rgb(215, 215, 215),
24px 24px rgb(216, 216, 216),
25px 25px rgb(216, 216, 216),
26px 26px rgb(217, 217, 217),
27px 27px rgb(218, 218, 218),
28px 28px rgb(219, 219, 219),
29px 29px rgb(220, 220, 220),
30px 30px rgb(221, 221, 221),
31px 31px rgb(221, 221, 221),
32px 32px rgb(222, 222, 222),
33px 33px rgb(223, 223, 223),
34px 34px rgb(224, 224, 224),
35px 35px rgb(225, 225, 225),
36px 36px rgb(226, 226, 226),
37px 37px rgb(226, 226, 226),
38px 38px rgb(227,227, 227),
39px 39px rgb(228, 228, 228),
40px 40px rgb(229, 229, 229),
41px 41px rgb(230, 230, 230),
42px 42px rgb(231, 231, 231),
43px 43px rgb(231, 231, 231),
44px 44px rgb(232, 232, 232),
45px 45px rgb(233, 233, 233),
46px 46px rgb(234, 234, 234),
47px 47px rgb(235, 235, 235),
48px 48px rgb(235, 235, 235),
49px 49px rgb(236, 236, 236),
50px 50px rgb(237, 237, 237),
51px 51px rgb(238, 238, 238),
52px 52px rgb(239, 239, 239),
53px 53px rgb(240, 240, 240),
54px 54px rgb(240, 240, 240),
55px 55px rgb(241, 241, 241),
56px 56px rgb(242, 242, 242),
57px 57px rgb(243, 243, 243),
58px 58px rgb(244, 244, 244),
59px 59px rgb(245, 245, 245),
60px 60px rgb(245, 245, 245),
61px 61px rgb(246, 246, 246),
62px 62px rgb(247, 247, 247),
63px 63px rgb(248, 248, 248),
64px 64px rgb(249, 249, 249),
65px 65px rgb(250, 250, 250),
66px 66px rgb(250, 250, 250),
67px 67px rgb(251, 251, 251),
68px 68px rgb(252, 252, 252),
69px 69px rgb(253, 253, 253),
70px 70px rgb(254, 254, 254),
71px 71px rgb(255, 255, 255);
height: 80px;
width: 220px;
font-size: 20px;
color:#fff;
font-weight:bold;
line-height: 80px;
text-align:center;
overflow:hidden;
margin:0 auto;
}
どうですか!簡単といいつつも、結構時間がかかりました!!!
そしてやってみて思ったのが、修正は簡単じゃない!!!!!!!
いや、これは画像でやるべきだ!!!地獄です、地獄。
これ作るのに3時間かかりました。
こんなに時間がかかってしまったため、この記事の主題を忘れてしまいました・・・・。
なので、近いうちに続きを書きます。