見出し画像

css初学者は実際のWeb事例から学ぶ方が効率が良いと知った話【38Web-8】【制作ログ】

cssを初めて組むにあたり、重い本を家に置いて来たのでググりながら打ち始めたのですが、これがめちゃ効率悪かった。

基本は「本や実際の事例を真似して(写経)作るのが最も早い」ことを知りました。

こんにちは、38歳からWebエンジニアを目指しているフェニックスA子(@lipton_milk999)です。

前回はHTML5のマークアップまでをやりました。制作ログはこちら。

今回はいよいよcssの中身に入るのですが、参考にしていた本が手元になかったんですね。スタバで作業しようとして、重いからおいてきてしまったのです。

「ググればわかるでしょ」と思ったのですが、これがいけなかった。

「単発でググってそれを応用しながら進めるのは、初心者には効率が悪い」

何がいけなかったのかをまとめます。

ググった手法が最適とは限らない

気になることをGoogleに聞くと、検索結果として「よく見られているページ」を教えてくれます。たとえば私が作ったこのサンプルの右上のとこ見てください。

「ソーシャルアイコン(ul/li+アイコンフォント:Font awesome)」と「ボタン(div+テキスト)」が並んでます。

この「横並び」がうまくできず詰まっていたのです。画像の下にある、黒いバーのグローバルナビも同じく綺麗に並ばず、詰まっていました。

横並びの方法は、本には書いてあったのですが、今日は手元になかったのでググっていたわけです。

「css 横並び」でググる⇨たくさん手法が出てくる。
でもどれがいいのかわからない。

「横並びにする手法まとめ」などの記事も見つかり、それを参考に四苦八苦。

結果から言うとこれは結局「flexbox」というcssクラスで実装したのですが、ググって最も多く出てくるのは「floatで浮かせてからleftやrightで配置する」と言うやり方。

最初はこれでやろうとしたのですが、どうもうまくいかない。(原因は、コンテナとアイテムのcssセレクタが反映されているのかわからず、その確認に時間を要したため。コンテナに背景色をつけても出てこなかったり・・・)

時間を無駄にしてしまった理由

数時間を無駄にしてしまったわけですが、この失敗の理由は2つあると思います。

① そもそも「flexbox」というもっと良い手法があったことを知らなかった
② セレクタが効いているかの、効率の良い確かめ方を知らなかった

css3から「flexbox」ができていた

①は、ツイッターで「それならflexbox使うと良い」と教えてもらったことです。floatよりいい方法があった。私はcss3以前の人間なので、知らなかったんですね・・・。

flexboxだと、floatのようにセレクタの親子関係(relative/absolute)に悩まされることなく、簡単に要素が並べられます。オプション一つで動くし。

こんな良いものがあるのに、ググるとfloat手法がたくさん出てくるのは、汎用性の高さや事例の多さからなんでしょう。

実際のWeb事例の「写経」をやろう

この「そんな便利なものがあるなんて知らなかった」問題は、写経をすることでも解決します。すでにあるサイトを見て、書き方をパクるのです。まずは人のサイトをそのまま流用して作ってみることを「写経」というらしい。

ポートフォリオでも「写経」と書いて、キャプチャ画像を公開している人を見ましたよ。

既存サイトの解析には、次で説明するChromeのデベロッパーツールが使えると思います。

Google Chromeでcssセレクタを確認

「② セレクタが効いているかの、効率の良い確かめ方を知らなかった」

これは、デバッグツールを知っていたら解決したでしょう。(これもTwitterで教えてもらいました)

以下は、Google Chromeで「デベロッパーツール」を開いたところです。

右上のElementsにカーソルを合わせると、

①該当の要素が青くハイライトされる
②要素が所属するcssセレクタが、ツリー構造の下に表示される(… #site -header #top -bar div・・・と横並びに表示されている行)

これは人の作ったサイトの解析にも使えますね。

これを知ってれば、怪しい要素の背景色を変えてリロードしたりと、アホな時間使わずに済んだのに・・・

Web制作は、如何に効率的に作れるかの世界です。最初とはいえ無駄な時間を使ってしまった。

多分この他にもいろんな無駄要素があると思います。

Bootstrap使えば早いんじゃないの?

そもそもcssをパーツ化した技法である「Bootstrap4」を使えば、こんなチマチマやる必要もないと思います。

特にナビゲーションメニューや、トップ画像の上にレイヤーで半透明の黒をかけたり、文字を載せたりするのも簡単にできます。(今はcssのz-indexだの、position:relative/absoluteだので実装してる)

それは分かっているのですが、私みたいな人がいきなりBootstrap4を使って「書いてある通りにやったらできたー!」で終わってしまったら、なんかよくない気がするんですよ。

「floatの使いにくさやflexboxとの違いもわからないけど、Bootstrap4の通りにやったら簡単にトグルメニューができました。はい終わり」

この状態のまま、お金をもらう仕事に手を出すのは危険じゃないかと・・・

「やっぱBootstrapやめましょう」とか「そこ、Bootstrap使う必要あるの?」という状況になった時、「Bootstrapしかやったことありません」となるのが怖いんですよね。

次のバージョンでは、サクッとBootstrapでかっこいいページを作りたい。

とりあえず、HTML5+css3のみのページを作ったらやります。

最後に、HTML5+css3で作った部分を貼っておきます。

mobile用(640px以下)

PC用

PC用はこれから2カラムにするところ。これもflexboxに突っ込もうかなと思っております。(ちょっとやった)

今回はレスポンシブデザイン(モバイルファースト)の手法で製作中。

まずモバイルで綺麗にした後に、PC用に別の表示方法を入れ込む手法でやってます。

質問&回答コーナー

あ、最後に、ツイッターで「そのナビゲーションのフォントなんですか?」と言われたので回答します。

まず、「Font-familyメーカー」でWindows、Mac、iOS別に持っているフォントを1つずつ選んでます。

このサイトを使うと、各OS別に確実に表示されるフォントを選べるので、漏れがなくて良いですよ。

今回使った指定はこれ。

font-family: 'Segoe Print','Apple Chancery','Bradley Hand',sans-serif;

これはMacで表示したもののキャプチャなので、「Bradley Hand」ですね。


今回はここまで。

【この勉強ログは、マガジンにしています。フォローしてね。】


F1クリエイターとして、そしてWebデザイナーの駆け出しとして、自らの手でサイトを立ち上げています。 ご支援を糧に素晴らしいものを作りたい。 どうぞ、よろしくお願いします。