カテゴリー: Web制作・プログラミング

実際の制作現場で役に立つ、技術的な話がメイン。

  • MW WP Formの日付ピッカーが動かないときの覚書

    MW WP Formの日付ピッカーが動かないときの覚書

    MW WP Formの日付ピッカーが動かなくて時間を食ったので、また同じことにならないように覚書。

    エラーを見ると、

    $(...).datepicker is not a function

    と言われている。

    wp_headやwp_footerも忘れてないし、他にjsのエラーが出ているわけでもないのに何だろうと思って調べていたら、どうもdatepickerはjQuery本体の他にjQuery UIもないと動かないらしい。

    本来、wp_enqueue_script()を使ってwp_head()内でスクリプトたちを読み込んでいると、それに合わせてMW WP Formのプラグインもwp_head内にjQuery UIを読み込んでくれるんだと思うんだけど、僕はめんどくさくてテンプレートに直に書いてスクリプトを呼び出してるので、スクリプトを読み込む順番がおかしくなっていて、jQuery UIを読み込む前にdatepickerを実行しちゃっていたのが原因っぽい。

     

    これを回避するには、WP推奨通りちゃんとwp_enqueue_script()を使ってスクリプトを読み込むか、

    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>

    手抜きする場合はこれをjQuery本体呼び出しの後に書いてやれば動きます。

     

    以上、現場からでした!

  • 【jQuery】ゆっくり流れる無限ループスライダー(逆向きも)

    【jQuery】ゆっくり流れる無限ループスライダー(逆向きも)

    昔、下の記事でSlick.jsを使った無限ループスライダーの実装方法を紹介しましたが、

    【簡単】slick.jsで無限ループスライダー

    いろいろ問題があるうえ逆向き(左から右)ができないということで、今回はプラグインなしでjQuery+CSSで実装する方法を紹介します。

    こんな感じになります↓

    それでは実装してみましょう。




    html

    <div class="slider">
      <div class="slider__inner">
        <div class="slider__item"><img src="https://meshikui.com/wp-content/uploads/2020/07/iphone8IMGL8205_TP_V.jpg" alt="" width="300"></div>
        <div class="slider__item"><img src="https://meshikui.com/wp-content/uploads/2020/07/200713.jpg" alt="" width="300"></div>
        <div class="slider__item"><img src="https://meshikui.com/wp-content/uploads/2020/07/200701.jpg" alt="" width="300"></div>
        <div class="slider__item"><img src="https://meshikui.com/wp-content/uploads/2020/05/blackmondayIMGL0444_TP_V.jpg" alt="" width="300"></div>
        <div class="slider__item"><img src="https://meshikui.com/wp-content/uploads/2020/04/200402.jpg" alt="" width="300"></div>
      </div>
    </div>

     

    jQuery

    グループ一つではループできないので、jQueryで3つに分身させます

    <script>
      $(function(){
        $('.slider__inner').each(function(){
          var sliderWidth = $(this).width();
    
          $(this).clone(true).insertBefore(this);
          $(this).clone(true).insertAfter(this);
    
          $('.slider').css('width', sliderWidth*3); // 親要素の横幅を子要素の3倍にする
        });
      });
    </script>

     

    CSS

    CSS Animationを使って動かします。
    まずは、全てを横並びにしましょう。

    .slider {
      display: flex;
    }
    .slider__inner {
      display: flex;
    }

    続いてアニメーションの部分。

    右から左

    .slider__inner:first-child {
      animation: loop 90s linear infinite;
    }
    
    .slider__inner:nth-child(2) {
      animation: loop2 90s -60s linear infinite;
    }
    
    .slider__inner:last-child {
      animation: loop3 90s -30s linear infinite;
    }
    
    @keyframes loop {
      0% {
        transform: translateX(200%);
      }
      to {
        transform: translateX(-100%);
      }
    }
    
    @keyframes loop2 {
      0% {
        transform: translateX(100%);
      }
      to {
        transform: translateX(-200%);
      }
    }
    
    @keyframes loop3 {
      0% {
        transform: translateX(0%);
      }
      to {
        transform: translateX(-300%);
      }
    }

    2つめと3つめのグループのdulationを、speedの-1/3、-2/3にするのがポイント。

    左から右

    .slider__inner:first-child {
      animation: loop 90s linear infinite;
    }
    
    .slider__inner:nth-child(2) {
      animation: loop2 90s -60s linear infinite;
    }
    
    .slider__inner:last-child {
      animation: loop3 90s -30s linear infinite;
    }
    
    @keyframes loop {
      0% {
        transform: translateX(-100%);
      }
      to {
        transform: translateX(200%);
      }
    }
    
    @keyframes loop2 {
      0% {
        transform: translateX(-200%);
      }
      to {
        transform: translateX(100%);
      }
    }
    
    @keyframes loop3 {
      0% {
        transform: translateX(-300%);
      }
      to {
        transform: translateX(0%);
      }
    }

    地味に需要があるかもしれない!最初ちょっと崩れるかもなぁってときは、ローディング画面にするか透明にしとくか、適当に隠しておきましょう。
    現場からは以上です。

  • 地方のWeb制作者は都会の勉強会に一度は参加したほうが良い

    地方のWeb制作者は都会の勉強会に一度は参加したほうが良い

    地方でWeb制作をがんばっているみなさん、こんにちは。

    僕もフリーランスになる前は岡山という大都会と呼ばれている田舎にある小さなWeb制作会社で働いていました。今は京都に住んでいますが、仕事はほとんど岡山からもらってますし、京都はITでいえば都会とは言い難いレベルなので、地方と大して変わりません。




    さてさて、僕が岡山の制作会社に入って1年半くらいでしょうか、僕のコーディングスピードは社内では早いしいろんなことがわかるし、jQueryもphpもちょっと書けるし、地元の勉強会とか出ても技術的にはまぁまぁ比較的いろんなことができるっぽいし、もうほとんど神に近いレベルに達しているんじゃないかという錯覚に陥ってたんですね。

    ところがある日、真の都会大阪で開かれるちょっと大きめの勉強会に参加する機会があったので、会社の経費で行ってきたんですよ。するとどうでしょう。。。

    …え?
    俺は今まで何してたの?

    と思うようなよくわからない技術のオンパレードで。(BEM、Sass、Vagrantなど・・・)

    「いやいや待て待て、講師だから、やっぱすごいんやろな。みんなきっと面食らってるに違いない…」と周りを見てみると、むしろその技術を知らない人のほうがおかしいみたいな顔してるじゃないですか。え?htmlを素で1文字ずつ書いてる人まだこの世にいるんですか?みたいな顔。いちおう僕も顔だけはそういう顔をしておきました。

    その日、僕は懇親会に行く予定でしたが、なんか行ったら泣いちゃいそうなのでキャンセルして夜の大阪を一人で徘徊していました。あの日行った立ち飲み屋の刺身と日本酒、おいしかったな…

     

    後日

    そんな雷に打たれたような経験の次の日から、勉強会で見たことをすぐに猛勉強しました。これぞ勉強会に行ったという感じですよね。

    そして得た技術を、社内で共有することに努めました。BEMを初めて見た人はコーディングがすこぶる早くなったと泣いて喜び、Sassという画期的な技術でcssを書くのが楽になったと日夜お祭り騒ぎです。
    Vagrantは正直あんまりでした。これなら単発でバリバリ制作するタイプの弊社はXAMPPのほうがええやんってなりましたので、全部の技術が最適とは限らないこともわかりました。でも、とりあえずやってみるっていうのは大事です。

    今となっては上記の技術すら古いですよね。今は、DockerとかReactとかなんですかね?残念ながらもう僕はあんまりスキル方面を伸ばす予定がないため、技術メインの勉強会に行くことはほとんどないと思いますが、フロントエンドの技術はどんどん新しいものが生まれていって、キャッチアップは大変だなと思います。

     

    こんな感じで、田舎の小さな制作会社で、自分のことをすげーできるやつだと思っていた愚か者が、都会の技術にぶん殴られて帰ってきて、その技術によって会社とともに圧倒的成長を遂げるきっかけになったわけです。

     

    おわり

    ツイッターでたくさんのつよつよ技術者をフォローしていると、けっこう自分の知らない技術を目にすることが多いので自分が遅れていることがわかりやすいですが、小さい世界に閉じこもっていると、自分を助けてくれる技術があるという認識すらせずに過ごしがちです。

    普段から本とか技術系ブログとか読んでても、入ってこないことはやっぱりありますよね。

    なので、地方でWeb制作をしている人やプログラマーたちは、ぜひ都会で開かれるちょっと大きめの技術系勉強会に参加してみてください。世界が変わります。自分も成長し、会社も成長し、売り上げアップ!社員は増える!ボーナスもらえる!早く帰れるようになる!いいことしかありません。

     

    勉強会の探し方は以下の記事にも書いています。

    シンプルに選ぶ。Web系セミナーやイベントの探し方

    都会といえば、九州のほうはわからないんですが、だいたい東京か大阪だと思います。特に東京はほとんど毎日のように何かしらやってますよね…

    今はコロナの影響もあり、ウェブでセミナーをおこなう「ウェビナー」という形態が一般的になっているようなので、前より参加しやすいんじゃないでしょうか。

     

    それじゃ、バイバイ!

  • SEOで勝てないけどどうしてもアクセスしてほしいページに導く方法

    SEOで勝てないけどどうしてもアクセスしてほしいページに導く方法

    「ユーザーにどうしてもアクセスしてほしいページがあるけど、これは検索からは来ないな」というページ、出てくると思います。

    どうしてもアクセスしてほしいページというと、コンバージョンページだったり、アフィリエイトではキラーページ(大きな収益が発生するページ)と呼ばれるページが多いです。

    こういったページは、競合も強くなかなか検索で上位に表示されなかったり、そもそも検索ワードでない場合もありますが、アクセスさせる方法は何も検索だけではありません。

    他のページから誘導させる」というテクニックを使いましょう。




    既にPVの多いページから誘導

    例えば僕の以下のページ

    https://meshikui.com/2020/04/08/2699/

    この記事は、「イラスト 上達」というまぁまぁなビッグワードなので、検索上位はやばいやつらがひしめいているのですが、既にアクセスのある以下の記事

    https://meshikui.com/2019/03/22/1578/

    からうまく誘導することで、公開して早々、このブログでTOP5に入るPV数となっています。ほとんど検索からの流入はありません。今のところ9割近くが上のページからの流入で、だいたい20%くらいが流れてきてます

    誘導のコツとしては、ただ記事下の関連記事として載せるだけでなく、記事内にリンクを置くこと。

    「続きを読ませる」ような感覚で置くか、もしくはランディングページでは軽くまとめるだけにしておいて「詳しいことはこちらのページに書いてます」といったように誘導するのがポイントです。

    ちゃんと誘導できているかどうかは、Analyticsのページごとの解析画面からセカンダリディメンション「2ページ目」を見ることですぐにわかります。

    思うように流れていない場合は、この入り口ページにアクセスしたユーザーが次に求めるであろう情報は何なのかを考え、誘導の仕方を変えてみましょう。

     

    ちなみにですが注意点として、入り口ページに何かしらコンバージョンを置いている場合、別ページに移動する仕組みになることにより入り口ページのコンバージョン率はやや下がります

     

    複数のページに渡って誘導させる

    何も1ページだけの誘導じゃなくてもいけます。

    入り口AからキラーページBに誘導したい場合、A→C→Bでも別にいいわけです。

    ただ、複数ページを渡らせるとだいぶ途中で帰っちゃうので、A→Bの通路も関連記事として置いとくのもいいでしょう。

    さらに、A以外にもDやFといった入り口がある場合、各入り口からどうにかしてキラーページBに動線を繋いでやれば、Bへのアクセスはより高まってきます。

    また、こうした内部リンクの強化はユーザーの滞在時間や回遊率のアップ、クローリングの促進につながり、結果的にSEOが強化されるとされています。

    僕が自分の例として挙げたイラスト記事の誘導も、キラーページへの誘導というよりは、どちらかというとSEO強化を目論んでいます。一記事でいいからビッグワードで勝ちたいんや…そのためには、イラスト系の記事にウェイト置かなきゃですね。

     

    逆に既にPVの多いページからキラーページを作る

    まだキラーページがない場合。

    サイトを適当に書いていると正直どんなページに流入が増えるかってなかなか予測したようにはいかない場合が多いです。

    でも、コンテンツを強化しているうちに、必ず何かしら突出してアクセスの増えるページが出てきます。そうなったときはチャンスで、「アクセスの増えたページをもとに、次にアクセスさせるページを作る」わけです。

    例えば、ブログサイトのレイアウトについて技術的に説明しているページが予想外にアクセスが伸びてきたとすると、そのページ内に「美しいレイアウトのWordPressテーマまとめはこちら」みたいなリンクを置いておけば、あっという間にいろんなテーマを比較したキラーページへの動線ができあがります。

    WordPressテーマの比較記事なんか競合強すぎて、まぁSEOじゃなかなか勝てないですからね。

     

    おわり

    キラーページとなるのはだいたいビッグワードであったりニッチ過ぎて検索から来ないページであったりすることが多いですが、このようにロングテールなどから来たアクセスを流すことによってコンバージョンさせる、また、SEOにも強くなるというのはけっこう重要なテクニックなので、覚えておいて損はありません。

    この「入り口は広げておいて、入ってきた人をVIPルームへ誘導する」方法は、通常表立っては売りにくい商品を売るための手段として、Webだけでなくあらゆるマーケティングで用いられています。

     

    VIPルームで最高のおもてなしを!

    それじゃ、バイバイ~

  • jQuery スクロールでふわっと出てきてフッターで止まる追従ボタン

    jQuery スクロールでふわっと出てきてフッターで止まる追従ボタン

    「トップへ戻る」ボタンなど、ページ開いたときは出てないけど、ちょっとスクロールすると出てきてスクロールとともに追従し、フッター手前とかでピタッと止まる、そんなボタン。

    割とよく実装する割に面倒なので、すぐ使えるようメモ。




    実装

    $(function () {
      var topBtn = $('#goTop'); // ボタンを指定
      topBtn.hide(); //最初は隠しておく。CSSで隠してもオッケー
    
      $(window).on("scroll", function () {
        if ($(this).scrollTop() > 100) { // 100px以上スクロールしたら出てくる
          topBtn.fadeIn();
        } else {
          topBtn.fadeOut();
        }
    
        scrollHeight = $(document).height();
        scrollPosition = $(window).height() + $(window).scrollTop();
        footHeight = $("#footer").innerHeight(); // ここでフッターの高さを取得
        if ( scrollHeight - scrollPosition  <= footHeight ) { // フッター付近まで来たら
          topBtn.css({
            "position":"absolute",
            "bottom": footHeight + 65 // フッターの65px上で止まる
          });
        } else { // それ以外は画面下から20pxの位置に固定
          topBtn.css({
          "position":"fixed",
          "bottom": "20px"
        });
        }
    
      });
    });

    #goTopは#footerの中に入れておき、#footerはposition:relative;にしておく

    例↓

    <footer id="footer" class="footer">
      <div id="goTop" class="goTop"><a href="#header">トップへ戻る</a></div>
    </footer>

    現場からは以上です。

  • 【IE対応】CSSで画像をトリミングする「object-fit」まとめ

    【IE対応】CSSで画像をトリミングする「object-fit」まとめ

    レイアウトのサイズに合わせ、出力する画像を複数用意する時代はもう終わりを告げた。

    今は「object-fit」というウルトラ便利なcssで、1つの画像を自在にトリミングして表示できるのだ。

    というわけで、「object-fit」の使い方をまとめてみました。




    基本の使い方

    まずは、画像をそのままトリミングしてみましょう。

    以下は画像そのままのサイズのやつ。

    これを300×300にトリミングします。

    .trim01 img {
      width: 300px;
      height: 300px;
      object-fit: cover;
    }

     

    できました。
    画像のwidthとheightを指定し、「object-fit: cover;」と加えることで、画像がトリミングされて表示されます!

    親要素に合わせる

    親要素が可変するので、画像もそれに合わせてトリミングしたい。背景みたいに使うパターンですね。

    .trim02 {
      width: 100%;
      height: 200px;
    }
    .trim02 img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

     

    画像のwidthとheightを100%にしてあげればオッケー。
    わざわざabsoluteとか使ってた人たち、泣いてませんか?

     

    プロパティ

    object-fit: cover; 以外にも、全部で5種類のプロパティがあります。

    1. object-fit: fill;

    指定したwidthとheight通りに画像を変形させます(初期値)

    2. object-fit: cover;

    指定したwidthとheightを埋めるように画像をトリミングします。この際、画像は指定したwidthとheightのうち、大きい方に合わせ自動でリサイズされます。background-size: cover; と同じ。

    3. object-fit: contain;

    指定したwidthとheightの中にきっちり納まるように画像を配置します。トリミングはされません。background-size: contain; と同じ。

    4. object-fit: none;

    指定したwidthとheightを埋めるように画像をトリミングします。画像はリサイズされません。

    5. object-fit: scale-down;

    containかnoneのうち、小さい方を表示させます。

    使うのはcontainばっかりになりそうですが、他のも覚えておくといつか役に立つ日が来ると思います。

     

    トリミング位置の調整

    何も設定しないと中央を基準にトリミングされますが、「object-position」を使えばトリミング位置を調整することも可能。

    object-position: 0 0; /* 横,縦 */
    object-position: 100% 100%; /* 横,縦 */

    pxでも指定できちゃう

    object-position: 20px 30px; /* 横,縦 */

    これを使うと、「WordPressで登録したサムネイルのトリミング位置を変更したい」という無茶振りにも割とスムーズに対応可能。

     

    IEでも使う方法

    このCSS、Internet Exploreで使えない!

    最近はIE対応しないのがデフォルトの人も増えてきたようですが、残念ながらまだIE11対応しなきゃいけない場合のほうが圧倒的に多い。こんなに革命的に便利なのに、IEで使えないんじゃだめじゃん…

    しかしご安心ください。若干手間が増えますが、IEでも使う方法があります。

    それが、「object-fit-images.js(通称ofi)」と呼ばれるjsスクリプトを使用する方法。

    以下のように記述して、ファイルを読み込み、処理を呼び出します。だいたいページのhead内か、</body>直前とかに書きますよね。

    <script src="https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.3/ofi.js"></script>
    <script>objectFitImages();</script>

    これでhtml側の準備はOKなんですが、CSSにも書き加える必要があります。

    .your-favorite-image {
    	object-fit: contain;
    	font-family: 'object-fit: contain;';
    }

    positionも加える場合はこう

    .your-favorite-image {
    	object-fit: cover;
    	object-position: bottom;
    	font-family: 'object-fit: cover; object-position: bottom;';
    }

    「font-family」を使った謎の記述…どうなってるんですかねこれは…

    ともかく、これでIEでも使えるようになります!よかったね。

     

    それじゃ、バイバイ~!

  • 【CSS】なぜidや要素そのものにスタイルをつけてはいけないのか

    【CSS】なぜidや要素そのものにスタイルをつけてはいけないのか

    例えば以下のようにhtmlがあったとき、

    <div id="sample"></div>
    <div class="example">
      <p></p>
    </div>

    idや要素自体にスタイリングするのはご法度とされています。

    #sample {
      background-color: #eee;
      padding: 20px;
    }
    .example p {
      font-size: 14px;
      margin-bottom: 10px;
    }
    /* ダメです */

    さてなんでダメなんでしょうか。

    コーディングを長く続けていると、「あ、これはダメだな」と気付くんですが、まだ慣れていないうちはなんでダメなのかよくわからないと思います。そもそもダメだと言うことを知らない人もいるでしょう。

    ダメな理由は、主にメンテナンス性が悪くなるからです。今回は、なぜidや要素自体にスタイリングしてはいけないのかを学んでみましょう。




    idにスタイリングすると、こうなる

    とりあえずidにスタイリングしてみましょう。

    See the Pen not id 1 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    別段問題ないように見えますね。しかし、ここでもう一つ全く同じスタイルの要素を追加したい場合、どうでしょうか。

    See the Pen not id 2 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    うわーめんどくさい!なんじゃこりゃ!!

    そう、1ページにユニークなidは一つしか使えないため、同じ形の要素でも別のidを振らなきゃいけないので、こうなっちゃいます。
    更にもう一個、二個と増やしたい場合どうしよう。地獄ですね。考えるのをやめましょう。

    当然ですが、idではなくclassにしておけば何個でも同じ要素を複製できます

    要素にスタイリングすると、こうなる

    「idがだめなら要素にスタイリングすればええやんけ。」

    なるほど。やってみましょう。

    See the Pen not id 3 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    お、いいかもしれません。しかしここで、全く別の形のulを追加したい場合

    See the Pen not id 4 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    うーん、めんどくさい!しんどい!

    何がしんどいって、結局classつけないと差別化できないのと、要素につけているスタイルを打ち消さなきゃいけないのがしんどいですよね。

    しかもこれ、要素そのものに付与されているスタイルをいじると、他の知らないところでバグってることがよくあります。メンテナンス性悪すぎる。

    これも最初からclassをつけていれば解決です。

    でも、ほぼすべての要素にclassつけるのしんどい…

    そこでCSS設計の出番です。

    このCSS設計は、使用する人や思想によって違うのですが、一貫してメンテナンス性を向上させるために考えられています。そしてついでに命名にも悩まなくなります。

    僕の場合、以下の記事のような設計で書いてます。

    【Sass】BEMとSMACSSをなんとなく使っていい感じのCSS設計

    まぁこれもけっこう、案件やそのときの気分によって微妙に変わったり、守ってないこともあるのであやふやで割と適当なんですが…何も設計しないよりははるかにメンテナンス性はいいと思います。

    しっかりCSS設計を学びたいなら、つい先月発売された以下の本をオススメします。最新のナウいCSS設計が学べるでしょう。僕はもう技術を学ぶ気があまりないので買ってませんが、2年前ならおそらく買っていたと思います。みんないいって言ってましたよ!

    おわり

    CSSは、適当に書いてもブラウザでちゃんと見れればオッケー。最初は全然それでいいと思います。設計なんか考えてる暇ないくらいスケジュールパツパツの作業をすることもあるでしょう。

    慣れてきたら、メンテナンス性を高める努力をしてみましょう。そうすることで、今後修正があるときに素早く終わらせたり、予期せぬ破壊を防ぐこともできます。またCSS設計を学び、より汎用性の高いcssを書けるようになったら、コーディングの速度も上がっていきます。

    初心者がコーディングを3倍速くするために知っておきたい6つの技術

    とっととコーディングを終わらせて焼き鳥を食べて帰ろう!

    それじゃ、バイバイ!

  • 【CSS】子要素にmarginがあると、親要素を突き抜けてしまう問題の対処法

    【CSS】子要素にmarginがあると、親要素を突き抜けてしまう問題の対処法

    コーディングしているとき、子要素の下にmarginをつけているのに、親要素の下側に余白ができない場面に遭遇したことはないでしょうか?

    例えば以下のような形。

    See the Pen penetrate-child by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    .childには等しくmargin-bottom: 30px;をつけているはずなのに、最後だけ下に余白がない…余白がほしいんだけど。

    これは、子要素のmarginが親要素を突き抜けてしまうことで発生する現象です。

    もう一つ並べてみましょう。

    See the Pen poJQNyp by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    3番目の子要素のmargin-bottomが突き抜け、2つのparentの間に余白ができていることがわかると思います。

    これはちょっと意図してない動作ですよね。

    解決しましょう。




    解決策その1.子要素の最後にmarginをつけず、親要素にpadding-bottomをつける

    See the Pen penetrate-child3 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    .parentにpadding-bottomを追加し、.childの最後だけmargin-bottomを解除。こうすることで、marginはないので当然突き抜けずに余白を実装できます。ある意味一番自然な形ですが若干めんどくさいですね。

    疑似要素”:last-child”について、よくわからなければ以下の記事を参考にしてください。

    CSS 「n番目の要素」を指定できるnth系疑似要素のまとめと注意

    解決策その2.親要素にoverflow:hidden;をつける

    コメントで教えていただきました。親要素にoverflow:hidden;。

    See the Pen penetrate-child4 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    おお、はみ出ない!

    親要素からはみ出る要素がない場合は、シンプルで使い勝手が良いですね。ありがとうございます!

    解決策その3.親要素にpadding-bottom:1px;をつける

    裏技というかほとんど力業なんですが、実は親要素にpaddingがあれば、子要素のmarginは突き抜けません。ややこしいですね。

    この性質を利用して、親要素にpadding-bottom:1px;をつけてやりましょう。

    See the Pen penetrate-child4 by ぜろみや@フリーのWeb屋 (@zeroichi69) on CodePen.

    うーん、いいんじゃないですかね!

    ただし、もちろん1pxの無駄が生じます。この1pxの無駄を許さない場合は、やめときましょう。

     

    以上、現場からでした。

    バイバイ!

  • ダウンロードせず使えるダミー画像作成サービス「Placehold.jp」が仮コーディングに鬼便利

    ダウンロードせず使えるダミー画像作成サービス「Placehold.jp」が仮コーディングに鬼便利

    コーディングをしているとき、サムネイルや仮画像などの「あとで差し替える」系の画像、これを用意するのがとてもめんどくさい。

    そこで、自由に画像サイズを設定できて、簡単に使えるダミー画像作成サービス「Placehold.jp」のご紹介。




    ダミー画像の作り方

    使い方はとても簡単。html内に

    <img src="http://placehold.jp/150x50.png">

    と書くだけで、下のような画像を表示させることができます。会員登録もいりません。無料で使えます。

    数値を変えればサイズを変更できるのはもちろん、色や文字色を変えることも可能。

    <img src="http://placehold.jp/24/cc9999/993333/150x100.png">

    何気に、ぱっと見で画像サイズがわかるのは地味に便利。サムネイルサイズを設定するときや、差し替え画像を用意するとき、すぐわかりますからね。

     

    小技

    実は、この画像、ダウンロードして使うこともできます。

    画像のsrcにアクセスしてみましょう。

    http://placehold.jp/24/cc9999/993333/150×100.png

     

    以上、現場からでした。

    Placehold.jpへはこちらから。

    それじゃ、バイバイ!

  • 「100日後に死ぬワニ」で学ぶコンテンツマーケティング

    「100日後に死ぬワニ」で学ぶコンテンツマーケティング

    ワニ君、死んじゃった…

    死んじゃいましたね。ワニ君。おそらくかなりの人数のツイッタラーがワニ君の生き様を観察していたであろう「100日後に死ぬワニ」、ついに終わりを迎えました。

    この100日後に死ぬワニ、これだけ人気が出ればあとで書籍やグッズが販売されるだろうなと踏んでいましたが…きました。

    まさか映画化まで!?それは予想外だった!すごすぎる。

    さてこれは、コンテンツマーケティングと呼ばれる販売戦略の一つです。今回は、100日後に死ぬワニから見られるコンテンツマーケティングについて少し学んでみましょう。




    まず顧客を育てて売る

    そもそもコンテンツマーケティングとは、「価値あるコンテンツの発信を続けファン(=見込み顧客)を育成し、商品購入へ導く」マーケティングのことです。

    100日後に死ぬワニ、完全にそのままでめっちゃわかりやすいですよね。無料で4コマを発信し続けファンを引き寄せておいてから、映画、書籍、グッズのなどの有料コンテンツへと誘導する。

    この「先にファンを集めてから何かを売る」コンテンツマーケティングは、いろんな市場で見られる手法です。

     

    コンテンツマーケティングの例

    コンテンツマーケティングが使われている例を見てみましょう。

    情報商材

    エンジニア界隈で少し話題になった、manabさんという方の「初心者からエンジニアになって稼ぐ」というコンセプトの情報商材。

    そのお値段、なんと…14万!!

    14万ですよ!?情報商材が14万!!

    こんなもん、その辺の本屋の棚で見かけて、作者が全然知らん人だったら絶対買いませんよね。作者がビル・ゲイツだったとしてもなかなか買わないと思います。

    しかしこのmanabさん、圧倒的な数のファン(熱狂的すぎてクラスター外の人からは信者と呼ばれていますが)が既にいて、それ故にこんな無茶苦茶な価格でも売れてしまうんですね。「manabさんが書いたならそれだけの価値がある」と思わされるんでしょう。凄まじいコンテンツマーケティング。逆にあっぱれです。

    なお、この値段設定は当時また別に流行っていた「プログラミングスクール」でもけっこうお金を払う人がいたので、これに払うならいけるやよくらいの感覚で値段付けたのかなと思ってます。

    絵師

    絵師と呼ばれる、絵を描く人たちの界隈。僕も今、その界隈で駆け出しとして参戦していますが、実は、依頼を請けて絵を描くこと自体の単価は、とても安くなっています。2万で文句がでるくらい。

    今はPixivとかで、良いイラストが無料でなんぼでも見れてしまう時代で、うまい絵を描く人はいくらでもいるんですよね。だから当然価値が下がっています。

    1枚描くのにかなりの時間がかかるのに、報酬が安いと絵を描くだけで食べていくのはかなりハードルが高いです。

    さてそこでどうするか。
    答えは、100日後に死ぬワニと同じですね。

    普段から絵は無料で公開し続け、自分のファンをまず増やしてから、グッズ販売やFANBOXなどに誘導し、受託制作ではない形で収入を得ています。

     

    コンテンツマーケティングのメリット・デメリット

    コンテンツマーケティングのメリット・デメリットを見てみましょう。

    メリット

    コンテンツマーケティングのメリットは、売れにくい商品が売れることです。

    その辺のショップで、作者の名前も知らない状態ではなかなか買われないようなニッチな商品であっても、まずファンを増やしてから売ることで、割とあっさり売ることができます。

    非現実的な情報商材でも売れますし、下手な絵でもグッズが売れます。

    グッズやイベントなどで更に口コミでファンが増え…と、一度軌道に乗ると、ブームが去るまでがっぽがっぽというわけです。

    デメリット

    コンテンツサービスのデメリットは、まず、即効性がないこと。

    「先にファンを増やしてから売る」ので、まずはファン作りに専念。この間は、商品は売れません。

    ファンが増えるかどうかは作者のセンスだったり、戦略次第になるためいつ売れるようになるかの予測がなかなか大変。その点、100日後に死ぬワニは、100日後という終わりを設けているため戦略が立てやすいのではなかったかと思います。

    また、もう一つのデメリットとして、販売開始した後も良いコンテンツを発信し続けないとすぐにブームが去るということ。

    「今までがんばったから、あとは全部買ってね(笑)」なんて言おうものならファンはそそくさと退散し、あっという間にすっからかんになってしまうでしょう。それでも、「このチャンスに荒稼ぎして、ファンは少なくなってもいいから無料コンテンツを減らし、これを資金にして別の事業を進める」方向にいくのなら全然ありです。

     

    おわり

    コンテンツマーケティングは、時間はかかりますが、自分のコンテンツへの反応をよく観察し、PDCAをまわしてコンテンツを改善していくことで確実にちょっとずつでもファンは増えます。そしてファンはコンテンツを広めてくれるので、ある一定までとにかく頑張れば、急にグッと伸びるときが見えてきます。

    僕も早くそれになりたい。

    それじゃ、バイバイ!

  • 市場調査の重要性に叩きのめされて泣いた。あなたのターゲットは間違ってませんか?

    市場調査の重要性に叩きのめされて泣いた。あなたのターゲットは間違ってませんか?

    僕は今まで、「フリーランスでWeb制作をしている」人をメインターゲットとして発信をしてきました。

    いつものごとくメディア巡回していると、「フリーランスで働く8割が「不安」、5割はトラブルを経験 収入の平均は…… – ITmedia ビジネスオンライン」という記事が目に入って、読んでいると思わぬところで驚きの事実が…




    仕事の位置付けは、「専業」が37.5%、「本業は別にあり、副業として行っている」が44.8%

    お?フリーランスのうち、専業でやってる人は37.5%?

    そして日本労働組合総連合会による調査では、

    ・デザイン、コンテンツ制作…5.1%
    ・情報検索、計算処理、プログラミング作業…4.9%

    すくなーっ!!!

    全フリーランスのうち、制作やプログラミングを行っているのは10%!実際この10%の中で、「専業」で「ウェブ制作」をしてる人はいったい何人いるんでしょうか?やばい、いくらなんでも少なすぎる。

     

    フリーランスに関する情報は、レバテックやランサーズが当然強い中、そんな人の少ない世界の片隅で僕みたいなのが小声で何か話してても誰の耳にも届かないですよ。完全にしくじった。。

     

    ターゲットを変える

    駄目だと思ったら方向転換しましょう。

    というわけで、まず「フリーランスのWeb制作者をターゲットにする」のはやめます。とはいえ、まったくいないわけでもなく、僕の読者さんの中にも確かに存在はしていますので、どちらかというと僕自身がどんな生き方をしているかを見てもらえばいいかなと思います。最高のオリジナルコンテンツじゃないですか?

    そして今後メインにするのは、フリーランスではなくWeb制作者ですね。もしくは、今会社員として働いてるけど、フリーランスになりたい人向けの発信ならありかも。

     

    「ニッチな市場で勝負する」の勘違い

    「ニッチな市場で勝負する」という言葉をよく聞きますが、これをそのままとらえてはだめですね。ジャンル自体がニッチではだめ。

    僕の場合、フリーのWeb制作者として活動することは強いです。なぜなら、Web制作という大きな市場の中で、「ちゃんと仕事ができるフリーランス」という尖ったスキルを持っているから。ちゃんと仕事ができる専業のフリーランスってそういないんですよ。困ったときにすぐ呼べるスーパーヒーローと言っても過言ではないでしょう(過言か?)

    しかし、そんな数少ないスーパーヒーロー向けに発信するのはダメってことです。

    「あれ?でも最近、未経験からフリーランスになるの流行ってるのでは?」については、僕はそもそも未経験からフリーランスになるのは推奨していませんので、その世界向けに発信することはほとんどありません。

    https://meshikui.com/2019/05/07/1758/

    「ニッチな市場で勝負する」は、「ニッチな市場をターゲットにする」とイコールにならないことを肝に銘じておかなければいけませんね。

     

    おわり

    ターゲットが間違えていると、いくらがんばってもアクセスは増えません。僕のTwitterでの戦略も完全に「ちゃんとしたフリーのWeb屋」向けの発信だったので、ちょっと変えないといけないですね。

    フリーのWeb屋の生き様を見せつつも、発信する相手はフリーランスではなくWeb制作者に的を絞ったほうがよさそうです。

    あなたのターゲット、間違っていませんか?

    それじゃ、バイバイ!

  • WPの管理画面からAnalyticsやSearch Consoleが見えるGoogle公式プラグイン「Site kit」使ってみた

    WPの管理画面からAnalyticsやSearch Consoleが見えるGoogle公式プラグイン「Site kit」使ってみた

    えぇ!?WordPressの管理画面からGoogle AnalyticsやSearch Console、Google Adsenseを全部見ることが出来るプラグインがあるんですか!?

    その名も「Site Kit」

    とういうわけで、さっそく試してみました。




    インストール&設定

     

    プラグイン一覧で「Site Kit」と検索すると出てきます。

    設定方法は簡単で、自分のアドレスでサービスを既に使っていて、自分のサイトを登録している場合に限りますが、ほとんどボタンをクリックしていくだけで勝手に連携していってくれました。

    詳しい設定方法は「https://pecopla.net/seo-column/site-kit-install」が参考になります。

     

    Search Console

    検索パフォーマンスと、上位の検索クエリを見ることができます。

     

    Google Adsense

    ここ最近の収益の統計や、どのページからの収益が多かったかが確認可能。

     

    Google Analytics

    アクセス数と流入経路、過去28日間でアクセスの多かったページベスト10が確認できます。

     

    感想

    WordPressの管理画面から、アクセスや収益が一目で確認できてテンション上がりました。

    簡単な情報しか見れないため、結局しっかり解析したかったら各サービスにアクセスすることになるんですが、管理画面から各サービスへのリンクが貼られていますので手間が省けます。

    基本的には、「最近どうかな~?上がったかな~」くらいのテンションで軽く見るのにいいプラグインだと思います。ちょっと見たいだけなのに、各サービス見てまわるのめんどくさいですもんね。

     

    あとこのプラグインの最大の長所は、スマホでめっちゃ綺麗に見ることができることじゃないでしょうか

    ソファーで寝転びながらアクセスを確認できる。これがマジでほしかった!!

     

    おわり

    絶対いれなきゃいけないほどのプラグインでもないですが、どこでも手軽にいろんな情報が確認できるという点ですごく便利だと思いますので、ぜひ入れてみてはどうでしょうか。

    それじゃ、バイバイ!

  • ユーザーの使いやすさから考えるtarget=”_blank”の使いドコロ3点

    ユーザーの使いやすさから考えるtarget=”_blank”の使いドコロ3点

    リンクを別タブで開くことのできる「target=”_blank”(以下タブゲラ)」、つけるかつけないかについてはずっと意見が分かれていて絶えず論争が繰り広げられています。

    この記事では、僕が個人的に思うタゲブラの使いドコロについて、ユーザー的にはどうあれば使いやすいのかを考えながらやってみましょう。

    基本は以下の3つの場合のときだけでいいんじゃないかと思います

    1.別サイトへのリンク
    2.画像やpdfを開かせるとき
    3.フォームの途中




    1.別サイトへのリンク

    自分のサイトから、全然違うサイトに飛ばすとき。

    例えばAからBに飛ばすとして、Bの中でもナビゲーションとかでいろんなページを見回ることもあると思うんですが、ブラブラ~っと見た後、「あれ、Aに戻れないじゃん…」となったらめんどくさいですよね。

    2.画像やpdfを開かせるとき

    こんな感じで画像リンクを貼ったページに飛ばされたあと、閉じようとするときタブごと閉じちゃいませんか?

    そうなると元いたページに戻るのがめんどくさい。「Ctrl + Alt + T」で閉じたタブをもとに戻せることを知っている人なんてそう多くないでしょう。

    3.フォームの途中

    ネットショップでお買物をし、カート画面で情報入力をしている途中、「送料についてはこちら」というリンクがあったのでクリックして読んだ。そのあとフォームに戻ったら、もう一回最初から入力しなおしになった。

    うーん、めんどくさい。タゲブラしましょう。

     

    以上、

    1.別サイトへのリンク
    2.画像やpdfを開かせるとき
    3.フォームの途中

    この3点においてはタゲブラ使った方がユーザーに優しいです。

    タゲブラは余計なお世話なのか?

    タゲブラはユーザーにとって選択肢を奪う行為なのでいらない」という意見について。別タブで開きたかったら自分で開くからいらんよってことですね。

    でもいちいち一般ユーザーが右クリック開いて別タブで開きます?僕ですらめんどくさいですよ?なんならスマホで別タブで開く方法知らないですし。
    もしその知識があるユーザーだとしても、タゲブラによって別タブで開くことが正しい世界線においては、わざわざ「このクリックは別タブで開こう」とか思わないですよね。だって開くのが自然だもの。

    「あれ、どこのコンビニも袋詰めてくれるのに、ここのコンビニは自分で詰めんとあかんのや。めんどくさ」と同じ感覚になると思います。

    あと、「スマホではタブを閉じれないようなリテラシ低いユーザーがいるから、そんなユーザーにとっては端末への負担が増えるだけなのでいらない」という意見もありましたが、そこまで使えない少数ユーザーのために、他の大多数のユーザーののための便利を犠牲にするのもよくないんじゃないかと。

    どちらにしても、一般的に行われている施策なので、世界を変えるくらいのつもりがないのであれば、それに抗ってタゲブラをあえて使わないというのはやっぱりユーザーにとっては使いづらさしか感じないと思うんですよね。

    タゲブラは非推奨なのか?

    なんか昔は非推奨だったらしいですが、今は普通に使っていいです。

    ただ、脆弱性が確認されました。Googleが以下の通り勧告を出しています

    target=”_blank” を使用して任意のページから別のページにリンクしている場合、リンク元のページとリンク先のページは同じプロセスで動作します。 そのため、リンク先のページで負荷の高い JavaScript が実行されていると、リンク元のページのパフォーマンスが低下するおそれがあります。

    また、target=”_blank” にはセキュリティ上の脆弱性もあります。リンク先のページでは window.opener を使用して親ウィンドウのオブジェクトにアクセスしたり、window.opener.location = newURL によって親ページの URL を変更したりできます。

    レポートを確認して、Lighthouse で特定された各リンクに rel=”noopener” を追加します。 一般的に、外部リンクを新しいウィンドウまたはタブで開く場合は、必ず rel=”noopener” を追加してください。

    (参考:https://developers.google.com/web/tools/lighthouse/audits/noopener?hl=ja

     

    これはつまるところ、「自分のサイトから別のサイトに飛んだとき、とんだ先のサイトで負荷の高いJavaScriptがあると、元のサイトにも何らかの影響があるかもしれないよ」と言っていて、別サイトに飛ばす場合は、以下のように必ず「rel=”noopner”」をつけようねってことです。(「rel=”nofollow noopner”」にしてねと言われていたこともありましたが、今は「rel=”noopner”」だけでいいみたい)

    <a href="https://examplepetstore.com" target="_blank" rel="noopener">...</a>

     

    以上、現場からでした。

    バイバイ!

  • コーディングを外注するとき、気を付けているポイント【主に納期】

    コーディングを外注するとき、気を付けているポイント【主に納期】

    Web制作をやっていると、けっこう外注しないといけないことも多いと思います。

    僕もフリーランスになった初期からそこそこコーディングを外注に出したりしているのですが、最初はひどいもんで、質が悪かったり納期はぶっちぎられたりして「まともなやつはいねぇのか!」と号泣していましたが、それは自分のディレクションスキル不足だということに気づいたので、改善の努力をしました(えらい)

    今もよく外注しますが、初期に比べるとかなり安定していると思います。

    今回は、現在外注に出すときに特に気を付けている部分についてご紹介します。といっても、最終的に納期さえ気をつければなんとかなります。

     

    コーディングスキルの確認

    「コーディングなんか誰がやっても同じでは?」と思われるかもしれませんが、全然違います。100人いれば100人書き方が違います。

    なので毎回細かく見ていてはキリがないため、制作実績を見せてもらい、最低限以下の部分だけ問題なくできているか確認します。ちなみに、制作実績はなるべく0からコーディングしたものを見せてもらいましょう。

    ・HTML5で書かれているか
    ・適切なマークアップがされているか
    ・idや要素そのものにスタイリングしていないか
    ・自分の使えない技術を使っていないか

    HTML5で書かれているか

    「エッ!?」と思うでしょう。僕も思いました。

    しかし現実に、コーディング歴10年以上というベテラン(?)の方に外注したところ、HTML4で記述されていたということがあります。

    たまったもんじゃありません。

    適切なマークアップがされているか

    見出しタグがついているか、タグの使い方が間違ってないかぐらいは確認しておきましょう。

    この間、「セレクトボックスを<ul>で作られていた」と話している人がいて、涙なしにはいられませんでした。

    idや要素そのものにスタイリングしていないか

    ちょっとならいいんですが、多用されているときつい。

    自分の使えない技術を使っていないか

    「jQueryしか使えないのにBabelで納品された!」

    困りますね。これは発注する際のコーディング規約として言っておいた方がいいです。

     

    コーディング規約

    僕の場合、あんまりがちがちに規約作るようなことはせず、基本的には外注先に任せることにしています。今後長くPDCAを繰り返していくような大きいプロジェクトでもない限り、無駄なコーディング規約はコストばかりかかります。

    ただ、上記「コーディングスキル」で確認できなかったこと(確認していても、今回も同じ方法でやってくるとは限らないので)については、軽く規約を見せることにしています。

    あとは、サポートブラウザも大事ですね。

     

    納期

    やってまいりました、納期です。

    1に納期、2に納期、3・4が納期で5に納期です。

    僕にとって納期は絶対です。納期が厳しいものは請けないくらい納期を厳守します。しかしたまに素で忘れてることがあります。それについてはごめんなさい。

    なのでもちろん外注さんにも守っていただかなくてはいけないんですが、これがなかなか守ってくれない。平気で連絡もなく遅れる人や、なぜか納期前になると体調不良になる人、普通に忘れている人、いつの間にかいなくなっている人、本当にものすごい多いんです。

    とはいえこれも、自分の力である程度なんとかなります。できるだけ納期を守ってもらえるよう努力しましょう。

    ・クライアントに伝える納期は余裕をもって
    ・一回「進捗確認日」を挟む
    ・ソースはgitかサーバーで共有
    ・納期を再確認する

    クライアントに伝える納期は余裕をもって

    外注さんに言われた提出日に対し、2日くらい余裕をもってクライアントに伝えたほうがいいです。大きいものについては3日。4日以上はちょっと余裕とりすぎかなと思います。

    これは、単純にバッファという意味もありますが、納品されたものについて、まず自分で確認しフィードバックを行うための時間でもあります。

    意外とこの時間をとっていないとてんやわんやになります。

    もしクライアントのほうで納期が決まっている場合、申し訳ないですが外注さんには1日~2日早めに提出してもらうことにしています。

    一回「進捗確認日」を挟む

    納期前、だいたいカレンダーで言えば全体の8割くらい進んだところで1回進捗確認日を挟むことにしています。

    ちょっと安心します。納期になって「全然できていません」とか言われたらマジでこわすぎます。

    ソースはgitかサーバーで共有

    だいたいgithubで共有することが多いです。バージョン管理というよりはただの共有としての意味合いが強く、これは「外注さんが急に仕事できなくなったとき、自分で代わりにやるため」です。

    進捗があったら、終業時でいいのでgithubにpushしてもらうようにしておけば、いざとなったとき自分で引き継いで作業できるので安心です。また、自分で作業したあとも外注さんと同期できますので、事故る可能性も低くなります。

    小さいプロジェクトについては、テストサーバーにあげてもらったりすることもあります。

    実は前述の「コーディングスキルの確認」「コーディング規約」は、ここで自分が引き継ぎやすくする布石でもあります。

    納期を再確認する

    進捗確認日のときに、納期について再確認します。

    普通に忘れてたり、納期勘違いしてることもあるので。このあたりはヒューマンエラーなので、注意するしかないですね。

     

    おわり

    大事なことなのでいろんなところで何度も言ってますが、外注にちゃんと仕事してもらえないのは、選定も含め自分の能力不足です。

    しっかりディレクションスキルを高めることで、効率的に外注してもらって、安心してぐっすり眠れる日々を送りましょう!そしてマージンをもぎとれ!
    ※マージンはもぎとりません

    Webディレクターって何すんの?なんで金とんの?現役Webディレクターの現場紹介

    それじゃ、バイバイ~

  • Webディレクターって何すんの?なんで金とんの?現役Webディレクターの現場紹介

    Webディレクターって何すんの?なんで金とんの?現役Webディレクターの現場紹介

    Webディレクターって何?仕事してないの?丸投げしてマージンだけもらってんじゃないの?

    そう考えるクライアントやWeb制作者は多いと思いますので、ここでWebディレクターがどのような仕事をしているのか見てみましょう。

    簡単に一言でまとめると、Webディレクターは「監督」ですが、スタイルによってその仕事内容は多岐に渡ります。というわけで、今回はこのブログの筆者ぜろみやが、Webディレクターとしてどのようなことをしているのかを実際に紹介します。




    営業

    会社によっては、営業とWebディレクターは分けていることも多いですが、僕はフリーランスということもあり、まず営業からです。

    とはいっても僕の場合、そこまで積極的に営業はしていません。昔はランサーズでとってたりしてたんですが、最近はランサーズは発注でしか使ってません。

    日々の仕事ぶりや過去の信用で、人づてに仕事をもらったり、出会った人から仕事をいただいたりしています。

    たぶん、ディレクターは営業もバリバリできれば激稼げる部門だと思います。

    企画・提案・ヒアリング

    実際にクライアントと会い、制作について打ち合わせを行います。遠い場合は会わないこともありますが、できるだけ、特に最初は対面したほうがお互いにどんな人間かわかるので安心します

    ここで決めるのは

    ・どんなサイトを作るか
    ・なんのために作るか
    ・スケジュール
    ・予算
    ・ページ内容、サイトマップ
    ・デザインのテイスト、参考サイト
    ・必要なリソースの選定(デザイナー、コーダー、ライター、カメラマン)

    あたりです。

    例えば以下のような感じ。

    「どんなサイトを作るか」…コーポレートサイト
    「なんのために作るか」…お問い合わせを増やしたい
    「スケジュール」…約3ヶ月
    「予算」…100万まで
    「ページ内容、サイトマップ」…トップページ、事業内容、お知らせ、制作実績、会社概要、採用、お問い合わせ
    「デザインのテイスト、参考サイト」…割とクライアント側で決まっていることもあるが、bookma!などを見て提案することが多い。
    「必要なリソースの選定」…有力な人脈があれば強い。都度募集するのはリスクが高い。

     

    どんなサイトを作るか、なんのために作るか、そしてその目的のために必要な構成を「予算以内」で提案する。予算が厳しい場合は、どのようにすればクリアできるか、最低限何ができるかを考える。予算が決まっていない場合は、見積もりを出す。

    スケジュールは最初はざっくり「〇ヶ月」という感じで出しておき、発注先を決め、スケジュールを確認しながらスプレッドシートなどを使って細かいスケジュールを作る。

    もし誰かのせいで進捗の遅れが出たら(大抵クライアントサイドで遅れるけど)、リスケをしたり、間に合わせるための対策を考えたりする。

    これを、実際に制作作業が始まる前にやるのがディレクターの仕事。なかなか働いてるでしょ?

    連絡係・相談係・進捗管理

    制作が始まったら、制作者のターンです。ディレクターは、始まる前よりかは楽になりますが(といっても他の案件を並行している場合が多いので休んでるわけではないです)、やることはあります。

    連絡係

    クライアント、および発注先の制作者との連絡をとります。

    クライアントから発せられる言葉にフィルターをかけ制作者に伝える。この場合は、主に背景とかデザインの方向性、サイトでやりたいことなどを制作目線で伝えます。

    逆に、制作者から発せられる言葉にフィルターをかけクライアントに伝えます。制作者、特にコーダーが言っていることはクライアントには訳が分からないことが多いので、噛み砕いてわかりやすく伝えるのがメイン。

    相談係

    クライアントから、例えば「こういうふうにしたい、できるか?」という相談を受けたり、制作者から「ちょっとわからないです、どうしましょう」という相談を受けたり。

    「うるせぇ!ググれ!」と言うわけはなく、がんばって相談に乗り、解決に導きます。これ実はけっこう楽しくて好きです。

    進捗管理

    プロジェクトがスケジュール通り進んでいるかを常に監視します。コーディングであれば、githubなどで管理すれば楽。あとはポイントとしては、提出前に進捗確認のタイミングを設けること、その際、提出期限を改めて確認すること。この2点を心がけておけば、まともな制作者であれば納期に間に合わないことはそうそうありません。

    また、プロジェクトが進むと、途中で変更が入ったり思い通りに進まなかったりして、どうしても進捗が遅れることがあります。そんなときに、納期に間に合わせるためのリスケをしたり、どうしてもこれは無理だと思ったら、納期優先なのか完成優先なのかをまず確認し、納期を優先する場合は、どこまでをやるかを決める必要があります。

     

    基本的にプロジェクト進行中はチャットワークでやり取りしますが、大規模なときはBacklogなどのプロジェクト管理ツールを使うこともあります。僕主体では使ったことはありませんが、何度かチームに入って作業させていただいたことはあります。進捗管理・連絡・githubでのバージョン管理などをプロジェクトごとにチーム組んで一括でできるのでめちゃくちゃ便利です。
    Ruby on railsなので僕は扱えませんが、Redmineもプロジェクト管理ツールとして有名ですよね。技術さえあれば無料で使える神ツールです。AWSならほぼ無料で使えるみたいですが、僕は構築までしてみたものの、特に今やる必要はないなと判断したのでそれ以降は放置しています。

    納品後

    形態にもよりですが、納品後はサイトの品質管理を行うこともあります。

    といっても管理費でお金をもらってない限りそこまでバチバチにやることもないんですが、例えばAnalyticsやSearch Consoleをたまに見て、改善案を提案したり、コラムなどのコンテンツ追加を促してみたり、いわゆるアフターフォローです。

    1からの制作ももちろん大事なのですが、完成後の運用もとても大事です。Webサイトからの売り上げは運用にかかっていると言っても過言ではないので、作っただけで終わらせず、解析・改善を繰り返していくのもディレクターの仕事といえます。

    ディレクション費について

    以上紹介させていただいた通り、Webディレクター、まぁまぁ働いています。

    これでお金をもらわないと死んでしまいますので、もちろんお金をいただきます。

    とはいえ、ディレクションの作業はプロジェクトの規模や形態によって作業内容が全然違うため見積もりがなかなか難しく、一般的な方法として、「制作費の〇%をディレクション費として上乗せする」という方法があります。

    この方法だと、プロジェクトの規模によって変化する仕事内容でもだいたい許容することができます。ただ、クライアントにとっては「なんかよくわからん項目で費用上乗せされてる」となっちゃうわけですね。意外とちゃんとした理由でディレクション費をいただいているのでした。

    プロジェクトによっては、制作開始前の「企画・提案・ヒアリング」に携わらない場合もありますので、どこまでやるかによって割合を変えるのがベター。

    おわり

    ディレクションは、仕事内容を書いてみると案外簡単なように見えますが、制作に関わるいろんな知識が必要です。

    経営・マーケティング、デザイン、コーディング、使用ソフトの知識やチームメンバーの選定など、一通り制作現場でチームとして作業したことがないと、なかなか難しかったりします。

    というわけで、みなさん、お願いします。
    ちゃんと働いてますので、ディレクターにもお金をください!

    バイバイ~

  • VS Codeでhtml以外でもEmmetを使いたい(twigでもなんでも)

    VS Codeでhtml以外でもEmmetを使いたい(twigでもなんでも)

    Emmetを使うと誰でも簡単に爆速でコーディングできるのは以下の記事に書いた通りですが

    初心者がコーディングを3倍速くするために知っておきたい6つの技術

    VS Codeのデフォルトではhtml、css、php等基本的なファイルでしかEmmetが使えません。

    そこで、html以外でもEmmetが使えるよう設定してあげましょう。

     

    ①設定アイコンをクリックし、「設定」を選択
    ②検索欄に「setting.json」と入力
    ③「setting.jsonで編集」をクリック

    …なんかもっとショートカットで賢くできる気もしますが、ショートカット覚えるの大変なのでシンプルな方法で。

    これで「setting.json」という、VS Codeの設定が記述されたjsonファイルが開かれますので、そこにEmmetを使いたい拡張子を登録します。

    書き方は以下の通り。

    "emmet.includeLanguages": {"Emmetを使いたい拡張子": "何と同じ表記にするか"}

    「何と同じ表記にするか」は、htmlかcssですかね?他にもあるのかはちょっとわかりません。

    複数の拡張子を設定したい場合は、カンマで区切ります

    "emmet.includeLanguages": {"twig": "html", "vue": "html", "vue": "css"}

     

    Emmet使えないとストレスマッハですね!

    以上、現場からでした。

  • 技術ブログで収益を得るのが難しい理由を、2年続けたブログで分析

    技術ブログで収益を得るのが難しい理由を、2年続けたブログで分析

    思えばこのブログも2018年1月からスタートし、2年が経過いたしました。2年も続けているんだから収益もなかなかのものだろうと思われるでしょう。

    発表しましょう、このブログからの収益…現段階で…

    なんと…

     

    約8万円!!※2020年2月時点

     

    すくなーーーっ!!
    しかも、この中には高額アフィリエイトのマグレあたりもありますので、そういうのを除いたらだいたいちゃんとした収益は3万です。

    なんだこれはどういうことだ。

    そこで、割とがんばってるのに全然収益がない理由を考えてみました。がんばっているのに報われないのは、頑張り方が間違えているからです。
    2年経ってようやく考えるようでは遅すぎますが(いや、実はけっこう前から気付いてはいますが、どうにかしようと思い始めたのは最近)、だいたい原因は以下の2つです。

    ①ターゲットと収益方法のミスマッチ
    ②マーケティング方法の間違い

    それではいってみましょう。

    ※この記事を書いている時点での話なので、将来的に全然違うブログになっているかもしれません。




    ①ターゲットと収益方法のミスマッチ

    僕のブログの今までの読者ターゲットは、主に

    ・Web制作現場で働いている人(デザイナー以外)
    ・受託Web制作フリーランス

    の2層で、かなり絞られていることがわかります。分母が圧倒的に少ない。それにデザインのことはほとんど書いておらず、WordPressとjQueryが多いので、コーダー向けです。

     

    ここでいきなり、「検索エンジンを利用するユーザーの特性」についての話になりますが、検索エンジンを利用するユーザーは基本的に調べたいことがあるから検索します。そしてそんな検索ユーザーには2パターンの特性があり、それは

    ・調べること自体が目的のユーザー
    ・調べたあと、行動(コンバージョン)するユーザー

    です。

    調べること自体が目的のユーザーは、わからないことを調べて「なるほど理解した」と満足して帰っていくユーザー、調べたあと行動するユーザーは、「なるほどええやん!買うか!」となるユーザーです。

    そして、このブログのターゲットは主に「調べること自体が目的のユーザー」となりますので、アフィリエイトの成約や広告のクリックといったアクションを起こしません

     

    おもしろいことに以下の記事、

    https://meshikui.com/2019/03/22/1578/

    現在ランキングで1位となってはいますが、僕のブログの1~5位は大してPV数変わらないのでそこまでずば抜けてアクセスがあるわけでもないのにかかわらず、圧倒的にアフィリエイトの成約率が高いんです。

    これは、この記事だけターゲットが技術者でもフリーランスでもなく、絵を描きたい一般人向けの記事で、「調べたあとコンバージョンするユーザー」のアクセスが多いということです。

     

    で、何が言いたいかというと、僕の今のブログ構成ではアフィリエイトは見込めないということですね。そもそも技術的なことを調べに来るユーザー向けの案件ってなかなかないですし。だいたいそういう人は職場で見ている場合が多いので、興味あっても開かないですよね。

    アフィリエイトが見込めないということは、大量のアクセスを呼び込んでAdsenseで収益を得るしかないんですが、Adsenseからの収益は多くてもだいたいPVのざっくり5分の1(これは一般的にも言われていて、僕のブログでもそうです。)で、月1万稼ごうとすると月間PV5万必要になってくるわけで、ターゲットの分母の少ないと、必然的にAdsenseでの収益も難しいです。

     

    今のターゲットでは、アフィリエイトもAdsenseも厳しいというのが僕の分析結果です。

     

    ②マーケティング方法の間違い

    これはほとんど「①ターゲットと収益方法のミスマッチ」の延長のようなものですが、僕は今まで、基本的に検索からの流入のみに絞って記事を展開してきました。

    ところが、何にせよ分母が少ないもんで、まぁアクセスが少ない少ない。

    アクセスが少ないのは記事の質が悪いからやろ?と思われるでしょう。確かにそういった記事もあるにはるんですが、僕の記事、けっこう狙ったキーワードで上位にいる記事が多いんですよ。それでもアクセスが少ないんです。なぜなら分母が少ないから。

    逆に、分母(需要)が多い記事を検索流入のみで狙って書くとなるとまぁ競合が強い。ここでいう分母が多い=初心者向けの記事ということになりますが、フリーランス関係とかはレバテックやランサーズなんかのブログがそりゃ強いですし、技術系にしてもそんなものは遥か昔から多数の猛者たちが書きまくっていますので、勝つのは大変です。

     

    そう、検索流入だけ、つまりSEOマーケティングにはこのブログ形式は向いてないんです。

     

    SEOで大量のアクセスを呼び込むこともできないのに、Adsenseメインでの収益となっている

    これが、僕のブログから収益がない結論です。

     

    これからどうするのか

    さて今のままじゃ満足な収益が見込めないし、やめようか。なんてことにはなりません、ご安心ください(?)

    まず、収益が直接なくても、秘術ブログを書き続けていると、技術者としては認められることになります。DMやコメントで「助かりました」という声をちょくちょくいただくことがあり、非常にうれしいです。それだけでも書く価値はある。

    しかしやっぱり稼ぎたい!ブログで稼ぎたいんじゃ!

    というわけで、今のように技術的なブログは続けながら、ターゲットをより広くする。軸をぶらさず軸を広げて、より多くの人に読んでもらうよう戦略を変えていきたいと思います。

    ※(2020年5月追記)最近ターゲットや収益方法を変えるようになって、ちょっとずつ収益が増えてます!(マジです)

     

    それでは、あなたのブログも見つめなおして圧倒的成長を!

    バイバイ~

  • コンバージョン率を上げるコンテンツ構造、「AIDAの法則」で売りまくる

    コンバージョン率を上げるコンテンツ構造、「AIDAの法則」で売りまくる

    ユーザーが購入(コンバージョン)するまでの行動を、心理的に誘導するコンテンツの構造はマーケティングにおいてしばしば有効に使われています。

    商品の広告やLPを作る際、こういった行動心理学を利用した構造になっているかどうかでコンバージョン率が大きく変わります。もし、広告を出しているのにあなたの商品が全然売れない場合、うまいことコンバージョンを誘導する構造になっているか見直してみるといいです。

     

    今回は、その構造の一つ、ダイレクトマーケティングの世界で鉄板として知られている「AIDAの法則」についてご紹介。

    AIDAの法則

    AIDAは、以下の4つの言葉の頭文字

    ・注意(Attention)
    ・興味(Interest)
    ・欲望(Desire)
    ・行動(Action)

    注意(Attention)

    まず、キャッチコピーで注意をひきつけ、ボディコピーで興味、欲望を喚起させ、行動(コンバージョン)へと誘う構造。

    例えば以下のような構造になります。

     

    誰でもできる!1日1時間の副業で月50万円稼ぐ方法

    →「そんな方法あるんかいな。ワイにもできるやろか」

    会社勤めはしんどいし、給料も低い。そんな無理して働かなくても、1日たった1時間の作業だけで月50万円稼ぐ方法があるなんて知ったら、毎日汗水流して働くのなんて馬鹿らしいですよね。なんなんですかね会社員って。

    →「ほんまその通りや。仕事やめたいわ。でもそんなうまい話…」

    私は、毎日上司に叱られながらくたくたになるまで働いていても一向に貯金が増えない会社員からおさらばし、この方法で自由を手に入れました!今はグアムでカクテル飲みながらブログ書いてまーすHOOOOOOO!!

    →「ほんまかいなすご!ワイもやりたいわ!ワイもグアムでカクテル飲みたいわ!」

    そんなゴイスーな方法が全部書かれたノウハウが、なんとたった10万…のところを、更にこの記事を読んでいるあなたに限り、2万円で売ってしまいます!!!でも僕が赤字になっちゃうので期限は明日まで!急いで!!!

    →「80%OFFやんけやっす!今すぐ買ったろ!!ポチー」

     

    はい、だいたいこんな感じですね。

    いかがでしょう、そしてこの効果は皆さんご存知の通りです(オッ)

    ホームページ構造も同じ

    広告やLP、ダイレクトマーケティングに関わらず、これはブログでもホームページでも同じです。

    この場合は、キャッチコピーがタイトルになりますね。

    キャッチコピーでとにかく注意を引き付け、中身で興味、欲望を掻き立て、コンバージョンを起こさせる。

    ホームページの場合は、デザインの段階で、こういった構造になっているのが理想です。なので、デザインの前に何をもってコンバージョンとするかをはっきりさせ、しっかりとコンバージョンへの動線を引くことがディレクター、デザイナーの役割となります。

    僕がディレクションを行うときは、必ずホームページを作る目的は何かをヒアリングし、デザイナーにも伝えるようにしています。

    おわり

    物事には必ず法則があり、その法則に従って実践、改善を行っていくことが成功への道です。闇雲に努力しているだけでは報われないこともあるので、勉強しましょう!

    それでは、AIDAの法則でラブアンドピース!

    バイバイ~

     

    参考文献

    この記事の内容は、下記の文献に詳しく載っています

  • ウェブサイトの無駄に長いアニメーションはいったい誰を幸せにするのか

    ウェブサイトの無駄に長いアニメーションはいったい誰を幸せにするのか

    ウェブサイトにアクセスすると、たまに長ったらしいオープニングアニメーションを見させられることがあります。

    ユーザーは、サイトにアニメーションを見に来ているわけではなく、情報を知りたくてアクセスしているので、5秒間のアニメーションですら煩わしい。そこに残る感想は「お~イケてるサイトやん」ではなく、「アニメーションなっが。」というマイナスなイメージのほうが圧倒的に強いです。

    よくある、スクロールするとふわっと要素が現れるやつ。あれも、0.2~0.3秒くらいならまだ許容できますが、それ以上長いと、出てくるまでの待機時間が煩わしく感じられるようになります。

     

    この無駄に長いアニメーション、いったい誰にメリットがあるんでしょうか?

    「ユーザー」…時間を奪われる。メリット一切なし
    「クライアント(サイトオーナー)」…「我がサイトええ感じやん」と思える。しかしユーザーはよく思ってない→コンバージョン遠のく→結果デメリットのほうが強い
    「デザイナー」…ユーザビリティを下げるためのアニメーションを考えさせられる。疲れる。
    「コーダー」…疲れる。
    「制作会社」…「イケてるサイトを作っている」とぱっと見思われやすいが、そう思ってくれるのはリテラシの低い顧客がほとんど。とはいえ、リテラシの高い顧客はアニメーションはいらないと言ってくるので、そこまでデメリットはない…かもしれない。

    以上、残念ながらメリットはほぼありません。

    そもそもユーザビリティが下がる時点でウェブサイトとしてはアウトです

     

    なぜここまで誰にもメリットがないアニメーションをつけたがるのか。それはやっぱり、「イケてるサイトを作っている」アピールをしたいんだと思うんですが、本当にイケてるサイトというのは、ユーザーの満足度を一番に考慮するべきです

     

    じゃあ何すか?アニメーションはいらないってことすか?

    アッ、ち、違います、そうじゃないです。

    アニメーションはつけることで、確かに「いい感じのサイト」とユーザーに思わせる効果はありますし、特徴的なアニメーションであれば、サイトオーナーや制作者に興味を持たれるきっかけになります。

    大事なのは、「ストレスを感じるほど長くならないように心がける」です。

    オープニングアニメーションも3~4秒ならまぁ見れますし、ホバーやスクロールアニメーションも0.2~0.3秒のアニメーションであればストレスにならず、逆にちょうど良いスピードのアニメーションは気持ち良く、ユーザーを飽きさせないスパイスになります。

    長いアニメーションが有効な場合もある

    例えば、クリエイターのホームページだったり、サイト内の情報ではなく、サイト自体を見てほしい場合。

    あとは、商品のLPなどで、商品をしっかり魅せたい場合。

    こういうときは、長いアニメーションでも、魅力的であればプロモーションとなりますので、非常に有効です。

    おわり

    アニメーションでユーザビリティが下がるなんてことはクライアントは知る由もありませんので、だいたいは提案側の責任です。

    ウェブディレクターは、提案の際に無駄に長いアニメーションをつけたいと言われたら「ユーザビリティが下がる=コンバージョン率に影響するのでオススメしません」とちゃんと言いましょう。わざわざサイトからの売り上げを下げるために不要な実装工数を支払うなんてほとんど詐欺みたいなもんです。
    それでもつけたいと言われたら、つけるしかないですけどね。

    ではでは、ストレスフリーでイケイケなアニメーションを実装しましょう!

    バイバイ~

  • スライス卒業!イラレからスマートに画像を書き出す方法3パターン

    スライス卒業!イラレからスマートに画像を書き出す方法3パターン

    昨今、XDでWebデザインをするのがだいぶメジャーになってきましたが、イラストレーターでデザインをする人はまだまだ普通にいますので、コーダーもイラレからの画像書き出し方法を知っておきましょう。

    昔はスライスという方法でがんばって書き出していましたが、今はもっと便利にサクッと書き出せる方法があります。

    それが、アセットの書き出しです。

    今回はアセットの書き出し方法と、それが使えないときに使う緊急用書き出し方法2パターン、計3パターンをご紹介します。




    方法1.アセットの書き出し

    これを知るまでは、イラレでデザインがきたら書き出しがめちゃ面倒だから発狂しながら生きてきましたが、この方法を知ってからガラリと人生変わりました。おそらく書き出しにかかる作業が5分の1くらいにはなりました。

     

    まず、書き出したい画像をドラッグで選択し、右クリックして「書き出し用に追加」→「単一のアセットとして」を選択します。


    ちなみにここで「複数のアセットとして」を選択すると、ドラッグで選択した画像群をバラバラに書き出すことができます。これもすごい。

     

    すると下図のように、「アセットを書き出し」ウィンドウが出てきます。

     

    このウィンドウ内で、書き出し用の設定をします。

    名前を変えたり、画像を追加したり…

    書き出し形式を設定したり…(※複数設定すると、複数の形式で書き出されます!)

    これだとSVG形式もパパっと出てきます。すごい。

     

    あとは書き出したい画像をCtrl+クリックとかShift+クリックとかで複数選択して、書き出しボタンを押せばザーッと書き出されるわけです!

    と、書き出す前に1点、設定を見ておきましょう。

    ウィンドウ右上のメニューボタンをクリックし、「形式の設定」を選択。

    ここで書き出す形式について設定できるんですが、JPGもPNGも「アンチエイリアス」を「アートに最適」にしましょう。これをしとかないとガビッガビになります。

    どうでしょう。アセットの書き出し、やばいですね。

    方法2.アートボードサイズでクリップ

    アセットの書き出しは便利なんですが、デザインのやり方によっては、例えばマスクを使っている場合などは書き出し後に余計な余白ができてしまったりします。

    これはしかたないみたいで、別のツールを使って余白を切るのもいいんですが、それもめんどくさいので、できればイラレ内でなんとかしたい。

    そんなとき、もうほとんど裏技みたいなもんなんですが、アートボード機能を駆使して書き出す方法があります。

     

    まず、書き出したい画像をドラッグ。そして左にある「アートボードツール」を選択します。

     

    そしてアートボードツールが選択された状態で、画像をダブルクリックすると、クリックした部分だけが独立したアートボードになります

    画像がうまく全部選択できないときは、画像をグループ化するなどしてください。

    アートボードが作成されたら、そのままCtrl+Alt+Shif+S(MacはOption + Shift + Command + S)でWeb用に保存のウィンドウを開きます

    この画面で、右側の「アートボードサイズでクリップ」を選択すると、なんということでしょう。選択したアートボード部分のみが保存できるのです!

    保存したあとは、Ctrl+Zでアートボードを元に戻しておきましょう。

    方法3.新規ファイルにコピー

    だいたい今まで紹介してきた方法でいけますが、それでもできない場合の最終手段。

    書き出したい画像をコピーし、メニューから新規ファイルを作成。

    作成するファイルの大きさはなんでもいいですが、Web(大型)であれば無難。

    そしてコピーした画像を貼り付け。

    はい、あとはこれを保存するだけですね!

    今度は「アートボードでクリップ」のチェックを外しておく必要があります。

     

    おわり

    1. アセットの書き出し
    2. アートボードでクリップ
    3. 新規ファイルにコピー

    以上3点ご紹介しました。

    もし今スライスで頑張っている人がいたら、この方法で書き出してみると人生変わると思います。

     

    それでは、バイバイ~!