Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all 8679 articles
Browse latest View live

Google Fonts で一部の文字のみを利用する

$
0
0

tl;dr

<linkhref="https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;700&display=swap&text=Hello%2C+world%21"rel="stylesheet"/>

もしくは

@importurl("https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;700&display=swap&text=Hello%2C+world%21");

のように、 text=asdfとして必要な文字をURLエンコードして渡せばいい

経緯

英字のみを別の日本語フォントに変えたかったが、その日本語フォントには英字のみのセットがなかった

CSSには「英字のみこのフォント」みたいな指定はない(はず)ので、英字のみのフォントを font-familyの優先順位の高位に置き、次に日本語フォントを指定することにした

調査

公式ドキュメント
https://developers.google.com/fonts/docs/getting_started

リポジトリ
https://github.com/typekit/webfontloader

ドキュメントレベルでは、文字コードの範囲指定で渡す方法はなさそうだった

時間がなかったのでリポジトリは見てない

対応

全ての英字は全てのASCII文字を検索した

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 

URLエンコードしたものが以下

%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E

これを text=に指定

<linkhref="https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;700&display=swap&text=%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E"rel="stylesheet"/>

上記指定のうえ、

body{font-family:"M PLUS 1p","Hiragino Sans",sans-serif;}

とすると、英字のみが正しく別のフォントに置換された


BootStrap って,の文字数 x レイアウト問題の解決にも使える。グリッドシステムがすべてではなかった BootStrap 実装アプローチ

$
0
0

社内 SE の陰鬱

フロントエンド,バックエンドの開発分業体制が確立しており,それぞれのスペシャリストが阿吽の呼吸でコラボ。

そこには何一つ,無駄な作業がなく,きわめて合理的な開発プロセスのもと,見栄えはおしゃれ,サーバ側の処理は機敏かつ正確に動くという,理想のシステムが完成していく……

そういう開発現場もあると思いますが,おじさんは,もっと泥臭い環境でシステム開発をしています。

「75点のクオリティ」が好まれる開発現場にて

社内だけで使われる情報システムを開発する,いわゆる,社内 SE の世界にいる人間です。

言葉を選ばず表現すれば,「見てくれは多少アレでも,不具合がなく,長持ちして,将来の業務変化へも追従しやすいシステムを,スピーディに構築」という,業務実用面でのパフォーマンスが,何より重視される環境

買い物で言えば業務スーパー的な。

「あとちょっと,こだわりたかったのに……」

CSS の調整で,もうひと頑張りしたいと思っていたら,次から次へと新しい案件が発生して,「75点のクオリティ」を量産リリースする日々です。

グリッドシステムの恩恵が届きづらい「テーブル」

最近では,たいていのレイアウト調整は BootStrap が最適化してくれるので楽になりましたが,グリッドシステムの恩恵を受けづらいのが,テーブル

「BootStrap に救済されながらも,テーブルに悩まされるエンジニアって,自分だけだろうか?」

ひょっとしたら,世の中,同じ悩みを抱えたエンジニアがいるかも知れないという気持ちに背中を押され,アイデア共有の記事を書きます。

「エクセルと同じ」テーブルを欲しがる現場

「エクセルと同じレイアウトの Web 画面にして欲しい」

今までエクセルでやっていた業務を,Web システム基盤上に移植(システム化)するプロジェクトの要件定義現場では,とにかく耳にすることの多いフレーズです。

  • 長年使い続けて,愛着あるレイアウトは,ユーザにとっては「なくては落ち着かないもの」として,既得権益化しているケースも……
  • 大人数が使っているエクセルでは,一人ひとりの「こだわり」が染み込んでいて,誰がどこの列を参照・編集しているか分からない,巨大エクセルに成長しているケースも……

そもそも,Web システムと,スプレッドシートでは,目的や用途が異なっているため,まずは,情報システムの理解を啓蒙するところからスタートし,システム化によるメリットを引き出せるよう,辛抱強く対話を続けていくことになります。

「得る」よりも,「失う」に敏感な人間心理

対話に対話を重ね,「エクセルと同じ」テーブルにするという要件を避けられたとしましょう。

それでも,人間の心理って,「得る」ことよりも,「失う」ことに対する感覚のほうが敏感にできています。

今まで,エクセルだと一つのシート上で閲覧できていたものが,Web システムでは,いくつかの機能(照会画面)に分割されるとなれば,それだけでも,ネガティブに考える示すユーザがいても自然なこと。

現場へ妥協してもらったら,今度は,我々エンジニアの,腕の見せ所。

そう,ここから先が本題です(前置きが,長すぎますね w)。

テーブルで,1カラムでも多く救済するために

「できるものなら,一カラムでも,多く表示させられるようにしてほしい」

「あ,左右方向スクロールバーが出るのは,避けてね,あらかじめ言っておくけど w」

よく聞く無理難題は,何度も耳にしていれば,そのうち気にならなくなります(年の功というやつもあるかと思います)。

笑顔で聞いているフリをしておくのが,対人関係的にもコスパ最高です。

(1)とりあえず,ノーマルレイアウトで

とりあえずは,一カラムでも多く救済するための,スペース節約との戦いになります。

話を簡単にするため,三列構成のテーブルを使います(これが十列,十五列,……になっても,考え方は同じなので)。

NO名前年収から構成されるテーブルを考えましょう:

image.png

html(抜粋)
<tr><td>1</td><td>山田 花子</td><td>3千円</td></tr><tr><td>2</td><td>鈴木 一郎</td><td>10万円</td></tr>

何の工夫もないテーブルですが,これだと,長い文字列が表示されると,たちまちデザインが破綻します。

たとえば,名前の超絶長い人が,利用部門の中に一人でもいたら(ありえない具体例ですが w),それでパンクしちゃいますね:

image.png

html(抜粋)
<tr><td>1</td><td>じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじのぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこぴーのぽんぽこなのちょうきゅうめいのちょうすけ
    </td><td>10万円</td></tr>

いとも簡単に,テーブルレイアウトが破綻してしまいました。

何とか工夫しなければ,利用部門からクレームが出そうです。

(2)「横幅固定」作戦

一番,手軽なのは,スタイルを指定して,横幅を固定にするというアプローチ。

あくまでも例題なので,CSS ファイルとして,分離せずに書きますが……:

image.png

html(抜粋)
<tr><td>1</td><tdstyle="max-width: 5rem;">じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじのぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこぴーのぽんぽこなのちょうきゅうめいのちょうすけ
    </td><td>10万円</td></tr>

これで,テーブルのレイアウトが崩れるという結末を,避けられるようになりました。

「いい人」ばかりの利用部門だったら,このあたりで堪忍してくれるケースも少なくないでしょう。

(3)「冒頭情報だけ」大作戦

「一応,テーブルには表示できているけど,上下方向スクロールが出やすくなるから嫌だ」

横幅を指定したことによって,行が折り返してしまい,上下方向にスペースが,かさばってしまいました。

現物を目にすると,「後出しじゃんけん」で利用部門から改善要求が出ることは,あるある。

「テーブルには,グリッドシステムが応用しづらいけど,BootStrap で使えそうな機能,ないかな?」

藁にも縋るおもいで,BootStrap の公式ページを見ると,text-truncateなるクラスがあります:

image.png

Text - BootStrap

固定幅を超えたものは,ドット表示してくれるという便利なクラス。

「本当に,そんな都合のいいクラスが実存するもんかいな!?」と思いつつ,試してみると……:

image.png

拡大すると,固定幅を超えた部分については,ドット(…)表示になっていることが確認できます:

image.png

html(抜粋)
<tr><td>1</td><tdclass="text-truncate"style="max-width: 5rem;">じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじのぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこぴーのぽんぽこなのちょうきゅうめいのちょうすけ
    </td><td>10万円</td></tr>

コードも,text-truncateクラスを適用するだけという,非常にシンプルな実装。

可読性を下げるような,ややこしさもありません。

(4)「ツールチップ併用でどうだ」大作戦

text-truncateクラスを適用することで,固定幅におさまり,かつ,自動改行されて複数行エリアに膨張してしまうことも,なくなりました。

それでも,ひとつ,本質的な問題が残っています。

「だいぶスッキリしたけれど,文字列をカットするのではなく,やっぱ,全体を見れるようにしてほしい

人間,一つリクエストが適えば,欲は深まるものです。

同じく BootStrap 公式サイトで,今度は,ツールチップの機能を拝借して,実装します:

image.png

html(抜粋)
<tr><td>1</td><tdclass="text-truncate"style="max-width: 5rem;"data-toggle="tooltip"data-placement="top"title="じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじのぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこぴーのぽんぽこなのちょうきゅうめいのちょうすけ">じゅげむじゅげむごこうのすりきれかいじゃりすいぎょのすいぎょうまつうんらいまつふうらいまつくうねるところにすむところやぶらこうじのぶらこうじぱいぽぱいぽぱいぽのしゅーりんがんしゅーりんがんのぐーりんだいぐーりんだいのぽんぽこぴーのぽんぽこなのちょうきゅうめいのちょうすけ
    </td><td>10万円</td></tr>

テーブルのレイアウトを保持できる上,かつ,マウスを重ね合わせると,ツールチップで,文字列の全体を確認することができました。

これなら,ほとんどの利用部門は,妥協してくれると思います(たぶん)。

まとめ

奥深き,そして,悩み深き,Web システムのテーブルレイアウトという罠。

なんでもかんでもグリッドシステムの仕組みに乗せておけばひとまず安泰な,画面パーツ類(例:text, radio, checkbox, select など……)とは違った,熟練の求められるテーブルについて,できるかぎりシンプルで,応用もしやすい方法をシェアしてみましたが,いかがでしたでしょうか。

なお,本記事では触れませんでしたが,text-truncate利用する以外に,いろんな方法:

  • テーブルの中に,<td><input type="text"></td>というコーディングで,入力欄を埋め込み
  • JavaScript ライブラリで,スプレッドシートをブラウザ上にて実現する技術を採用

を試しましたが,実装コスパ,維持メンテのしやすさでは,本記事の方法がいまのところ,一番しっくりくるかなぁというのが,現段階での感想です。

ちょっと避けたくなるテーブルレイアウトの問題も,シンプルに考えてみようとすることで,いろんなアイデアが生まれることに,面白みを感じられるトピックですね。

Tsハロトレ15日目 ~画像作成のロードマップ~

$
0
0

HTMLとCSS概要

HTML 内→外

1.文書構造(マークアップ)
※h1~h4、p、リスト(3種類)、表、画像
2.HTML5.2新要素でセクショニング設定
※header,footer,main,section,article,aside,time他
3.div要素でレイアウトブロックを設定(class名)
4.文法チェック(HTML Validator)

CSS 外→内

1.リセットCSS(ブロックレベル要素の値を初期化する)
2.クラス名を利用してレイアウトブロックの外側から設定する
3.文字の装飾

ネット上から文章をお借りしてコーディングしていくと勉強

タグについて

h1はテーマの最優先見出し
pはテーマの要約

<divclass="container"><h1>テーマの最優先見出し</h1><p>テーマの要約</p></div>

ボックスモデル

ボックスモデル2.jpg

Braketsで色出し

カーソルをcolorやbaclgroundの値に合わせてCtrl+Eキーで色が出せる
ctrl+E.png

paddingとは

paddingを入れる=読みやすくする、ということです。

h1とpの関係

h1_to_p2.png

bodyの初期値

bodyの初期値はfont-sizeが16pxから

marginの相殺

h1{
margin-bottom:10px ;
}
p{
margin-top: 20px;
}

sousai2.png

読みやすい幅

16px × 40word = 640px が最大
640px と 300pxの2つのコンテンツを並べるイメージ

.container{width:640px;}

heightは下に乗っかるだけ

heightは下に乗っかるだけ2.png

paddingのせいで高さが変わる

heightは100px指定2.png

box-sizing

box-sizingは、値にborder-boxを指定すると、widthとheightで指定する幅と高さがボーダーボックスに対して適用されます。
border-box2.png

小セレクタ

小セレクタ2.png

Photoshop

初期設定

インターネット標準2.png

写真の選び方

写真は全体の印象の色で選ぶ
似たような色、全部赤っぽい色だと使いづらいので、
最初は赤、次は青みたいに選びましょう。

スマートオブジェクトに変換

インスタンス(分身)を作成

オブジェクト    分身
(元データ)  > (仮データ)
ラスタライズ     スマートオブジェクト

1つの画像や文字をオブジェクト(元データ)と言います。
スマートオブジェクトは、代わりのものを用意しているので、
拡大しても影響がないのはこのためです。
加工前提にするときは、スマートオブジェクトにせず、画像を拡大するときだけスマートオブジェクトを使いましょう!
Photoshopは拡大縮小の再計算ができないので、その際はスマートオブジェクトを使わないといけません。

CC以降
 1.アセット生成(レイヤー名で書き出し)
adobe先生3.png

全てのバージョン
 2.JavaScriptで書き出し
JSkaki2.png

アスペクト比

縦と横のアスペクト比を保ったまま拡大・縮小
バージョンによって、自由変形でShiftキーが必要かは変わります。

画像と新規作成のドキュメントの関係

1.コピー
2.クリップボードに格納(メモリを消費
3.新規作成(クリップボード内の大きさ)
4.ペースト

pixa_copy2.png

解像度

配置だと、中心に仮置きされます。
配置だと解像度が無視されます。

コピー&ペーストは解像度は変わらないです。
解像度が無視される2.png

メモリーを無駄にしない方法

ダウンロードした画像を開いて、ファイルを開く、でメモリを無駄遣いしないです。
その後、移動ツールに持ち替えて、下記画像のように行えば良いです。
アヒルを空に移す2.png

Ctrl+Shift+I(Invert) 選択範囲を反転

レベル補正

レベル補正2.png

Web画像作成のロードマップ

1か月目 ツールの使い方に慣れる
2か月目 小さい作品、バナー広告作成
3か月目 ワイヤーフレーム、カンプ作成
4か月目 カンプから画像を書き出して、ページ作成
5か月目 LP(1枚もの)作成
6か月目 ポートフォリオ(PDF)を作成

バナー広告(100個以上作成)

1週間に5個、1か月に20個、5か月で100個

バナーを短時間でできるのが就職には早いです。

【初心者でもわかる】CSSだけでアイコン画像の色を変える方法

$
0
0

どうも7noteです。cssだけで1枚のアイコン画像を好きな色に変える方法(IEにも対応!!)

IEはどうでもいいから簡単な方法が知りたい方はこちら↓
IEさえ、、IEさえいなければ・・・こんなに便利な機能が・・・

画像の書き出し方をちょっと工夫することで、1枚のアイコン画像の色をCSSだけで自由に変更できる方法があります。

簡単2ステップ

ステップ1

画像を書き出す時に、アイコンの形をそのまま画像として書き出さずに・・・

『アイコンの形をくり抜いた画像を書き出します!!』

こういう画像ではなくて、
noamal.png

真ん中が透明になります。(分かりやすいよう少し色を変えてます)

inversion.png

ステップ2
この画像を任意の場所に設置して、CSSでimgに好きな背景色を入れます。

index.html
<imgsrc="heart.png"alt="ハート"class="heart">
style.css
.heart{background:#fdb126;}

結果

noamal.png

まとめ

画像編集ツール(フォトショップ等)が必要ですが、全ブラウザ対応かつ簡単なのが魅力的。
linear-gradientを使えば単色だけでなくグラデーションにも対応できます。

ao.png
※背景色が違う色に変わる時は画像を作り直さなければいけなくなるので注意!

はたまたjsでアニメーションを入れればカラフルに色が変わるようなことも可能に。

herat.gif

おそまつ!

~ Qiitaで毎日投稿中!! ~
【初心者向け】HTML・CSSのちょいテク詰め合わせ

Laravel CSSの設定が反映されない

$
0
0

目的

  • Laravelののビューファイルに記載された要素の設定を行うためにCSSを記載したがCSSの設定が反映されなかった時の対処法を記載する

実施環境

  • ハードウェア環境
項目情報
OSmacOS Catalina(10.15.5)
ハードウェアMacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
プロセッサ2GHzクアッドコアIntel Core i5
メモリ32 GB 3733 MHz LPDDR4
グラフィックスIntel Iris Plus Graphics 1536 MB
  • ソフトウェア環境
項目情報備考
PHPバージョン7.4.3Homwbrewを用いて導入
Laravelバージョン7.0.8commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う
MySQLバージョン8.0.19 for osx10.13 on x86_64Homwbrewを用いてこちらの方法で導入→Mac HomebrewでMySQLをインストールする

実施条件

  • CSSの記載方法などに誤りがないこと。

実施情報

  • chromeを用いて確認を行った際の解決方法を記載する。

読後感

  • CSSの設定が正常にLaravelのビューに反映され、ブラウザから確認することができる。

詳細

  1. chromeを開く。
  2. 下記画像の矢印部分が指している部分をクリックする。

    新しいタブ.png

  3. 「設定」をクリックする。

    スクリーンショット_2020-09-04_22_59_26.png

  4. 「閲覧履歴データの削除」をクリックする。

    設定.png

  5. 「キャッシュされた画像とファイル」のみにチェックを入れて「データを削除」をクリックする。

    設定.png

  6. CSSで設定をしたLaravelアプリのビューを確認する。

[tips]画像をdivで囲み縦横比を指定することで読み込み時のズレを防止する

$
0
0

画像の読み込みを制することでイライラをなくす

自分のwikiの転記です。

Code

https://github.com/itizawa/loading-spinner

環境

お試しのため create react app を使っている

$ npx create-react-app my-app
$ cd my-app
$ npm start

コード

App.js
importReactfrom'react';import'./App.css';functionApp(){return(<divclassName="App"><headerclassName="App-header"><h1>LoadingSpinner</h1>
<imgalt=""src="https://penguin-ogp.vercel.app/api/ogp?text=こんにちは人類"/><p>イメージを表示します</p>
</header>
</div>
);}exportdefaultApp;

表示する画像は https://github.com/itizawa/penguin-ogpで生成したもの。

このコードには読み込み時の問題がある。
読み込みが遅い環境の場合、「イメージを表示します」のメッセージが読み込まれた画像によってその分だけ下にずれる。

gamen_test1 (1).gif

改善するために、img に height と width を指定しようとするがうまくは行かない

うまく行かない指定
<img width="100%" height="auto" alt="" src="https://penguin-ogp.vercel.app/api/ogp?text=こんにちは人類" />

読み込み後に初めて width と height の情報が得られるため、初めからその画像分の幅を取ることはできない。

縦横比を指定して読み込み前に幅を指定する

create react app では sass が使えないため、
$ yarn add node-sass
を実行しインストールしておく。

元の画像は、 w1200, h660 なので、高さ 1 に対して横幅は 0.55。
それを踏まえたコードが次のようになる。

js

App.js
importReactfrom'react';import'./App.scss';functionApp(){return(<divclassName="App"><divclassName="App-container"><h1>LoadingSpinner</h1>
<divclassName="fix-aspect-box"><imgalt=""src="https://penguin-ogp.vercel.app/api/ogp?text=こんにちは人類"/></div>
<p>イメージを表示します</p>
</div>
</div>
);}exportdefaultApp;

scss

App.scss
.fix-aspect-box{position:relative;width:100%;padding-top:55%;img{position:absolute;top:0;left:0;width:100%;height:100%;}}

イメージは初めに額縁を用意しておいて、後から届いた画像を収まるように収縮して当てはめるという感じ。

gamen_test1 (2).gif

縦横比を指定しているから小さくなっても画像が引き伸ばされたりはしない。

最後に spinner を追加する。

先ほどの状態だと、無の空間にいきなり画像が表示される。
想定していないものがいきなり現れるのは気持ちの良いものではない。

そこで読み込み中は spinner を表示する。
https://design.webclips.jp/svg-loading-icon/

public に svg を配置しbackground-imageで読み込むことができる。

App.scss
.fix-aspect-box{position:relative;width:100%;padding-top:55%;img{position:absolute;top:0;left:0;width:100%;height:100%;// show spinnerbackground-image:url('/spinner.svg');background-repeat:no-repeat;background-position:centercenter;}}

gamen_test1.gif

完成 :tada:

コードはこちら
https://github.com/itizawa/loading-spinner

JQuery自作スライダー

$
0
0

自作のスライダーを作成したので、自分へのメモ。今更JQueryかよって思うかもしれませんが、手軽にパパッと作りたかったのでJqueryで作りました。

aaa885e99997f1687150463ac3cdd9bb.gif

誰もが思うような、自動のスライダーというよりも、リスト化されたものの中から1つを選んで見れるような手動の形のものです。ただsetTimeOutとかを使えば自動に改造することができると思います。是非参考にしてください。

今回の用途としては、例えばホームページがあって、画像や動画の作品集か何かを紹介するみたいな想定です。縦長なページで画像や動画を配置してもいいのですがなんかそれだけだと素気ない感じだったので、横に動く様なものを作ってみました。

環境

・JQuery
・bootstrap4
・FontAwesome
・HTML/CSS

ちなみにJSのAPIやBootstrapにもスライダーありますが、どれも既存のデザインを変えるのが少し手間なので自作にした経緯もあります。自作でもそんな難しくはないのでメンテのし易さを考えたら自作の方がいいかなと思います。

index.html
<!doctype html><htmllang="ja"><head><!-- Required meta tags --><metacharset="utf-8"><!-- for responsive --><metaname="viewport"content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"><!-- Bootstrap CSS --><linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"crossorigin="anonymous"><!-- Fontawesome CSS --><linkhref="https://use.fontawesome.com/releases/v5.8.2/css/all.css"rel="stylesheet"><!-- General css --><linkrel="stylesheet"href="css/reset.css"><linkrel="stylesheet"href="css/style.css"><!-- Optional JavaScript --><!-- jQuery first, then Popper.js, then Bootstrap JS --><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"crossorigin="anonymous"></script><!-- General css --><script src="js/main.js"></script><title>Simple Html App</title></head><body><main><divclass="main2 bg-dark my-5"><divclass="main2__slider w-100 h-100"><divclass="main2__slider--item item1 fromtItem"><imgsrc="image/image_1.jpeg"alt=""></div><divclass="main2__slider--item item2 bgItem bgItem--right"><imgsrc="image/image_2.jpeg"alt=""></div><divclass="main2__slider--item item3 bgItem"><imgsrc="image/image_3.jpeg"alt=""></div><divclass="main2__slider--item item4 bgItem bgItem--left"><imgsrc="image/image_4.jpeg"alt=""></div><divclass="main1__slider--chevron chevronRight"><iclass="fas fa-chevron-circle-right text-white h1 px-1"></i></div><divclass="main1__slider--chevron chevronLeft"><iclass="fas fa-chevron-circle-left text-white h1 px-1"></i></div></div></div></main></body></html>

基本Bootstrapのスターターテンプレートです。ありがたいことに、これでJQueryも使える様になります。

※fontawesomeはアカウント作成しCDNを取得しないといけません。

reset.cssを使っています。調べればたくさんあるので自身で好きなものを使用してください。

css/style.css
.main2{width:100vw;height:330px;}.main2__slider{position:relative;}.main2__slider--item{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:0.3s;}.main2__slider--item>img{width:500px;height:300px;}.fromtItem{z-index:100;}.bgItem{z-index:99;opacity:0.5;}.bgItem--left{left:0;transform:translate(0,-50%)scale(0.8,0.8);}.bgItem--right{left:100%;transform:translate(-100%,-50%)scale(0.8,0.8);}.main1__slider--chevron{height:300px;line-height:300px;z-index:101;}.main1__slider--chevron.chevronRight{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,0.8));position:absolute;top:50%;right:50%;transform:translate(250px,-50%);}.main1__slider--chevron.chevronLeft{background:linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,0.8));position:absolute;top:50%;left:50%;transform:translate(-250px,-50%);}.main1__slider--chevron>i{opacity:0.9;}

ここは特に言うことないです。

js/main.js
$(function(){// 自作スライダー。バックグラウンドのアイテムを少し見せてフロントアイテムが少し浮いているように見せる。varchevronRight=$(".chevronRight");varchevronLeft=$(".chevronLeft");varmaximunItem="item"+$(".main2__slider--item").length;varfromtItem;varbgItem_right;varbgItem_right_classNmae;varbgItem_left;varbgItem_left_classNmae;chevronRight.click(function(){fromtItem=$(".fromtItem")bgItem_right=$(".bgItem--right");bgItem_left=$(".bgItem--left");bgItem_left_classNmae=bgItem_left.attr("class").split(/\s+/)[1];/* 
      スライダーの方向は右回りなので、frontItem→bgItem--right、bgItem--right→隠れ要素、
      隠れ要素→bgItem--left、bgItem--left→fromtItemとなる。
    */fromtItem.removeClass("fromtItem").addClass("bgItem bgItem--right");bgItem_right.removeClass("bgItem--right")bgItem_left.removeClass("bgItem bgItem--left").addClass("fromtItem");/*
      現bgItem--leftのitem"nn"によって次のbgItem--leftを特定している。
      ただし現bgItem--leftがitem1だった場合は計算式に当てはまらないが、
      一番数字の大きいitem"nn"と決まっているのでifで分岐させる。
    */if(bgItem_left_classNmae=="item1"){$(".main2__slider").children("."+maximunItem).addClass("bgItem--left");return;}$(".main2__slider").children(".item"+(Number(bgItem_left_classNmae.replace("item",""))-1)).addClass("bgItem--left");})// 周り方が逆なだけで、基本的には同じような仕組み。chevronLeft.click(function(){fromtItem=$(".fromtItem")bgItem_right=$(".bgItem--right");bgItem_right_classNmae=bgItem_right.attr("class").split(/\s+/)[1];bgItem_left=$(".bgItem--left");fromtItem.removeClass("fromtItem").addClass("bgItem bgItem--left");bgItem_right.removeClass("bgItem bgItem--right").addClass("fromtItem");bgItem_left.removeClass("bgItem--left");if(bgItem_right_classNmae=="item4"){$(".main2__slider").children(".item1").addClass("bgItem--right");return;}$(".main2__slider").children(".item"+(Number(bgItem_right_classNmae.replace("item",""))+1)).addClass("bgItem--right");})})

コメントを見て頂ければなんとなく使用がわかると思います。「左・メイン・右・隠し要素」の順に並んでいて、当てるCSSによって、前面に見えたり、左右にずれたりしてます。あとは押したアイコンによってそれぞれ要素に当てるCSSを削除追加してスライドしてる様に見せる仕組みです。

まとめ

ざっくりとした説明で申し訳ありませんが、大体こんな感じです。ただ今回本当に思いつくまま書いてみたのでプロの方からするとダメ出したくさんあると思います。勉強します。
以上です。最後までありがとうございました。

SASSコンパイル時に「"Invalid UTF-8"」エラーでハマった話

$
0
0

エラー発生の経緯

UdemyでCSSのtips的な講座を進めていたときに

1.まずはCSSで記述をある程度行う
2.講座の序盤でsass導入、環境構築
3.引き続きsass(scss形式)でCSS学習

という流れでおこなっていたんですが
その中で「おっこの表現いいじゃん!」という部分をガンガンCSSファイル内に
/* */
でメモコメント入れまくっておりました

で、2で環境構築し、コンパイルをいざしよう!としたときに
yarnでもnpmでもコマンド実行時に下記のエラーが出る状態となりました。

{
  "status": 3,
  "message": "Invalid UTF-8",
  "formatted": "Internal Error: Invalid UTF-8\n"
}
error Command failed with exit code 1.

具体的なコード

package.json
※compile:sassでscssの記述をまとめてcssに吐き出す

{"name":"natous","version":"1.0.0","description":"landing page for natous","main":"index.js","scripts":{"compile:sass":"node-sass sass/main.scss css/style.css","test":"echo \"Error: no test specified\"&& exit 1"},"author":"","license":"ISC","devDependencies":{"node-sass":"^4.14.1"},"dependencies":{}}

scss/一部抜粋。

$color-primary:#55c57a;$color-primary-light:#7ed56f;$color-primary-dark:#28b485;*{margin:0;padding:0;box-sizing:border-box;}.header{height:95vh;background-image:linear-gradient(torightbottom,rbga($color-primary-light,0.8),rbga($color-primary-dark,0.8),/*変数をrgbaに入れることも可能*/),url(../img/hero.jpg);/*背景画像とカラーを重ねる*/background-size:cover;background-position:top;/*背景画像の中心位置を決める*/position:relative;clip-path:polygon(00,100%0,100%75%,0100%);}.btn:hover{transform:translateY(-3px);/*hover時に上に動きクリック時下に少し動くようにすれば、いい感じのボタン
    同様に、box-shadowも下方向の影を少し減らすこと。*/box-shadow:010px20pxrgba(0,0,0,.2);}.btn:active{transform:translateY(-1px);/*20%の影*/box-shadow:05px20pxrgba(0,0,0,.2);}

これまで何度かsassの環境構築はしていたのにみたことないエラーだったので、
過去のsassで構築しているサイトと比べてみたり、下記の内容を再確認してみました。

試したこと1:Invalid UTF-8でググる

SCSSファイルの最初に「@charset "UTF-8";」が書かれていないケースがあるという事例があったので追加→解決せず

試したこと2:コンパイルの書き出し元、書き出し先再確認

問題なし

試したこと3:久しぶりの構築だから特定のバージョンだけのバグかと考えnode-mojudleの削除から再度npm install

解決せず

ーーーーーーーーーーーーー

原因はscssの記述内容:コメントアウトでした

こりゃ困ったなあと思いながら試しに一旦sassの記述を一部除いてほぼ消してみてコンパイルすると、うまく行きました!
こりゃどっかscssの記述ミスか〜〜と思って少しずつ削除したりしながらコンパイル繰り返していて、原因を突き止めました。

.header{height:95vh;background-image:linear-gradient(torightbottom,rbga($color-primary-light,0.8),rbga($color-primary-dark,0.8),/*変数をrgbaに入れることも可能*/),url(../img/hero.jpg);/*背景画像とカラーを重ねる*/background-size:cover;background-position:top;/*背景画像の中心位置を決める*/position:relative;clip-path:polygon(00,100%0,100%75%,0100%);}

「/* 」と「*/」で囲っているコメントのうち、「変数をrgbaに入れることも可能」の部分が原因でした。

qiita上でも色も付いちゃってて明らかに怪しいですね。。
エディタ上ではグレーアウトもされておりエラー内容にも全く記述がなかったのでしばらく気づきませんでした。どうも、こういうショートハンドの間に/ /でコメント入れるのはよくないようです。

ちなみに

なぜか下記のような // でのコメントアウトの仕方だとうまく行きます。

.header{height:95vh;background-image:linear-gradient(torightbottom,rbga($color-primary-light,0.8),rbga($color-primary-dark,0.8),//変数をrgbaに入れることも可能),url(../img/hero.jpg);/*背景画像とカラーを重ねる*/background-size:cover;background-position:top;/*背景画像の中心位置を決める*/position:relative;clip-path:polygon(00,100%0,100%75%,0100%);}

さらにいうと、まとめてて気づきましたが記述の仕方も少し間違ってて一つ「,」が多かった。正しくはこうですね。

.header{height:95vh;background-image:linear-gradient(torightbottom,rbga($color-primary-light,0.8),rbga($color-primary-dark,0.8)),//変数をrgbaに入れることも可能url(../img/hero.jpg);/*背景画像とカラーを重ねる*/background-size:cover;background-position:top;/*背景画像の中心位置を決める*/position:relative;clip-path:polygon(00,100%0,100%75%,0100%);}

この書き方であれば、同じ場所のコメントでも、/**/でも//でもきちんとコンパイルできました。

まとめ

いずれにせよ、ショートハンドの途中でコメントを入れるのはよくない気がするので、
無難に記述がひと段落ついてからコメントを入れること、
またエラーからぐぐるだけではなく、そもそもの記述も間違っていないか怪しむこと
を意識しようと思いました。


アロハな男のエンジニア成長期

$
0
0

初めまして!

プログラミングに関するアウトプット用にこちらのブログ開設しました😄

軽く自己紹介を…
26歳のディズニー・ハワイ大好きな関西人男性です!
夢はディズニーみたいに利用した人に満足・喜びを感じてもらえるようなアプリを開発できる人材になりたいと思います!

これからどうか、よろしくお願いします😆

最後にハワイのディズニーリゾートの写真を1枚だけでも…😂!

IMG_8484.JPG

新人職業プログラマーのための「丁度よいサイズの課題集」

$
0
0

プログラム上達に必要なものは?

モチベーションでしょうか?あるいはセンスでしょうか?

『プログラム未経験者大歓迎』の求人に募集してきた方々は、少なくとも自分で学習するモチベーションはなかったはずですし、センスについては未知数です。そんな方々にプログラム上達してもらうためには何を与えればよいでしょう?

Webサイトには解説記事は溢れていますし、少しお金を出せば詳しく解説してある本もたくさんあります。それらを読む様に口を酸っぱくして言い続ければいいでしょうか?気分が乗らない学校の宿題にようやく手をつけた子供に「宿題をやったのか?」と確認するおかあさんのようになっていないでしょうか?

意見は色々あると思いますが、わたしは、「丁度よいサイズの課題」を用意することがよいのではないかと思っています。

丁度よいサイズの課題集

「丁度よいサイズの課題」とは、業務で役に立つ可能性が高く、そこそこ頑張れば解決でき、達成感が得られ、挫折しにくい課題を指します。

「武道の達人は対峙しただけで相手の実力が分かる」という言葉をご存知でしょうか。経験を積んだ人間には未経験の人間の隙が見えるが、未経験者本人は自分の隙にまったく気づいていないという状況があります。スポーツや対戦ゲームなどでも同様のことを経験された方も多いと思います。

これは、経験者が相手と向き合い、相手の技量を理解し、相手が抱えている問題を解決する課題を提供することで、未経験の人間に正しい知識を与えて導く事ができるという事も示唆していると思います。

新たに新人の部下を持った先輩職業プログラマーの方々は、新人の教育に苦心されていることかと思いますが、およそ新人の皆さんが躓くところには傾向があるので、Webサイトを検索したら「丁度よいサイズの課題集」が出てきてもよいのかなぁと思うのですが、意外と出てきませんでした。

そこで、勉強会でやった課題を「丁度よいサイズの課題集」のメモとして残してみようと思いました。

Web 編

よく見るレイアウトのWebサイトを作る

  • 技術 : html5, css3, bootstrap4

ナビゲーション+コンテンツ、という構成が割とよく見るWebサイト。
Bootstrap 等のコンポーネントライブラリを利用して開発することが多いが、cssの基礎を理解していないとちょっとした仕様変更に対応できない。
また、Bootstrapをいきなり使うと「なんかよく分からないけどコピペして使う」ものという認識になりがちである。(自分調べ)

本課題では、まずはフラットな html + css でサイトの枠組みを作成し htmlとcssを理解し、その後 Bootstrap で同じ課題に取り組み Bootstrap でできること、できないことを学習する。

1) html + css で、各種ナビゲーションを作ってみる

(問題)
以下サイトを参考に各種レイアウトを html + css で作成する。

備忘録

(応用問題)
1. 上部ナビゲーション部に、ロゴ、メニュー、ログインリンク等、上下左右に部品を配置する
1. 上部ナビゲーションを固定する
1. ナビゲーション部に実際にメニューを追加する
1. メニュークリックで、コンテンツ部のページ内リンクへスクロールする
1. レスポンシブ:横幅480px以下でハンバーガーメニューを表示、ハンバーガーメニューにプルダウンでナビゲーションメニューを作る
1. よく見るサイトを観察して簡単に実装できそうな機能を探し移植する

2) リスト表示

(問題)
以下サイトを参考にリストメニューを html + css で作成する。

CSSができる人とできない人では何が違うのか?(レイアウト編)

(応用問題)
1. レスポンシブ:横幅480px以下で、リスト→カードになるように css を修正

3) html + bootstrap で 1), 2) の課題をやってみる

参考サイト:
Bootstrap

Todoリスト

  • 技術 : javascript, jQuery, DOM操作

2020年現在、グーグル検索を行うと Vue で Todo を簡単に作るというのが検索されがちであるが、職業プログラマーの世界では未だに jQuery がポピュラーな印象。
本課題では、ページ初期化時の javascript プログラム初期化コード、event ドリブンコードの基礎を学習する。

1) todo追加[サーバなし]

(問題)
1. テキスト入力フォームとボタン配置
2. ボタン押下で、ページ下部にフォームに入力された内容をdivタグで追加

(応用問題)
1. 自動採番で連番登録

2) todo追加[サーバあり]

(問題)
1. server : nodejs + express でサーバを作る。受信データをテキスト保存。
2. client : $.ajax で通信。

(応用問題)
1. plant uml でシーケンス作成

電卓

  • 技術 : javascript, 変数スコープ, 関数

ミニプログラムでプログラムの基本を学ぶ。Bootstrap + jQuery 版 / Vue 版を作ってみるとよさそう。

(問題)
1. 四則演算が行える電卓を作成

ミニプログラムでプログラムの基本を学ぶ。

タイピングゲーム

  • 技術 : javascript, タイマー, 状態管理

(問題)
1. キーボードを模したボタンを配置。
2. 一定時間毎に、ランダムで任意のキーの色を変える。
3. 色の変わっているキーを押下すると正解、+1点。それ以外のキーを押下すると不正解、-1点。
4. 一定時間経過後、結果画面表示。

Excelからデータ抽出

  • 技術 : nodejs, vue, vuetify, typescript

アクセス解析データや、試験結果集計データなど。Excelマクロや関数、ピボットテーブルを駆使して表やグラフを作る事が多いが、データ解析はプログラムを覚えるのによい題材。日々の雑務をプログラムで解決するのは単純にテンションが上がる。

(問題)
1. Excelから興味のあるデータを抽出し、json保存。
2. html読み込み。Datatable で整理して表示、chartjsなどでグラフ化して表示。

(応用)
1. vue + vuetify + typescript で表示

開発環境編

開発環境構築はなぜか抵抗がある。コマンドを叩けない。
アプリケーションエンジニアとインフラエンジニアとの境界が曖昧になりつつあるので、とりあえずは何でもインストールしよう。

Chocolaty

コマンドで(ほぼ)何でもインストールできる。入れよう。

Vagrant

壊しても誰にも怒られない自分専用のVM。作ろう。

ansible

コマンド一発で環境を作れる構成管理ツール。手順書見ながら環境作るのやめよう。

(問題)
1. vagrant 上に ansible で nginx を入れ service 登録をする

Docker

WSL2 様子見中…すいません。

ドキュメント編

日本人だから普通に日本語読み書きできると思いがちだが、胸に手を当てて振り返ると、意外と「日本語を書く機会がない」ことに気づくと思う。書いて指摘されないとうまくならないので、ドキュメントを書く習慣をつけよう。

議事録

自分だけ知識ゼロなところ、周りの人間が分かってるつもりで話し合っているのを漏れなくメモる罰ゲーム的イベント。
実際は洞察力や推理力、書記力等々全ての能力が試される最高の訓練イベント。
漏れなくメモすることが最初の目標だが、プロジェクトにとって必要なことが必要な形で記録されることを目指したい。

手順書

口頭で説明を受ける事が多いと思うが、文書として残してみよう。引き継ぎの時にも使えて便利。

シーケンス

設計力が上がるのでガンガン書こう。
(参考)
PlantUMLと俺と彼女の危険なシーケンス図

設計書

読者を意識して、粒度や記載レベルが揃う様に書こう。

最後に

楽しくない仕事は長くは続けられません。

「丁度よいサイズの課題」は、仕事を楽しむための考え方かと思います。
ですので、本稿の課題は上から順に全てやる必要はなく、自分にとって役に立つもの、楽しくやれそうなものを選んで取り組んだり、自分やレビューした先輩が課題を追加したりしてもらえたらと思います。

面倒くさい仕事を、「課題を細分化して丁度よいサイズの課題」に分けたり「物事を観察して丁度よいサイズの課題」として創出したりして、「丁度よいサイズの課題」とすれば、ソシャゲのイベントの様に、毎日少しずつこなせる仕事になるかもしれません。

そうこうしているうちに「顧客の課題」までもを解決できるような職業プログラマーに成長していたらいいなと思います。

※後半メモ的で課題感がなくてすいません。具体的に何か出てきたら追記します。
※不定期更新?

checkboxについて

$
0
0

checkboxを作るときには、labelタグをつけようっていうお話。

checkbox作成時にlabelタグを付与した場合は、文字を押してもチェックに反応するが、

checkbox作成時にlabelタグを付与しない場合にはcheckboxを押すことでしたチェックの印をつけることが出来ない。

結論
checkbox作成時にはlabelをつけるとユーザーがチェックし易くなるので良い。

ちなみに、htmlに以下のように記載するとlabel有りのcheckboxを作成することが出来ます。
https://i.gyazo.com/a78ac71eac9dd7ea52cc984c3dca51e7.png

         laberあり
         <label>
            <input type="checkbox" name="q1" value="html">
            HTML
          </label>


          labelなし
            <input type="checkbox" name="q1" value="html">
            HTML

CSSだけで中身の複数要素は左寄せに並べつつ全体は中央寄せにしたい

$
0
0

タイトルからだとよくわからないかもしれないですが、商品覧のようなページを作成する時に、下の図のようなレイアウトを CSS だけでうまい具合に作りたくなりました。
matrix.png
要件は以下の通り

  • 複数の要素を一覧表示になるよう並べたい
  • 並べる要素数は状況に応じて変動しうる
  • 親要素の幅は可変であり、親要素に収まるように子要素の列数も可変にしたい
  • 全体は中央寄せ
  • 子要素達は左寄せ

失敗

最近、 CSS の flexbox が強いという話を知ってなんでもかんでもflexで解決しようとしていたのですが、今回の用件はどんなに頑張ってもどこかに支障がでて上手くいきませんでした。CodePenのサンプルコード

例1

.parent{display:flex;align-items:flex-start;flex-wrap:wrap;justify-content:left;margin:0auto;}

まずは親要素のflex-wrapwrapに指定してjustify-content: leftにした上でmargin: 0 autoをすればいい感じになると思ったのですが、全体は中央寄席にならず、左に寄ってしまいました。
スクリーンショット 2020-09-05 20.01.21.png

例2

.parent{display:flex;align-items:flex-start;flex-wrap:wrap;justify-content:center;}

続いて、justify-content: centerにしてみましたが、全体は中央寄せになるものの、子要素も中央寄席になってしまいました。

スクリーンショット 2020-09-05 20.00.35.png

このほかにも3時間ほど試行錯誤しましたが、何かが上手くいけばどこかに支障がでるという感じでした。

上手くいく方法

結果論的には、 flexbox を捨てて、 grid を使うと良いということがわかりました。
CodePenのサンプルコード

.parent{display:grid;grid-template-columns:repeat(auto-fit,100px);grid-auto-rows:100px;grid-gap:16px;justify-content:center;}

ここで注目すべきところは、grid-template-columnsrepeat()を使った上でauto-fitを指定しているところです。ここが、auto-fillだと思ったようにはなりません。

スクリーンショット 2020-09-05 19.40.57.png

参考

disabled属性の項目値はサーバへ送信されないのでリロードすると値が消えるときの対応方法

$
0
0
  • 環境
    • CentOS Linux release 7.8.2003 (Core)
    • openjdk version "11.0.7" 2020-04-14 LTS
    • JSF 2.3.9
    • jquery 3.2.1

事象 : 画面がsumit後にリロードされたら非活性のラジオボタンの選択値がクリアされた

画面初期表示時にラジオボタンは初期値を設定して、ラジオボタンが未選択にならないようにした。が、リロードされたら未選択になってしまった。
a.gif

原因 : ラジオボタンがdisabled属性だからsubmitされずサーバに値が送られない

disabled属性でサーバ送信されない > バッキングビーンに値が設定されない > リロードしても画面に値がバインドされない
という流れでリロードするとラジオボタンの値がクリアされた。

submiの処理で選択地を出力するとnullになっていた
2020-09-05T19:29:21.468+0900|情報: ラジオボタンの値:null
2020-09-05T19:29:55.496+0900|情報: ラジオボタンの値:null
2020-09-05T19:29:59.560+0900|情報: ラジオボタンの値:null

無効になった入力欄は click イベントを受け取らず、フォームと共に送信されることもありません。
<input>: 入力欄 (フォーム入力) 要素 - HTML: HyperText Markup Language | MDN

base.xhtml
<!--省略--><h:formid="formId"><h5>disabledはsubmitできない</h5><h:panelGroupstyle="display: flex;"><h:selectBooleanCheckboxid="check"onchange="changeDisabled()"/><h:outputLabelfor="check"value="チェックボックス"/>
    (
    <h:selectOneRadioid="radio"value="#{sampleBean.selected}"><f:selectItemsvalue="#{sampleBean.items}"/></h:selectOneRadio>
    )
  </h:panelGroup><h:commandButtonvalue="submit"action="#{sampleBean.submit}"/></h:form><!--省略-->
SampleBean.java
// 省略/** SelectItemのリスト. */@GetterprivateList<SelectItem>items;/** 選択した値. */@Getter@SetterprivateIntegerselected;/** Beanの初期化処理. */@PostConstructpublicvoidinit(){// ラジオボタンの初期値を設定する.this.selected=0;// ラジオボタンの選択肢を設定する.setItems();}/** [submit]ボタン押下処理. */publicvoidsubmit(){System.out.println("ラジオボタンの値:"+selected);}/** SelectItemのリストを設定する. */privatevoidsetItems(){this.items=newArrayList<SelectItem>();this.items.add(newSelectItem(AnimalCode.BEAR.getNo(),AnimalCode.BEAR.getName()));this.items.add(newSelectItem(AnimalCode.DOG.getNo(),AnimalCode.DOG.getName()));this.items.add(newSelectItem(AnimalCode.CAT.getNo(),AnimalCode.CAT.getName()));}// 省略
base.js
$(function(){changeDisabled();});/** ラジオボタンの活性非活性を切り替える. */functionchangeDisabled(){/** @type {boolean} チェックボックスの選択状態. */varisChecked=$("#formId\\:check").prop("checked");if(isChecked){$('input[name="formId\\:radio"]').removeAttr('disabled');}else{$('input[name="formId\\:radio"]').prop('disabled',true);}}

対応方法

JavaScriptで選択値がなかったら初期値を設定する

画面を表示する時にラジオボタンに選択値がなかったら初期値を設定する。
既存のプログラムを修正する場合に便利。
サーバ側の処理には影響は与えずにすむ。が、選択した値を再現できるわけではない。

base.js
$(function(){setRadioDefault();changeDisabled();});// 最初と同じなので省略/** 未選択の場合に初期値を設定する. */functionsetRadioDefault(){/** @type {string} ラジオボタンの選択値. */letradioVal=$('input[name="formId\\:radio"]:checked').val();if(!radioVal){// 未選択の場合:初期値「0:くま」を設定する.$('input[name="formId\\:radio"]').val(["0"]);}}

CSSでreadonly属性をdisable風にしてサーバに値を送る

disabled属性をやめてreadonly属性にすればサーバに値を送信できる。
見た目が非活性っぽくなるようにCSSで工夫する。

参考 : readonlyをdisabledっぽく見せるコードは8行で書ける! | 25歳で独立したフリーランスエンジニア -じゃけぇ- のあれこれ

今回の場合は、ラジオボタンで不向きなのでやらなかった。

The readonly attribute is supported by text, search, url, tel, email, password, date, month, week, time, datetime-local, and number types and the form control elements.(省略)
The attribute is not supported or relevant to or input types that are already not mutable, such as checkbox and radio or cannot, by definition, start with a value, such as the file input type.
HTML attribute: readonly - HTML: HyperText Markup Language | MDN

JavaScriptでサーバ送信直前にdisabled属性を外す

ボタンが押されたタイミングでdisabled属性を外してサーバへ値を送信しちゃう。
ボタンを押した瞬間活性化するのが見えるのが微妙なところ。

base.xhtml
<!--省略--><h:commandButtonvalue="submit"action="#{sampleBean.submit}"onclick="onclickSubmit();"/><!--省略-->
// 最初と同じなので省略/**
 * [submit]ボタン押下処理
 * @return {boolean} サーバ処理を実行するために常にtrue.
 */functiononclickSubmit(){$('input[name="formId\\:radio"]').removeAttr('disabled');returntrue;}

JavaScriptでサーバ送信直前にhiddenに値をコピーしてサーバに送る

ボタンのonclickイベントで用意しておいたhidden項目に選択値をコピーして隠し持っておいてサーバへ値を送信する。

base.xhtml
<!--省略--><h:commandButtonvalue="submit"action="#{sampleBean.submit}"onclick="onclickSubmit();"/><!--省略-->
// 最初と同じなので省略/**
 * [submit]ボタン押下処理
 * @return {boolean} サーバ処理を実行するために常にtrue.
 */functiononclickSubmit(){letval=$('input[name="formId\\:radio"]:checked').val();$('#formId\\:hidden').val(val);returntrue;}

tableを使わず、縦並びの表組みを作る。ついでにレスポンシブにも対応させる

$
0
0

どうも7noteです。レスポンシブ対応の縦並びテーブルの作り方

横並びにする方法はいろいろありますが、縦並びでかつテーブル風にする方法について。

ulのリストを縦に並べます。合計の高さを決めることで2列、3列にすることができます。

hyou.png

作り方

index.html
<ul><li>1.りんご</li><li>2.みかん</li><li>3.ぶどう</li><li>4.なし</li><li>5.キウイ</li><li>6.バナナ</li><li>7.パイナップル</li><li>8.マンゴー</li><li>9.桃</li><li>10.いちご</li><li>11.メロン</li><li>12.すいか</li></ul>
style.css
ul{padding:0;width:451px;/* 3列分の幅+borderの1px */height:161px;/* 4行分の高さ+borderの1px */border-top:solid1px#000;border-left:solid1px#000;display:flex;flex-direction:column;/* 並び順を縦方向に変更 */flex-wrap:wrap;/* 折返し */}ulli{list-style:none;width:150px;height:40px;border-bottom:solid1px#000;border-right:solid1px#000;box-sizing:border-box;padding:010px;display:flex;align-items:center;/* 文字を上下中央にする */}

まとめ

高さを指定しなければ折返しができないので、注意が必要です。
スマホの時はulのheight(合計の高さ)を変えることで2列に変更するなど、列の数を変えることができます。

borderの指定方法について補足ですが、この方法なら半端な数になってもデザインが崩れずきれいに作ることができます。

hyou2.png

おそまつ!

~ Qiitaで毎日投稿中!! ~
【初心者向け】HTML・CSSのちょいテク詰め合わせ

Web画面初心者の教育用メモ2

$
0
0

HTMLの基本構造

<!DOCTYPE html> <head>    <metacharset="utf-8">   <linkrel="stylesheet"href="css/hogehoge.css">   <style></style>   <title>HOGEHOGE</title>   <script type="text/javascript"src="js/hoge.js"></script>   <script type="text/javascript"></script> </head> <body>  <script src="js/hogehoge.js"></script>  <script></script> </body></html>

HTMLは上のように<html>の中に<head>などが入りその中に…といったような入れ子になっている形です

それぞれを解説すると
●<!DOCTYPE html>
 HTML5の文書であることを示しています。とりあえずおまじないと思っててください。
●<html>
 <head>と<body>を入れます
●<head>の中にはそのページの情報を入れます
●<meta charset="">
 文字コードの指定をしています
●<link>
 CSSの外部ファイルを読みこみます
●<style>
 CSSの記述をします
●<script ~ src="">
 JavaScriptの外部ファイルを読みこみます。
 (画面制御にかかわる部分やどうしても一番上に定義されていないといけないもののみ)
●<script>
 JavaScriptを記述します。
 (画面制御にかかわる部分やどうしても一番上に定義されていないといけないもののみ)
●<body>以下には実際に表示するものを入れます。
●<script ~ src="">
 JavaScriptの外部ファイルを読みこみます。
 (<header>で読み込んだもの以外の外部ファイル)
●<script>
 JavaScriptを記述します。
 (<header>で記述した以外のもの)

HTMLの基礎知識

●タグ
 <>で囲まれたものをタグといいます。ほとんどのタグは
 開始タグと呼ばれる<***>で始まり、閉じタグと呼ばれる</***>開始タグの<の後ろに「/」を付けたもので終わります
●属性
 タグにはそのタグを補完するものとして属性というものが存在します
 例えば、上記の基本構造でいうと<script>の後の「src」です
 scriptに「src=」を付け加えることで読み込むファイル名を記述できます
 属性について詳しくは後日

覚えておいた方がいいタグ

●<h1>,<h2>,<h3>
 見出しを付ける
●<span>
 文字の表示
●<img>
 画像の表示
●<br>
 改行の表示
●<a>
 リンクを作成し、他の画面に変移することが可能
●<input>
 データの入力
●<textarea>
 文字列の入力
●<select>,<option>
 データを選択
●<button>
 ボタンを作成
●<form>
 inputやselect、buttonタグと組み合わせて、他の画面にデータを渡す
●<table>,<th>,<tr>,<td>
 表の作成
●<video>
 動画を流す
●<div>
 とりあえずグループ化する。まとめる
●<!-- -->
 画面には表示したくないけど、何かのために書いておきたいものを囲む
 (通称コメントタグ)


初心者がGitHub Pagesを使って自作ページ(おふざけ)を公開しました!

$
0
0

前提

今年8月末にゼロからHTMLに取り組み始めた、正真正銘の初心者(!)です。
きっかけは、黒澤さん(@kurokurosawa)によるウェビナー「YoshiTech 会津わろ法則」。
黒澤さんの教えをもとに、学習を通して得たこと・学んだことをQiitaにアウトプットする取り組みを行っています。

今回のテーマ「自分でコードを書いたページを公開しました!」

というわけで今回なんですけども、さっそくこちらのページを見ていただけますか?

練習用に作ったおふざけページ

「最高齢ラッパー」として一部好事家から愛され続ける坂上弘(さかうえひろし)先生の「交通地獄」という名曲がありまして、その紹介ページを練習用に作ってみました。

坂上先生の超絶パフォーマンスについては、上記ページにもYouTubeへのリンクを張ってますので是非ご覧いただきたいのですが・・・

それはさておき(?)、初心者ながら思い切ってGitHubに登録し、なんとかGitHub Pagesへの公開までこぎつけることができました!

このページ自体は、Udemyの講座[HTML/CSS/JavaScript] フロントエンドエンジニアになりたい人の Webプログラミング入門のHTML/CSS編での課題をひな型として、自分なりのおふざけ(笑)も交えて作ってみたものです。

なお、ページ作成上の学習テーマとしては、フロート機能の習得を目指しました。また、2枚の画像をフェードイン・フェードアウトさせるアニメーションを、CSSを用いて作成するという冒険もしてみました。

(それにしても、公開したページを改めてスマホ経由で見てみると、レイアウトに改善の余地が大アリですね・・・新たな課題が出てきた!)

超絶初心者もできた!GitHub Pagesの利用

そもそも私は「GitHubのGの字も知らない」(ていうか読み方が「ジットハブ」か「ギットハブ」かいまだにピンときていない)レベルの初心者なんですが、それでも探り探りページの公開までたどり着けました。

そこで、自分用の振り返りも兼ねて、(初心者なりの)登録から公開までの手順をご紹介したいと思います。
( 作業に当たっては「【初心者向け】GitHub Pagesを使ってHPを爆速で公開する」を参考にさせていただきました。ありがとうございます! )

1.アカウントを作る!

まずは公式サイトでアカウントを作ります!(あたりまえ体操!)

2.リポジトリを作る!

アカウントを作ったら、次はそのまま公式サイト上で「リポジトリ」を作ります!

(と言いながら、「リポジトリ」とはいったい何なのか、実はいまだによくわかってません。。。公式サイトの指示通りにやっていたら、なんとなく流れで作れちゃいました)

3.GitHub Desktopをインストールする!

さて、このあたりから初心者には難しくなってきます。

どうやら次は「リポジトリのクローン」という作業が必要らしいのですが、これがよくわからない・・・

GitBash?を使う方法も紹介されていたのですが、超絶初心者の私は「バッシュ?バスケットシューズ?あの娘ぼくがロングシュート決めたらどんな顔するだろう?」というような有様だったので、こちらは断念。

その代わり、今回私が利用したのは「GitHub Desktop」でした。

Windowsユーザーなので、こちらのページからWindows版をダウンロード&インストール。

4.GitHub Desktopを使ってクローン・コミット・パブリッシュ!

クローン?コミット?パブリッシュ?
いやはや、自分で言っておきながらコトバの意味が分かっていません(汗)

にもかかわらず、偶然にも手順をわかりやすく説明したページが見つかったので、なんとかなりました!

そのページはこちらです。

英語のページですが、真ん中あたりにある「Using GitHub Desktop to PUSH to your local content to GitHub.」という項目に、画像付きの丁寧な説明があります。

英語が苦手でも、掲載されている画像を順番に見ていけば、作業の流れはなんとなく分かります。

  1. 公式サイトでレポジトリを作った後の画面に出てくる「Set up in Desktop」のボタンをクリックする
  2. するとGitHub Desktopが開くので、そのまま「Clone」のボタンをクリックする
  3. 自動でPC上に(デフォルトではドキュメントフォルダ内)GitHubレポジトリのフォルダが作成される
  4. いつもお世話になっているWindowsのエクスプローラを使って、GitHubレポジトリのフォルダの中に、公開したいページのファイル群(htmlファイル・CSSファイル・画像ファイルなど)をコピペする(※ページ公開後にリンク切れが起きないように、htmlファイル等のフォルダ構成はそのままにしておく)
  5. GitHub Desktopに戻って、さきほどコピペしたファイルがちゃんと表示されているのを確認したら、添付メッセージ(入力必須となっています)を書いて、「Commit to master」のボタンをクリックする
  6. 最後に、GitHub Desktop上の「Publish branch」というボタンをクリックする

以上の手順をたどれば、作業はあらかた完了です!

5.実際にWeb上に反映されるまでは、少し時間がかかります

ここまできたら、あとは自作ページがWeb上に公開されているのを確認するのみです。

ブラウザで「https://(ユーザー名).github.io/(htmlファイル名).html」にアクセスすれば、見事自分のページが表示される段取りになっています。

ただ、ここで若干もどかしいのが、「実際にWeb上へ反映されるまでは少し時間がかかる」という点です。

なお、GitHub Pagesへのアップロードが上手くいっているかどうかは、公式サイト上で確認をすることができます。

この辺の事情については、「GitHub Pagesによる静的サイトの公開」というnoteの記事に詳しく書いてありました。
(記事の終盤で丁寧な解説を読むことができます)

なお私の場合は、アップロードしたデータ量が極小だったのか、わりとすぐに公開してもらえました!

おわりに

このように、GitHub自体はよくわからない私のような初心者でも、GitHub Pagesを用いた自作ページの公開は十分に可能です。

いや、むしろ初心者であればあるほど、自分で作ったページをWeb上で見ることの面白さは、他では代えがたいものがあるのではないでしょうか?

もしGitHub Pagesが気になっている初心者の方がいらっしゃったら、思い立ったが吉日と申します。エキサイティングな経験になること請け合いです!

最後まで読んでいただき、ありがとうございました!

追記

前回・前々回の記事を、なんと黒澤さん(@kurokurosawa)がほめてくださっていました!
(ツイッターではリアクションできず、申し訳ありません・・・)

とてもありがたいことです。
学習にいっそう身が入るというものです。

この勢いで、次回は「CSSのフロート機能を学習する際に考えたこと・気づいたこと」について、アウトプットしようと思います!

【CSS】list-style: none; text-align: left; が効かない時の対処法

$
0
0

はじめに

久しぶりにCSSをやってクッソハマった。こんな簡単なことでハマる人は少ないかもしれませが一応共有しておきます。

問題

<li>要素の・を取り除いた後に左寄せができない。
image.png

<h3>プログラミング言語</h3><ul><li>Ruby</li><li>Golang</li><li>Javascript</li><li>Python</li></ul>
ul{list-style:none;text-align:left;}

デベロッパーツールで確認する

image.png

ulのpaddingが40になっている。これを0にすればいいだけじゃん・・・

ul{list-style:none;padding-left:0;}

できた。アツくなっていたからか、これに気がつかず2時間ぐらいハマってた。CSSは難しい😇

image.png

【CSS】Github風

$
0
0

こんな感じの

inputの枠線(border+box-shadow)

ちなみに、こちらにもあります

CSS

input{border-radius:4px;padding:6px10px;font-size:.875rem;border:1pxsolid#dfdfdf;outline:0;/* ついでにフワッとしたアニメーション */transition:border-color.15sease-in-out,box-shadow.15sease-in-out;}input:focus{border:1pxsolid#0d6efd;box-shadow:000.2remrgba(13,110,253,.25);}

結果

image.png

【css】【カード(card)】コンポーネント集

$
0
0

※自分用メモです

① メルカリの商品一覧風

スクリーンショット 2020-09-04 15.13.16.png
スクリーンショット 2020-09-04 15.13.24.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper bg-info"><divclass="sampleItem trisectionItem bg-primary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem trisectionItem bg-secondary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem trisectionItem bg-success"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper bg-info"><divclass="sampleItem quarterItem bg-primary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem quarterItem bg-secondary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem quarterItem bg-success"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem quarterItem bg-danger"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper bg-info"><divclass="sampleItem fifthsItem bg-primary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem fifthsItem bg-secondary"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem fifthsItem bg-success"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem fifthsItem bg-danger"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div><divclass="sampleItem fifthsItem bg-warning"><aclass="c_card"href="#"><divclass="c_cardTop"><spanclass="c_cardCaption colorWhite">¥5,000</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionMd colorBlack">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDescription descriptionSm colorBlack">ここにカードの説明文を入れますここにカードの説明文を入れます</p></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
.trisectionItem{width:calc((100%-100px)/3);margin-right:calc(100px/2);margin-bottom:40px;&:nth-of-type(3n){margin-right:0;}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.quarterItem{width:calc((100%-100px)/4);margin-right:calc(100px/3);margin-bottom:50px;&:nth-of-type(4n){margin-right:0;}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.fifthsItem{width:calc((100%-100px)/5);margin-right:calc(100px/4);margin-bottom:40px;&:nth-of-type(5n){margin-right:0;}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.c_card{&:hover{text-decoration:none;}}.c_cardTop{position:relative;}.c_cardCaption{position:absolute;bottom:15px;//キャプションの位置調整background-color:rgba(0,0,0,.4);padding:2px12px;}.c_cardBottom{padding:10px;}.c_cardTitle{margin-bottom:20px;}

② 任天堂トピックス風

スクリーンショット 2020-09-04 15.10.02.png
スクリーンショット 2020-09-04 15.10.15.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><pclass="c_cardDate descriptionSm colorBlack font-weight-bold">2019/01/01</p><pclass="c_cardDetail descriptionXs colorBlack">ここにも少しテキスト</p><iclass="c_cardArrow fa fa-arrow-circle-right"></i></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
// 3,4,5分割のscssは省略してあります.c_card{border-bottom:1pxsolidred;display:block;padding-bottom:20px;&:hover{text-decoration:none;}}.c_cardBottom{padding-top:10px;position:relative;}.c_cardTitle{margin-bottom:26px;}.c_cardDate{margin-bottom:7px;}.c_cardArrow{position:absolute;bottom:0;right:0;color:red;}

③ スクエアエニックストピックス風

スクリーンショット 2020-09-04 15.33.47.png
スクリーンショット 2020-09-04 15.33.58.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardCenter"><pclass="c_cardCategory descriptionSm colorWhite">カテゴリー</p><pclass="c_cardDate descriptionSm colorBlack">2020.01.01</p></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">ここにカードのタイトルを入れますここにカードのタイトルを入れます</p><ahref="#"class="c_cardLink descriptionSm colorBlack">詳細はこちら</a></div><divclass="c_cardButtonWrapper"><buttononclick="location.href='#'"type="button"class="c_cardButton btn btn-primary">詳細をみる</button></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
// 3,4,5分割のscssは省略してあります.c_card{&:hover{text-decoration:none;}}.c_cardCenter{display:flex;align-items:center;justify-content:space-between;}.c_cardCategory{background-color:red;padding:3px;}.c_cardBottom{padding:10px0px;}.c_cardTitle{margin-bottom:20px;}.c_cardLink{color:red;text-decoration:underline;}.c_cardButton{display:block;width:100%;}

④ スクエアエニックスe-STORE風

スクリーンショット 2020-09-04 16.06.58.png
スクリーンショット 2020-09-04 16.07.09.png
スクリーンショット 2020-09-04 16.07.18.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardLeft"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div><divclass="c_cardRight"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardPrice descriptionLg font-weight-bold">7,480円(税込)</p><pclass="c_cardDate descriptionSm colorBlack">発売日:2020.01.01</p><divclass="c_cardCategoryWrapper"><pclass="c_cardCategory descriptionXs">カテゴリ01</p><pclass="c_cardCategory descriptionXs">カテゴリ02</p></div></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
.trisectionItem{width:calc((100%-100px)/3);margin-right:calc(100px/2);margin-bottom:40px;&:nth-of-type(3n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}//スマホから1列表示@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.quarterItem{width:calc((100%-100px)/4);margin-right:calc(100px/3);margin-bottom:50px;&:nth-of-type(4n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}//スマホから1列表示@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.fifthsItem{width:calc((100%-100px)/5);margin-right:calc(100px/4);margin-bottom:40px;&:nth-of-type(5n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}//スマホから1列表示@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.c_card{display:flex;align-items:start;&:hover{text-decoration:none;}}.c_cardImage{width:150px;height:160px;object-fit:cover;margin-right:25px;}.c_cardTitle{margin-bottom:10px;}.c_cardPrice{margin-bottom:10px;}.c_cardDate{margin-bottom:35px;}.c_cardCategoryWrapper{display:flex;align-items:center;}.c_cardCategory{color:white;background-color:red;margin-right:2px;&:last-of-type{margin-right:0;}}//PC時の画像サイズ調整.quarterItem{.c_cardImage{@includemq('pc'){width:130px;}}}.fifthsItem{.c_cardImage{@includemq('pc'){width:80px;margin-right:10px;}}}

④ ドミノピザ風

スクリーンショット 2020-09-04 16.29.52.png
スクリーンショット 2020-09-04 16.30.03.png
スクリーンショット 2020-09-04 16.30.12.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><divclass="c_cardTop"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p><buttononclick="location.href='#'"type="button"class="c_cardButton descriptionSm btn colorWhite">詳しくはこちら<iclass="c_cardButtonArrow fas fa-arrow-right"></i></button></div><divclass="c_cardBottom"><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
.trisectionItem{width:calc((100%-100px)/3);margin-right:calc(100px/2);margin-bottom:40px;&:nth-of-type(3n){margin-right:0;}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.quarterItem{width:calc((100%-100px)/4);margin-right:calc(100px/3);margin-bottom:50px;&:nth-of-type(4n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.fifthsItem{width:calc((100%-100px)/5);margin-right:calc(100px/4);margin-bottom:40px;&:nth-of-type(5n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}// 3,4,5分割のscssは省略してあります.c_card{display:block;//paddingを調整するためpadding:10px15px;border:1pxsolidred;&:hover{text-decoration:none;}}.c_cardTop{margin-bottom:20px;}.c_cardTitle{margin-bottom:20px;}.c_cardDescription{margin-bottom:10px;}.c_cardButton{background-color:red;padding:10px;&:hover{color:#fff;text-decoration:underline;}}.c_cardButtonArrow{margin-left:20px;}

⑤ JAL風

スクリーンショット 2020-09-04 17.05.50.png
スクリーンショット 2020-09-04 17.06.01.png
スクリーンショット 2020-09-04 17.06.09.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon01 fas fa-ticket-alt"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon02 far fa-clock"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon03 fas fa-plane-departure"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon01 fas fa-ticket-alt"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon02 far fa-clock"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon03 fas fa-plane-departure"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon04 fas fa-couch"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon01 fas fa-ticket-alt"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon02 far fa-clock"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon03 fas fa-plane-departure"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon04 fas fa-couch"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card text-center"href="#"><divclass="c_cardTop"><iclass="c_cardIcon c_cardIcon05 fas fa-star-half-alt"></i></div><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorBlack font-weight-bold">タイトル</p><pclass="c_cardDescription descriptionMd colorBlack">ここに説明文が入りますここに説明文が入ります
                            ここに説明文が入りますここに説明文が入ります
                        </p></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
//3,4,5分割scssは省略します.c_card{&:hover{text-decoration:none;}}.c_cardIcon{font-size:50px;margin-bottom:15px;}.c_cardTitle{margin-bottom:12px;}

⑥ JAL風 キャプション背景透過

スクリーンショット 2020-09-04 18.16.59.png
スクリーンショット 2020-09-04 18.17.09.png
スクリーンショット 2020-09-04 18.17.17.png

<!-- ### sampleSection --><sectionid="sampleSection"class="sampleSection sectionPadding"><divclass="inner"><divclass="headingWrapper"><h2class="sectionHeading colorBlack">cardコンポーネント</h2><pclass="subHeading colorBlack">cardコンポーネント</p></div><!-- ###3分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem trisectionItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div></div><!-- End3分割 --><!-- ### 4分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem quarterItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div></div><!-- End 4分割 --><!-- ### 5分割 --><divclass="sampleWrapper flexWrapper"><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div><divclass="sampleItem fifthsItem"><aclass="c_card"href="#"><spanclass="c_cardCaption descriptionMd colorBlack">カテゴリー</span><imgclass="c_cardImage"src="http://blog-imgs-61.fc2.com/n/a/n/nanjcamp/20130531171641.jpg"alt=""><divclass="c_cardBottom"><pclass="c_cardTitle descriptionLg colorWhite font-weight-bold">ここにタイトルが入りますここにタイトルが入ります</p></div></a></div></div><!-- End 5分割 --></div></section><!--End sampleSection -->
.trisectionItem{width:calc((100%-100px)/3);margin-right:calc(100px/2);margin-bottom:40px;&:nth-of-type(3n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:70px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:70px;&:last-of-type{margin-bottom:0px;}}}.quarterItem{width:calc((100%-100px)/4);margin-right:calc(100px/3);margin-bottom:50px;&:nth-of-type(4n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}.fifthsItem{width:calc((100%-100px)/5);margin-right:calc(100px/4);margin-bottom:40px;&:nth-of-type(5n){margin-right:0;}// ipadでは2等分のレイアウトに変更@includemq('tab_sm'){width:calc((100%-100px)/2);margin-right:100px;margin-bottom:40px;&:nth-of-type(2n){margin-right:0;}}@includemq('sp_lg'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}@includemq('sp_sm'){width:100%;margin-right:0;margin-bottom:50px;&:last-of-type{margin-bottom:0px;}}}//3,4,5分割scssは省略します.c_card{// padding: 10px;display:block;//paddingをかけるためposition:relative;&:hover{text-decoration:none;}}.c_cardCaption{position:absolute;top:10px;left:10px;background-color:white;padding:5px8px;}.c_cardImage{border-radius:6px;}.c_cardBottom{position:absolute;display:block;width:100%;height:40%;bottom:0px;padding:10px;background:linear-gradient(180deg,rgba(0,0,0,0)0%,rgba(0,0,0,.4)27%,rgba(0,0,0,.65)55%,rgba(0,0,0,.8)100%);border-bottom-left-radius:6px;border-bottom-right-radius:6px;}.c_cardTitle{margin-bottom:12px;}.fifthsItem{.c_cardBottom{height:50%;}}

【CSS】BEM・MindBEMding の命名規則をミスりがちな人に送る超簡単な覚え方

$
0
0

BEMMindBEMdingの命名規則は、
一見複雑そうに見えるけど、至ってシンプルで覚えやすいです。
その覚え方を超簡単に説明いたします!

基本ルール

BEMMindBEMdingの違い

正直この部分は覚えなくて良いです!!
両方ともBEMなんだな〜程度で大丈夫です。

  • BEM
    • CSS設計のこと
  • MindBEMding
    • BEMをCSSのクラス名に適用するために作られた命名規則
    • MindBEMdingのことをBEMと呼ばれがち。笑

参考:[CSS]BEMの方法論とMindBEMdingという記法

書き方

BEMでは、BlockElementModifireの三つに分けて、命名します。

  • Block - 一番大きな塊。
  • Element - 塊に対する子要素
  • Modifire - それぞれの要素の装飾(色を変えたり、形を変えたり)

基本的には、BlockElementModifire
Block__Element--Modifire
と結合して書きます。

ミスりがちな部分と覚え方

ModifireElementをミスりがちな人へ

  • __は下に線があるので子要素
  • --は真ん中に線があるので同階層のバージョン違い

と私は覚えています。

スクリーンショット 2020-09-06 16.18.55.png

.Block--Modifire{}/* Blockの同階層のバージョン違い */.Block__Element{}/* Blockの子要素 */.Block__Element--Modifire{}/* Blockの子要素に対するバージョン違い */

ハイフンやアンダーバーの個数をミスりがちな人へ

BEMが基本的にハイフンやアンダーバーが2本なのは、
単語の命名にケバブケースを使う可能性があるからです。
(キャメルケースに統一して、個数を1つにしているケースもちらっとお聞きしますが、
共通認識取りづらいためおすすめはしません!)

Viewing all 8679 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>