カテゴリー: 未分類

  • html,cssでいい感じの「表」的なものを作る

    html,cssでいい感じの「表」的なものを作る

    こんにちは、すなです。

    今回、サイト制作で学習した簡易的な表的なものの作り方を皆さんにも共有したと思います。

    少しでもレパートリーに入れていただけたら嬉しいです。

    こんな表を作りたい

    今回、皆さんに共有したい「表的なもの」とは以下の様なものを指します。

    「表的なもの」

    上の画像は大阪でフリーランスエンジニアとして活動されている徳田優一さんのポートフォリオから拝借から拝借しました。

    表と言えば表という様な、ゆるいした感じの表になります。

    tableタグを使う

    基本的にHTMLを用いて表を作成したいときは「tableタグ」というそれ専用のタグを用います。

    簡易的に説明すると、trタグとth、tdタグというタグをtableタグと一緒に使って表を作成できます。

    しかし今回はtableタグを用いずに、「dlタグ」を使って上記に様な表を作成したいと思います。

    dlタグとは

    dlタグは「Definition List」の略で、「定義リスト」を表すタグらしいです。

    dlタグを用意して、中に定義する用語(Definition Term)を書くdtタグと、用語の説明(Definition Description)を書くddタグを用いてリストを作成します。

    <dl>
        <dt>用語</dt>
        <dd>用語に対する説明</dd>
    </dl>

    ざっとはこんな感じです。

    dlタグを使ってゆるい表を作る

    今回は左側の名前の要素にdtタグを用い、右側の中身の要素にはddタグを用います。

    実はdtタグとddタグをそのまま使っても、画像の様なレイアウトにはならないのでcssを用いていい感じのレイアウトにしたいと思います。

    floatを使う

    dtタグとddタグをデフォルトのまま使うと、いい感じにddタグが改行されて実はレイアウトが2行になってしまいます。

    それを防ぐために、dtタグに対してfloat: left;を用いて要素を浮かせます。浮いたdtタグに対して、ddタグが回り込んで1列になります。

    これだけだと、dtタグの長さに合わせたddタグが回り込むので、画像の様にddタグが綺麗に1列に並びません。

    そこでddタグにmargin-left: 〇〇px;を追加して、左幅を揃えることができます。

    具体的にはこんな感じです。

    (HTML)
    <dl>
        <dt>用語</dt>
        <dd>用語に対する説明</dd>
    </dl>
    
    (CSS)
    dt {
        float: left;
    }
    dd {
        margin-left: 50px;
    }

    こんな感じでcssを追加してあげると、いい感じの表が作れます。

    flexを使う

    次はまた別のアプローチを紹介します。

    デフォルトだと要素が改行されて2列になってしまうので、今回はdisplay: flex;を追加して1列にしたいと思います。

    簡単に説明すると、display: flex;は要素を伸長・収縮させることができます。

    ざっくり言うと、要素がふにゃふにゃになって伸び縮みしますよって感じです。

    要素がふにゃふにゃになるので、要素は改行されずに1列になります。

    親要素にdisplay: flex;を指定すると、子要素にはwidthでそのふにゃふにゃの幅を指定できます。

    例えばdtタグが親要素の20%、ddタグが80%にしたいときは以下の様になります。

    (HTML)
    <dl>
        <dt>用語</dt>
        <dd>用語に対する説明</dd>
    </dl>
    
    (CSS)
    dl {
        display: flex;
        flex-wrap: wrap;
    }
    dt {
        width: 20%;
    }
    dd {
        width: 80%;
    }

    細かいこと言うと、dlやddタグはデフォルトでcssが付いているので、それは適宜リセットしてください。

    おすすめはどっち?

    個人的には2つ目のdisplay: flex;を追加する方がいいかなと実感しています。

    レスポンシブを使えば、ケータイで見るときのレイアウトも調整できるので(まあそれを言えば全部でできることはできるんですが)、全体としてやりたいことに対してアプローチがシンプルかなと思いました。

    皆さんもWebサイト制作、是非一緒に頑張りましょう!

  • 初めてサイト模写した結果

    初めてサイト模写した結果

    こんにちは、すなです。

    今回は「大学卒業までに20万円/月を稼ぐ人の話」のシリーズの第一弾になります。

    この記事では、大学生である僕が20万円を稼ぐまでどういう過程をイメージしているかを書いているので、こちらの記事も是非チェックしてみてください。

    https://sunablog.tokyo/2021/02/11/post-297/

    さて今回は、その過程でお話した「ポートフォリオ」を作るという話をします。

    具体的には、僕がサイト模写で作成したサイトを紹介して、その模写にかかった時間や労力、技術のレベル的な話もできたらなと思っています。

    今回は「初級レベル」のサイト模写

    さて、ポートフォリオを作成するに当たって、僕は久々にWeb制作をすることになりました。

    普段からプログラミングには触れているのですが、ただのプログラミングとWeb制作では(個人的には)全くアプローチや扱うジャンルが違うと感じます。

    自転車の趣味サイト

    暫くぶりにサイト制作することになったので、ウォームアップがてら最初に模写するサイトは初級程度のサイトにすることにしました。

    今回、参考にしたサイトはこの趣味の自転車サイトになります(ちなみに、このサイトはサイト模写のやり方を調べるときに見つけたこのサイトから見つけました)。

    恐らく趣味が自転車の人がプライベートで公開しているサイト、という想定のサイトになります。

    多分、この方もサイト模写の一貫で作成したサイトだと予想しています。

    実際の制作物はこちら

    僕がこのサイトを参考にして模写したサイトはこちらになります。

    本家のサイトとは同程度のクオリティを保てたかなと思っています。

    所要時間は5時間

    正確に計測はしていないのですが、このサイトを制作しきるのに体感で5時間程度かかりました。

    久々のサイト制作過ぎて、昔ならスムーズにできた箇所で躓いて、時間がかかってしまいました。

    この量で5時間は多分かなり遅い方だと思います(というか遅いです)。

    ちなみに、サイト模写の際に僕が詰まった技術的なポイントも並行して別の記事にしていますので、そちらも合わせてご覧ください。

    ページ数は1枚だけ

    ページ数は1枚で、右上のリンクらしきボタンも同一ページに遷移するだけなので、サイト量はとても少ないです。

    画像はフリー素材

    サイトで用いている5つの画像は全て「Pixels」という自由に画像が使える海外の画像サイトから拝借しています。

    最大画質でダウンロードしたので僕が模写したサイトでは少し画像に読み込みに時間がかかってしまいます(汗)。

    HTML/CSSだけでok

    こちらのサイトを制作するに当たって、僕が用いた知識は

    • HTML
    • CSS

    だけです。プログラミング初心者でも時間をかければ作成できるレベル感のサイトを選びました。

    少しだけ技術的な話で深掘りすると、ケータイでもレイアウトが崩れない様にレスポンシブ対応しました。慣れていない初心者の方だと、そこに時間がかかってしまうかも知れません。

    加えてJavaScrpitやPHPも一切用いていないので、サイトには何も動きを加えていません。

    1万円でも利益

    僕は大学生で、現在のアルバイトの給料が1100円なので、この程度のサイトを1万円(かなり安い気はしますが)で受注して5時間で納品すれば、同じ時間アルバイトするよりも圧倒的に効率はいいです。

    また今回の模写サイトは1枚だったので、中身が異なる他のページも複数枚制作すれば、単純計算でページ数分単価を上げられます。

    いいスタートになった

    JavaScriptもPHPも使用してない静的なページではありますが、昔に勉強したことや、新しい知識にも出会えて、いいスタートになったかなと思います。

    少しづつサイトのレベル感を上げていって、クライアントにサイト制作を任せてもらえる様なエンジニアになりたいですねっ!

  • inline-blockを中央寄せする方法

    inline-blockを中央寄せする方法

    どうも、すなです。

    今回はWeb制作で用いるテクニックの一つになります。

    内容はタイトルの通りで、「inline-block要素を中央寄せする方法」になります。

    できそうでずっと躓いていたので、まとめました。

    親要素にtext-align: center ;を用いる

    先に結論を書いてしまいました。上記の見出しの通りです。

    では詳しく解説。

    inline-block要素自体は中央寄せできない

    inline-block要素自体はblock要素とinline要素の中間的な存在で、両者の下記の特徴を兼ね備えています。

    • block要素と同様に、要素自体にheightやwidth、またmarginとpaddingが指定できる
    • inline要素と同様に、要素自体が流動的で複数のinline-blockと共に横並びになる

    inline要素の特徴を持ちながら、block要素の特徴も持っている非常に優秀な要素です。しかし便利である一方でblock要素とは違い、要素自体が流動的で要素が左詰めになってしまいます。

    要素自体ではなく、親要素にcssを用いる

    inline-block自体には上記の様な特徴があるので、inline-block自体ではなく、その親要素に対してcssを追加します。

    それが先にも言った通り、text-align: center;です。

    具体的には以下の様になります。

    <!-- HTMLファイル --->
    <div>
        <span>こんにちは</span>
    </div>
    
    /* CSSファイル */
    div {
        text-align: center;
    }
    span {
        display: inline-block;
    }

    親要素にtext-align: center;を適用することで子要素のinline-block要素が中央寄せされます。

    これで皆さんもWeb制作マスターですっ!

  • 左上にロゴ、右上に横並びliの方法

    左上にロゴ、右上に横並びliの方法

    どうも、すなです。

    今回の記事は忘備録に近いです。

    久々にWeb制作をして、最初にぶち当たった壁だったので二回も同じことを調べる時間をなくすために書きました。

    内容はタイトルの通りです。Webサイトにありがちな、

    • headerの左上にロゴ(やタイトル)
    • headerの右上には横並びになっているli

    これを実装する方法を紹介します。やりたいことに対して、実装に意外と時間がかかってしまったので、これからはこれで解決したいです。

    ulにfloat: right;を設置

    上記の見出しに結論を書いちゃいました。もう少し詳細を話します。

    例えば、以下の様なheaderがあるとします。これを横並びにします。

    <div>
        <h1>Title</h1>
        <ul>
            <li>List1</li>
            <li>List2</li>
            <li>List3</li>
        </ul>
    </div>

    h1タグにタイトルが入り、その下のulタグにはリンクが入る想定のliタグが複数あります。このliタグにはfloat: left;でリストが横一列になるところまでは把握されている方、多いかと思います。

    問題はその後です。今度はその横並びのliをh1タグと同じ高さで横一列にしたいですよね。その方法は以下です。

    h1 {
        float: left;
    }
    ul {
        float: right;
    }
    li {
        float: left;
    }

    見出しにも書いた通り、左上に配置したい(今回で言う)h1タグに対してfloat: left;で配置、最後に横並びになっているliタグを囲っているulに対してfloat: right;でulタグごと右上に配置します。

    これで皆さんもheaderのメニューのcssには迷わなくて済みますね!

    それでは良いコーディングライフを。

  • 大学卒業までに20万円/月を稼ぐ人の話

    大学卒業までに20万円/月を稼ぐ人の話

    どうも、すなです。

    人生で何回目か分かりませんが、親のおかげでまた春休みを頂くことになりました。お父さん、お母さん、いつもありがとうございます。

    さて今回はそんな長期休暇を利用して、時間があり余っている大学生がプログラミングでお金を稼ごう、という話をします。

    社会人になる前にスキルつけとこ!

    やみくもに「稼ぐぞ〜!」と言っても、勝手にお金が銀行に振り込まれる訳ではないので、そのやり方を説明したいと思います。

    案件受注までの流れ

    理由などの説明はあとでするとして、先に結論から話します。下の流れが答えです。

    月に20万円を稼ぐ

    例)10万円の案件を月に2つこなす

    ①スキルを付ける
    ②営業する

    ざっとこんな感じかなと思います。

    スキルを付ける

    エンジニアは専門職です。スキルを磨いて、常に自分の牙を磨いておかないといけません。ではWebサイト制作におけるスキルとは一体なんでしょう。個人的には以下のスキルがあれば大丈夫かなと思います。

    • HTML/CSS
    • JavaScript (≒jQuery)
    • PHP
    • ※wordpress
    • ※SEO

    基本的にはそのプログラミング言語を勉強しましょうという話なのですが、wordpressは言語ではなくPHPを用いたソフトウェアで、SEOもプログラミング言語ではないので、一応米印(※)にしておきました。これくらいできる様になれば、正味どこかしらのWeb制作の会社に就職できるくらいかなとは思います。

    営業する

    自分のスキルが十分にあってもそれを販売する方法がないと、せっかく身に付けたスキルも宝の持ち腐れです。それを周囲の人に宣伝して、Webサイトを制作して欲しい人とマッチしないといけません。僕が考える今できる営業方法は以下です。

    • クラウドソーシング
    • 知り合いなどに個人的に営業 (営業というかお手伝い)
    • クラウドシーシング経由でWeb制作会社から受注
    • ブログでプログラミングのことを発信しつつ、それを担保に受注
    • 営業職の知人に副業的にWebサイト制作の営業もしてもらう

    営業はやったことないのでどこまで現実的か分かりませんが、ざっと思いつくのはこんな感じでしょうか。

    目標との差を埋めるために必要なこと

    ①今の僕に足らないスキル

    リストアップしたスキル、すなさんは全部あるの!?って話ですが、残念ながら今の僕は持ち合わせていません。何が足りてて、何が足りてないのか一先ず整理しましょう。

    • HTML/CSS → 十分、多分困らない
    • JavaScript, jQuery → 最低限はできる、分からなくても調べたらできる
    • PHP → 十分、インターン時代の専門言語だった
    • wordpress → ダメ、今まで避けてきた
    • SEO → ダメ、やったことないけどめちゃ興味はある

    ②営業するのに必要なこと

    営業と言っても、先にリストアップした方法はクラウドソーシングを利用したり、それ経由でWeb制作会社から受注だったり、営業職の知人に代行してもらったりなので、実際に僕が足を動かして営業する訳ではありません。

    じゃあ後は何が必要なのかと言ったら、相手に「この人だったら自分がほしいWebサイトを作ってもらえそうだな」って思ってもらうためのポートフォリオとそれを細分化した簡易的な見積書かなと考えました。

    Webサイトが欲しい
    →でもスキルがない
    →外注して専門家に頼もう
    →自分でできないからエンジニアに具体的な指示もできない

    ⇦「こういうことなら〇〇円でできますよ」と最初に自分の手札を見せて、相手に好きなものを選んでもらう(=お店で店員さんにオススメを聞くときも、多分皆んな同じことをされてる)

    直近でやること

    よって①スキルを磨くのと、②ポートフォリオを充実させて、自分が何ができるのか(=自分の商品)を理解することが、今は直近でやることかなと思いました。

    具体的にはwordpressの勉強をして、そのスキルでポートフォリオを作る。実際に案件を獲得したら、練習で用いたサイトの代わりに実際の制作物をポートフォリオに組み込む。こんな感じかなと思います。

    【結論】

    結構殴り書きみたいな感じで書いちゃったんで、綺麗にはまとまってないかもですが、やりたいことは伝わったと思います。また進展があったら続きを書きたいを思います。ばいばい〜♪

  • アルコール消毒の仕組み、知らないっしょ?

    アルコール消毒の仕組み、知らないっしょ?

    こんにちは、すなです。

    今回は僕のトリビアブログです。

    2020年からCOVID-19(≒コロナウイルス)が世界中で流行して、特に高齢者を中心に多くの重症患者を出しています。この記事を書いている僕はまだ20代なので統計的には重篤化の可能性が低いですが、実家のおじいちゃんとおばあちゃんがずっと心配です。

    現在はいわゆるコロナ禍で、頻繁に「アルコール除菌」や「アルコール消毒」という言葉を耳にする様になりました。このとき僕は”アルコール消毒ってどういう仕組みで殺菌してるんだろ”って疑問に思ったので、今回は「アルコール消毒の仕組み」について書きました。

    エンベロープの有無による分類

    2020年から流行しているCOVID-19ですが、どうやらこれは感染症(=ウイルスによって引き起こされる病気自体)のことを指す用語らしく、この感染症をひこおこすウイルスは「SARS-CoV-2」という名前らしいです。多分このSARS-CoV-2に感染するとCOVID-19が発症する、っていうニュアンスですかね。

    また普段僕たちが呼んでいる「コロナウイルス」も実はウイルスの総称の1つで、コロナウイルスにはSARS-CoV-2以外の他のウイルスも含まれています(普段風邪をひくときのウイルスもコロナウイルスに分類されているらしいです)。

    ウイルスを分類するときに、そのウイルスに「エンベロープ」があるかないかで区別することがあります。

    ウイルスにはエンベロープ(envelope)という膜で覆われているものとそうでないものがあります。「Envelope」は英語で「封筒」を意味する単語ですが、エンベロープウイルスはエンベロープの中にカプシド(=タンパク質の殻)と核酸(=遺伝子)を含んでいます(エンベロープがないウイルスはこれらが露出しています)。このエンベロープには突起がついているのですが、コロナウイルスはこの見た目が王冠に見えるため、王冠を意味するギリシャ語の「corona」から命名されました。

    ちなみにエンベロープを有するウイルスを「エンベロープウイルス」といい(そのままです笑)、一方でエンベロープがないウイルスを「ノンエンベロープウイルス」といいます(これもそのままです笑)。有名なエンベロープウイルスにはインフルエンザウイルスが、ノンエンベロープウイルスにはノロウイルスがあります。

    アルコールでエンベロープを破壊する

    SARS-CoV-2(新型コロナウイルス)もエンベロープを有しているため、エンベロープウイルスに分類されるのですが、このエンベロープは大部分が脂質で構成されています。よってエンベロープはアルコールなどの有機溶媒に溶けやすく、アルコール製剤の主成分であるエタノールで破壊されます。

    エンベロープを破壊されるとウイルスは感染や増殖できなくなり、感染力を失います(=不活性化)。

    上記の理由でアルコール製剤による消毒はコロナウイルスに有効だと分かっています。

    逆にノンエンベロープウイルスはこのアルコール消毒に強く、アルコール製剤が効きにくいです。よってこれらのウイルスには塩素系消毒剤を用いて殺菌します。

    他の方法によるエンベロープの破壊

    有機溶媒を用いた消毒以外にもエンベロープウイルスを不活性化する有名な方法が存在します。それは石鹸による手洗いです。石鹸に含まれる界面活性剤はエンベロープの成分である脂質を分解して溶かすので、これもウイルスの不活性化に有効であるとされています。

    【結論】

    今回は「アルコール消毒がなんで有効なのか」について調べてみました。アルコールがウイルスを消毒する過程が気になっていたので、ある程度プロセスが理解できて良かったです。

    でもまだ気になってるのは、「エンベロープを破壊すると殺菌できるなら、初めからエンベロープがないウイルスはどうなってるん?」ってところですかね。

    5,6回目(?)の春休みなんで、発信がてらたくさん勉強していきたいですね。

  • LPサイト制作で痛感した必要なスキル

    LPサイト制作で痛感した必要なスキル

    皆さん、こんにちは。すなです。

    最近、本業の方が少し落ち着いてきたのでフリーランスの活動を再開する様になりました。

    先日、「会社のLPを作成してほしい」という旨の案件を受注いたしました。その時に痛感したフリーランスエンジニアとして持つべき能力を紹介したいと思います。

    「分からないから外注している」という事実を理解すべき

    先日僕はある案件をとあるクラウドソーシングのサイトで受注しました。クライアントは企業の方で、ご依頼内容は「会社のランディングページを作成してほしい」というものでした。

    この案件を見つけたときの僕の頭の中は以下です。

    今までLP作ったことないけど、クライアントの参考サイト見た感じシンプルだから、他より低価格で提案して、受注できたら頑張るか。

    この目測が大きな誤りでした。その結果、僕はこの案件を最後2徹して納品しました。

    LP制作で必要なスキル

    LP制作には以下の能力が必要です。

    • サイト自体を作る → HTML、CSS、WordPressならPHPも
    • ページ内のコンテンツを作る → IllustratorやPhotoshop

    Webサイトを作るの自体はHTMLやCSSなどのプログラミングや、それをサーバーにアップロードするなどのパソコン周りの能力が必要になります。しかしそのページの中身の文章や画像・イラストにはIllustratorPhotoshopなどのスキルが必要になります。

    受注してから後悔

    実際に案件を受注してクライアントと話を進めるうちに「LP制作はプログラミングだけのスキルじゃ無理」って事実に気付きました。その参考サイトは割とシンプルで、その時の僕にはプログラミングだけでいけそうに見えました。プログラミング以外にもデザインのスキルが必要だと言うことに気付きました。その時はかなり死にたい気持ちになりました。

    納期は近いし、案件は僕のスキルを大幅に超えてるし、今更断れないし、どうしよ、、、。

    「鬼模倣」&「鬼ググり」でなんとかなった

    どうにもならないことを悲観してもしょうがないので、僕はクライアントから頂いた、参考にしたいWebサイトをめちゃくちゃ観察し、鬼の様に模倣することにしました。お陰で0から作るのではなく、参考サイトと同じ風に見える様に作業すればいいやと思える様になりました。

    そこからは怒涛の鬼ググりです。

    たまたまIllustratorをインストールしていたので、あとは鬼の様に使い方を調べて、なんとか参考サイトの画像と同じ様に見える様に鬼作業しました。

    案件を受注した日から納品まで4日間しかなく、最後は2徹しました。しかし飲まず食わずの4日間に鬼模倣&鬼ググりをしたお陰で最後は無事に納品。クライアントからokを貰い、その日は久々に0時に布団に入りました。

    勉強になったこと

    この案件はかなり勉強させていただくことが沢山でした。

    LPはプログラミングだけでは作れない

    まず、LPはプログラミングスキルだけでは作れない、と気付かせてもらいました。今回の案件ではプログラミングは1割くらいで、残りの9割の時間はIllustratorの使い方を調べてました。

    個人だと限界がある

    次に、個人だと限界がある、というのも分かりました。誰かが言ってるのを聞いたことあるのですが、

    早く行きたければ1人で行け、遠く行きたければ皆んなで行け。

    1人だとスピードは早いのですが、長持ちしない。グループだと時間はかかるけど、大きな力で遠くに行ける。本当にそうだなと思いました。

    別にこの案件を1人でずっとやる必要はなくて、デザイナーやIllustratorやPhotoshopが使える人が知り合いにいれば、その人に頼んで自分はプログラミングだけをやれば良いですね。そしたら僕ももっと寝れたと思います。

    最後はなんとかなる

    最後に、これが1番勉強になったのですが、結局は何とかなる、と知りました。

    クライアントからヒアリングしたときはかなり絶望して、「なんでこの案件取ったんだろう、、、」と後悔しました。

    しかし、寝る時間も削って(あまり良くはないですが、、、)納期に遅れるなら頂く報酬も全返しして、自分では無理なら、無理な箇所を自分が外注して、身銭を切ってでもクライアントに商品をお渡しする。

    最悪、自分がその案件を納品できなくて、とても怒られたとしても死ぬわけではないですし、隣の部屋の人は平気で生き続けます。宇宙はとても広いので、目の前の後悔の囚われないで、一旦落ち着いて、自分ができることをやりましょう。

    【結論】

    最後はなんだか宗教じみたお話みたくなっちゃいましたが、つまりは全力で頑張ろうというお話です。あれ、徹夜とかしたくないからエンジニアになったんじゃないっけ、、、。

    まあ一旦忘れて次の案件でも探しましょうか。

  • CUIとGUIってなに?

    CUIとGUIってなに?

    この前、仕事で完成物を提出しようとSourcetreeを久々に開いたらエラーが起きて、その場ですぐにプルリクを作成できなかったことがあった。エラーを解決しようとSourcetreeについて調べたら「SourcetreeでgitをGUIで操作できる」と書いてあった。「GUI?」ってなったから、調べたのをまとめてみた。

    そもそもUIとは

    結論から言うと、GUIは「Graphical User Interface」の略で、CUIは「Character-based User Interface」の略である。GUIはユーザーインターフェース(UI)がグラフィカルで、CUIはユーザーインターフェースがキャラクターベースドになっている。まずはUIが何かってところから見ていこう。

    ユーザーと機械の接点

    ユーザーインターフェースは一般にUIと省略して使われることが多い。そのUIとは一体なんなのか。それは「ユーザーと機械の接点」全般を意味する。

    日本語で「ユーザー」は「利用者」、「インターフェース」は「接点」を意味する。例えば、あなたがスマホを使いたい時、iPhoneだったら本体の右側面に電源ボタンがあると思う。そのボタンを押すとiPhoneは画面がつく。これはUIの1つだ。iPhoneの電源をつけるための、「あなた」と「機械」の「接点」である。他にもパソコンでデスクトップからGoogle Chromeのアプリのアイコンを押すと、Google Chromeのブラウザが立ち上がり、画面に表示される。このアプリも、「あなた」と「機械」の「接点」である。洋服がしまってあるタンスの取手もあなたがタンスを開くための接点、UIと言えるだろう。例を挙げるとキリがないけど、世の中にあるもののたくさんはUIの側面を持つ。

    パソコンにおけるUI

    時をGUI・CUIの話に戻そう。Gのグラフィカルは英語で「絵画的な」という意味。一方で、Cのキャラクターベースドは、キャラクターが「文字、記号」を意味するから、「文字ベースの」という意味がある。つまり、GUIは視覚的なUI、CUIは文字ベースのUIという意味になっている。

    GUIは見た目で操作

    GUIはUIがグラフィカルだから、例えばパソコンのデスクトップ上のファイルを開くは、そのファイルのアイコンをクリックするとファイルが開ける。ユーザーとファイルの接点は画面上のアイコンである。

    sample_folderに入っているindex.html
    index.htmlのファイルをクリックして開いた時

    CUIはコマンドで操作

    一方で、CUIはUIが文字ベースだから、同じくデスクトップ上のファイルをCUI的に開こうと思ったら、例えばターミナルを開いてディレクトリを移動してvimコマンドで開くという方法がある(恐らくエンジニアじゃ無い人は何を言っているのか全然分からないと思うけど)。

    ターミナルで見たsample_folderとindex.html
    vimで開いたindex.html

    Apple社の「Macintosh」が登場

    今の様にパソコンが普及する前は、元々コンピューターを操作する方法はCUIしかなかったらしい。一部の技術者(エンジニア)が文字ベースの操作を行って、知識が無い人が端から見ると何をしているか全く分からない様な状態だった。

    それがApple社のMacintosh(通称、Mac)が登場し、多くにユーザーに広まったことによってGUIが大幅に浸透したと聞いたことがある。

    【結論】

    プログラミングを始めたての人は見た目でも使いやすいVSCodeなどのエディタを使うことが多いと思う(自分もずっと使っている)が、ある程度技術力がつくとvimで操作する方がラクになるらしい。僕も早くvimmerになりたいなぁ。

  • ::beforeとは

    ::beforeとは

    Webサイト制作の勉強をしている時に、参考にしているWebサイトに「::before」という要素があった。見たことはあったけど、ちゃんとその機能について調べたことなかったから、気になって調べることにした。

    before要素とは

    表面的に言うと「cssの擬似要素」らしい。全然意味分からんから、もう少し深掘りしてみよう。

    擬似要素とは

    まず擬似要素ってなんやねん、って話。「MDN web docs」によると、擬似要素は

    CSSの擬似要素はセレクターに付加するキーワードで、選択された要素の特定の部分にスタイル付けできるようにするものです。

    https://developer.mozilla.org/ja/docs/Web/CSS/Pseudo-elements

    と書いてある。文字の説明だと全然分からんから、実例を見て理解することにする。例えばこちら。

    <p class="hello">こんにちは</p>
    </style>.hello::first-letter {color: red;}</style>

    こんにちは

    上記の様にpタグで囲った「こんにちは」という文字列を、擬似要素でfirst-letterのcolorをredにすると、「こ」のみが赤色に変化する。

    次はこれ。

    <div>
      Hello, world!<br>
      This is Suna.
    </div>
    div::first-line {font-weight: bold;}
    Hello, world!
    This is Suna.

    こうやって書くと、divタグ中の最初の文章「Hello, world!」だけfont-weightがboldになる。

    要はHTML上では存在しない要素をcssで擬似的に作ることができるって感じかな。

    before要素で何ができるの?

    上記の例の様に、beforeを用いてできることを列挙してみる。

    <p class="line">私は2文目です。</p>
    .line::before { content: "私が1文目だ。"; }

    私は2文目です。

    本来コード上では「私は2行目です。」という文字列しか存在しないけど、ブラウザ上では「私が1行目だ。」という文字列がpタグの「私が2行目です。」の前に表示される。

    また、beforeとコンビのafterをセットで使って以下の様な表記もできる。

    <p>初めまして。</p>
    p::before { content: "「"; }
    p::after { content: "」"; }

    初めまして。

    上記の様にcssを書くと、ブラウザ上では『「初めまして。」』と表示される。

    また「サルワカ」に書いてあったのだが、FontAwesomeのアイコンを上手い具合に表示できるみたい!テンションが上がって、日本語が下手過ぎるので、これも例を見せて紹介しようと思う。

    <p>これはブックマークです。</p>
    p::before {
      font-family: "Font Awesome 5 Free";
      content: "\f02e";
    }

    cssでfont-familyに「Font Awesome 5 free」、contentにFontAwesomeのunicodeを書くと以下の様にFont Awesomeのアイコンが文章の前に表示されます。

    これはブックマークです。

    この様にbeforeを上手に使えば、HTML自体を操作しなくても表現したい要素をcssで追加的に記述することができる。

    【結論】

    beforeを有効に用いることができると表現の幅が広がるねっ!よく調べてみると擬似クラスってものもあるらしい。今度はそれについても調べてみようかな。

  • English Expressions #1

    English Expressions #1

    This is my studying diary. I write some new English expressions I learned during my study. Let’s go!!!

    Jacked

    well muscled, iron-bound, pumped.

    It means someone is super muscled. Imagine people like Arnold Schwarzenegger. He is a jacked person.

    at the end of the day

    something that you say before you give the most important fact of a situation.

    I’ve started studying English these days, but at the end of the day, I think I’ll forget everything.

    fair enough

    used to admit that something is reasonable or acceptable.

    I’ll eat the meat, and you eat the rice. Is it fair enough?

    when it comes to

    used to identify the specific topic that is being talked about.

    When it comes to Sushi, I LOVE tuna.