- 投稿日:2021-01-19T23:02:54+09:00
プログラムを少しかじった私がバックエンドエンジニアとして働くためにECサイトを作り始めてみた その⑥
対象者
・バックエンドエンジニアを志す人
・web開発初学者
・ECサイトを作成しようと思っている人
・初学者の勉強仮定を見たい方はじめに
こんにちは!
この投稿はその⑤の続きです。今週は別プロダクトの発表が週末にあります!
前置きは短めに!目次です!目次
1.今回の作業報告
画像を使ってざっくり報告
◯商品の表示機能
商品一覧(全部)と男性向け商品と女性向け商品を一覧で表示させる仕様で実装しています。
DBに男性向けと女性向けの識別するカラムをテーブルに入れて判定させました。
ご注文確認画面へ。
カートの情報と送信先が表示されるようにしています。
その他、ユーザー毎のログイン機能など他にも実装しましたが割愛します。
2.反省点
実装の仕様がちゃんと決まっていないために大幅に時間が取られてしまいました。
数量が増えたときどうするかなどの仕様はあらかじめ決める必要がありそうです。
テーブル結合などもうちょっと踏み込んで実装できれば色々表現できる幅が広がりそうです。3.次のステップ
カート内の商品計算とかその他もろもろを引き続き実装していきます。簡単ですが今回は以上です。
- 投稿日:2021-01-19T22:46:45+09:00
wordpress を使ってエンジニアポートフォリオ作成
Wordpressを使ってエンジニアポートフォリオを作成
以下のサイトからテーマを取得
https://webdesign-trends.net/entry/11500
DEMOサイト
https://demos.pixelgrade.com/noah-lite/about/Topページの作成
SmartSlider3
メニューバー
Slider
問い合わせフォームを作成
https://www.xserver.ne.jp/blog/contact-form/
多言語対応
SEO対策
ポートフォリオでは特にSEO対策する予定はないが
今後ブログ作成など行うので書く予定まとめ
作成完了したらまたいろいろ書く
- 投稿日:2021-01-19T20:41:58+09:00
改行が含まれる文字列をそのまま表示する方法
- 投稿日:2021-01-19T20:31:02+09:00
Material Icons Guide の使い方
Material Icons Guide とは?
Googleが提供しているアイコンフォントです。
アイコンは無料で使用できます。Material Icons Guideの使い方
HTMLのヘッダー内(head要素内)に下記のコードを入れます。
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">次に公式サイトから使いたいアイコンをクリックして選択します。
Material Icons Guide 公式サイト左下の
Selected Icon
ボタンをクリックすると以下のようなコードが表示されるので、コードをコピーしてHTMLの表示したいところに貼り付けます。
(アイコンのクラス名は全て同じなので、favorite
の部分でどのアイコンが表示されるかが決まります。)<span class="material-icons"> favorite </span>選択したアイコンが表示されれば成功です。
Material Iconsはアイコンフォントなので、CSSで色やサイズを変更することができます。
- 投稿日:2021-01-19T20:03:56+09:00
ChromeでCORSエラーを無視したい
jqueryでincludeしようとしたら怒られた
開発中のアプリのモックを作っている時にjqueryのload()でincludeしようとしたらこんなエラーを吐いてしまい、上手いことできない。
Access to XMLHttpRequest at 'file:///C:/"ファイルへのパス"/include.html' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
このエラー、どうやらCORSというものに関係したエラーらしい。
ちなみにフロントの人たちは結構な頻度で遭遇するのだそう。初めて知った。。
解決策
解決策としては、ローカルサーバーを立ち上げてそこで処理してもらうとか、ブラウザを変えるというのが常套手段らしいのだけど、どうにも面倒くさいなーと思いつつ解決策を探していたら、ChromeにCORSエラーを無視させる方法を見つけた。
結論、Chrome起動時のオプションに以下を入れてやると出来る。--disable-web-security --user-data-dir="C:\Chrome dev session"ショートカットを作ってプロパティを開く
Chromeへのショートカットを作り、アイコンを右クリックしてプロパティを開く。リンク先の末尾にオプションを突っ込む
リンク先の入力ボックス内リンク末尾に上記の--disable-web-security --user-data-dir="C:\Chrome dev session"を追加してOKあとはこのショートカットでChromeを起動して、見たいhtmlファイルをドラッグ&ドロップしてやればCORSエラーが沈黙しているのを確認できる。
決しておすすめしない
ここまで紹介してなんですが、つまりは敢えてセキュリティレベルを下げる方法なわけで決しておすすめはしない。
今回、私は単なるモック作りのため一切のネットワークに繋がっていない状態で行ったが、例えば開発現場で多用して何か問題が起きても私は一切責任を負えない。結局のところサーバー立てるのが一番無難だと思います。
そもそもjqueryだけでincludeするなんてことがほぼ無いだろうし。ただ、前の開発で誰かが普通に作れてたんだよなぁ。今度聞いてみよう。
- 投稿日:2021-01-19T19:24:45+09:00
要素間でフォーカスを移したときblurイベントとfocusイベントは同期的に実行される
ChromeとFirefoxの最新版で確認済。仕様通りの挙動なのだろうか。
<input name="input1" /> <input name="input2" />document.querySelectorAll('input').forEach((input) => { input.addEventListener('focus', (e) => { console.log(`Focus: ${e.target.name}`); setTimeout(() => { console.log(`Focus async: ${e.target.name}`); }, 0); }); input.addEventListener('blur', (e) => { console.log(`Blur: ${e.target.name}`); setTimeout(() => { console.log(`Blur async: ${e.target.name}`); }, 0); }) })input1からinput2にフォーカスを移したときのコンソール出力は
Blur: input1 Focus: input2 Blur async: input1 Focus async: input2となっていた。
サンプル
- 投稿日:2021-01-19T14:55:28+09:00
デイトラWeb制作コース初級編DAY7の学び
【この記事に書いてあること】
プログラミング学習7,8日目⏩
— ふりっく?トリプルゼロの(これから)Webマーケター (@FuRiC_twi) January 19, 2021
Web制作コース 初級編DAY7?
学習時間:2時間⏳
学習内容:ゼロからサイトを作る③(レスポンシブ対応)✏
学び?
・画像の上に文字を載せるには「background-image」を使う
・ レスポンシブ対応コードは、「@media only screen and (max-width:767px)」#デイトラ pic.twitter.com/ZUaovilfBc【学習内容】
「ゼロからサイトを作る」「レスポンシブに対応させる」
【学習時間】
2時間
【学び】
1 画像の上に文字を載せるには、
background-image
を使いその上に<p>
`で文字を書くstyle.cssbackground-image: url(../img/main-vsual-nontitle.png);index.html<p class="top-title"> 1日1題30日で<br> プロのWebエンジニアになろう! </p> <p class="top-subtitle"> 毎日設定された課題をこなすだけ!<br> 未経験から30日でプログラミングスキルをつけよう </p>2 レスポンシブ対応 コード
style.css@media only screen and (max-width:767px) { この中にレスポンシブ用のCSSを記述していく! }3 なぜ、
max-width:767px
なのか
→ 一番出回っているタブレットのipadのサイズが768px
一般的なPCのサイズは1200pxで768~1200pxはPCと同じ表示を出して
767px以下(スマホ)からはレスポンシブに対応させるから
- 投稿日:2021-01-19T04:13:02+09:00
見出しテキストに蛍光マーカーを引いたデザインを作りたかったが、横全体にCSSが適用されてしまう
はじめに
こちらは、エンジニアの新たな学びキャンペーンに向けた記事となります。
ざっくり理解するHTML5・CSS3 | HTML5とCSS3を使って、お店のホームページ(HP)を作ってみよう!を含む、いくつかのコンテンツを参考にしながら、
ブロックレベルとインライン要素の違いについて、学習したことを記事にします。今回、問題になったこと
次の画像で示すような、まるで蛍光マーカーを引いたかのようなデザインの見出しを作成しようとしました。
しかし私が書いたHTMLとCSSでは、そうはいきませんでした。
テキスト部分だけ強調されるはず!という想定とは異なり、
次のように、横全体へと蛍光マーカーが飛び出てしまっていました。こちらの問題を解決した様子を下記に示します。
実行環境
- Google Chrome 87.0.4280.141
解決への道のり
結論から述べると、ブロックレベルとインライン要素に対する理解が浅いために、
意図しない挙動が発生しました。ブロックレベルとインライン要素を考える
ブロックレベルとは
一行全て(横幅いっぱい)のボックになるので、その後の要素は横並びにはできない。
ブロックレベル要素の中にブロックレベル要素を入れられる。インライン要素とは
基本、文字の装飾などで使われる要素。文字幅分のボックスになるので、横並びにすることができる。
インライン要素の中にブロックレベル要素は入れられない。実行していたソースコードと原因の特定
まずは実行していたソースコードの一部を示します。
index.html<h1> <div class="lightup"> アイデアブック(仮) <div/> </h1>main.cssh1 { text-align: center; margin: 0; padding: 10px; } .lightup { background: linear-gradient(transparent 60%, yellow 40%); }『ブロックレベルは一行すべて』、『インライン要素は文字幅ぶんのボックスになる』とのことなので、
今回使われている要素はどちらにあたるのか調べてみます。ブロックレベル:h1, div
インライン要素:なし従ってインライン要素がないために、このテキストは"一行すべて"というブロックレベルでの実装となり、
横全体にマーカーが引かれてしまうのは当然の結果でした。従って、テキストをインライン要素に変更する方法を考えます。
CSS適用の優先順位を考えながら改善する
テキストに紐付けられている要素やクラス(
h1
,div
,lightup
)のすべてに、
インライン要素を付与(display: inline;
)すれば、とりあえず解決しそうな気もします。
しかし、要素やクラスを使い回すことを想定すると、実用的ではありません。従って、1つだけインライン要素を付与するだけで済むように、CSSの適用優先順位を調べます。
セレクタの種類によって優先順位が決定づけられるようなのですが、
今回はh1、divという要素セレクタに加え、lightupというクラスセレクタがあります。
次の引用から、クラスに対してインライン要素を適用すれば良いことがわかります。そこで、lightupクラスにインライン要素を付与しました。
次がソースコードと、その実行結果です。main.cssh1 { text-align: center; margin: 0; padding: 10px; } .lightup { background: linear-gradient(transparent 60%, yellow 40%); display:inline }テキスト部分だけ蛍光マーカーで引いたようなデザインにしたい!という意図が反映できました!
参考