Slide 1

Slide 1 text

HTML/CSS

Slide 2

Slide 2 text

今日のゴール HTML/CSSの基本・概要を理解して、 自分で調べられるようになる。

Slide 3

Slide 3 text

今日のながれ 1. 午前:HTML/CSS 概要 2. 午後:ワークショップ

Slide 4

Slide 4 text

Slide 5

Slide 5 text

HTMLとは https://developer.mozilla.org/ja/docs/Learn/HTML/Introduction_to_HTML/Getting_started 1. Hypertext Markup Language 2. プログラミング言語ではない 3. ウェブサイトの構成をブラウザに対して伝え る 4. コンテンツをタグで囲むことで意味づけする → マークアップする

Slide 6

Slide 6 text

HTMLの構造

今日はいい天気

•開始タグ •終了タグ

Slide 7

Slide 7 text

HTMLのネスト

今日はいい天気

•要素の終了タグの順番を守る

今日はいい天気

Slide 8

Slide 8 text

基本はこれだけ

Slide 9

Slide 9 text

質問: なぜマークアップするの?

Slide 10

Slide 10 text

なぜマークアップするの? ウェブサイトの構成をブラウザに対 して伝える → コンテンツをユーザーに伝える

Slide 11

Slide 11 text

ブラウザ? • Chrome (Android, Desktop) • Internet Explorer • Safari (iOS, MacOS) • Firefox あとは?

Slide 12

Slide 12 text

ブラウザ? • Chrome (Android, Desktop) • Internet Explorer • Safari (iOS, MacOS) • Firefox • ロボット(検索エンジン、クローラ) • スクリーンリーダー

Slide 13

Slide 13 text

ブラウザとそのユーザー • Chrome (Android, Desktop) • Internet Explorer • Safari (iOS, MacOS) • Firefox • ロボット(検索エンジン、クローラ) • スクリーンリーダー → 様々なユーザー属性の方が、様々なデバ イス、通信環境で利用する

Slide 14

Slide 14 text

ユーザー属性 • 若年層〜高齢層〜ハンディキャップも • 認識や視力などの能力にばらつき デバイス • 最新端末〜古い端末 • 性能にばらつき 通信環境 • モバイル〜デスクトップ • 通信速度にばらつき

Slide 15

Slide 15 text

なぜマークアップするの? コンテンツをユーザーに伝える → アクセシビリティ • 情報の再利用 • マシンリーダブル

Slide 16

Slide 16 text

ブラウザが解釈できるようにコンテン ツを適切に構造化すること →セマンティクス マークアップすること

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Important Important 見た目は同じだけど…

Slide 19

Slide 19 text

Important Important 見た目は同じだけど… 意味(マークアップ)はまったくちがう →見た目ではなく、要素・構成

Slide 20

Slide 20 text

(参考) クローラのアクセス メディアによってはクローラのアク セスは無視できない量になっている → robots.txt で制御しきれない

Slide 21

Slide 21 text

(参考) 画像の alt 属性 画像の読み込み失敗や、クローラーボット、また はスクリーンリーダーからアクセスしたときなど に画像コンテンツの代替になる文字。 画像が使用できない場合にのみ使用される “RECRUIT”

Slide 22

Slide 22 text

(参考) 画像の alt 属性 すべての画像に alt 属性は必要だが、常にテキスト が必要とは限らない。 • 重要な画像には内容を説明する alt 属性を指定 • 装飾的な画像にはalt=“” を指定する。

Slide 23

Slide 23 text

WEBは複雑に、用途もひろがる

Slide 24

Slide 24 text

リクルート初期のサービス

Slide 25

Slide 25 text

最近のサービス

Slide 26

Slide 26 text

HTML5 https://ja.wikipedia.org/wiki/HTML5 • ウェブアプリケーションのプラットフォーム • さまざまな機能追加 • マルチメディア要素(動画、音声)

Slide 27

Slide 27 text

Webアプリケーション • 主な目的が閲覧から操作へ • 価値が情報の取得から課題の解決へ https://ja.wikipedia.org/wiki/HTML5

Slide 28

Slide 28 text

Webアプリケーションでの HTMLの役割 • UI: ユーザーインターフェース を担う • アプリケーションとのやりとり • 様々なユーザー • 様々なデバイス • 様々な通信環境 → パフォーマンスの重要性

Slide 29

Slide 29 text

モバイルユーザーが重視するもの 2017年のGoogle の調査報告: https://www.awwwards.com/brainfood-mobile-performance-vol3.pdf

Slide 30

Slide 30 text

ウェブアプリのパフォーマンス (これまで) • サーバからの何秒でコンテンツを返せるか • 秒間にいくつのリクエストを扱えるか リクエスト レスポンス

Slide 31

Slide 31 text

ウェブアプリのパフォーマンス (これまで) • サーバからの何秒でコンテンツを返せるか • 秒間にいくつのリクエストを扱えるか リクエスト レスポンス

Slide 32

Slide 32 text

ウェブアプリのパフォーマンス (これまで) • サーバからの何秒でコンテンツを返せるか • 秒間にいくつのリクエストを扱えるか リクエスト レスポンス

Slide 33

Slide 33 text

ウェブアプリのパフォーマンス (これまで) • サーバからの何秒でコンテンツを返せるか • 秒間にいくつのリクエストを扱えるか リクエスト レスポンス

Slide 34

Slide 34 text

ウェブアプリのパフォーマンス (現在) • コンテンツが表示されるまで何秒かかるか • 操作可能になるまで何秒かかるか 待ち時間の80-90%がフロントエンド → 期待する結果が得られるまでの時間 リクエスト レスポンス

Slide 35

Slide 35 text

ウェブアプリのパフォーマンス (現在) • コンテンツが表示されるまで何秒かかるか • 操作可能になるまで何秒かかるか 待ち時間の80-90%がフロントエンド → 期待する結果が得られるまでの時間 リクエスト レスポンス 過去10年間で モバイルページの中間値は、 ファイルサイズ:1568KB +983% 読み込み時間: 6s +25% おおきく増加している https://httparchive.org/

Slide 36

Slide 36 text

パフォーマンスの重要性 • 2018/07 Google の SpeedUpdate “Using page speed in mobile search ranking” https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html ページの速度 をモバイルの検索順位に使用する We encourage developers to think broadly about how performance affects a user’s experience of their page and to consider a variety of user experience metrics. パフォーマンスがページのユーザーのエクスペリエンスにどのように 影響するかについて広く考え、さまざまなユーザーエクスペリエンスの 測定基準を検討することを開発者に推奨します。

Slide 37

Slide 37 text

https://developers.google.com/web/fundamentals/performance/rail 参考

Slide 38

Slide 38 text

パフォーマンスの計測ツール(参 考) • Page Speed Insight 下記の CrUX と Lighthouse の情報をサマリでレポートするサービス • Chrome User Experience Report (CrUX) Chrome ブラウザの実際の膨大な利用データから サイト単位でパフォーマンス情報がBigQueryで公開されている • Lighthouse Chrome 上で実行できる開発機能としても提供されている ページ実行時のブラウザのパフォーマンス状態が詳細に取得できる • Web Page Test

Slide 39

Slide 39 text

ITP2.1 Mixed Contents Same Site Cookie Cookie規制 ガイドライン ITP2.2 ITP2.3 MFI UA固定 Speed Update 最近よく聞く、、

Slide 40

Slide 40 text

ITP2.1 Mixed Contents Same Site Cookie Cookie規制 ガイドライン ITP2.2 ITP2.3 MFI Flash サポート停止 Speed Update SEO SEO ブラウザ ブラウザ ブラウザ 法規制 SEO ブラウザ ブラウザ 最近よく聞く、、

Slide 41

Slide 41 text

最近、Webというプラットフォームまわりの アップデートについて話題が多い。 業界的にも高い関心が集まっている。

Slide 42

Slide 42 text

Webというプラットフォームの構成要素 • OS:iOS, iPadOS, Android, Windows, Mac, • ブラウザ:Chrome, Safari(Webkit), Firefox, Edge, IE • ITプラットフォーマー:Google, Apple, Microsoft, など • ほかにも、検索(SEO)、Web自体の仕様など → Webサービスの収益に直接的に影響する ような破壊的な変更が増えている

Slide 43

Slide 43 text

プライバシー保護 • ユーザートラッキング広告 • 多くのユーザー情報を取得可能な問題 • トラッキングされる情報の種類や、その利用方法 などに関する明確な基準がない • 情報収集の方法も不透明 • 現在の仕組みや法律では、ユーザーの意図しない 形でそれらの情報が利用されることを防止できな い

Slide 44

Slide 44 text

プライバシー保護のグローバルな動き • GDPR(EU):2018年施行 • CCPA(米国):2020年施行 • 公取委 Cookie規制ガイドライン案:2019年発表 • ePrivacy規則(EU):検討中 自分の個人データをコントロールする権利を保障する目的 ePrivacy規則: 主にcookieなどによる個人の行動トラッキングを規制する内容まで踏み込んでいる。

Slide 45

Slide 45 text

個人の行動トラッキング • ユーザー操作、流入経路などを可視化・分析する 例) • アクセス解析 • コンバージョン計測 • リターゲティング → たとえば、複数のサイトをまたがって計測する クロスサイトトラッキングが問題になっている

Slide 46

Slide 46 text

クロスサイトトラッキングの問題 サイト1 広告基盤など Aさん

Slide 47

Slide 47 text

クロスサイトトラッキングの問題 Aさん 広告基盤など 閲覧 送信 Aさん:サイト1:閲覧 サイト1

Slide 48

Slide 48 text

クロスサイトトラッキングの問題 広告基盤など カート 送信 Aさん Aさん:サイト1:閲覧 Aさん:サイト1:カート サイト1

Slide 49

Slide 49 text

クロスサイトトラッキングの問題 広告基盤など CV 送信 Aさん Aさん:サイト1:閲覧 Aさん:サイト1:カート Aさん:サイト1:CV サイト1

Slide 50

Slide 50 text

Aさん:サイト1:閲覧 Aさん:サイト1:カート Aさん:サイト1:CV Aさん:サイト2:閲覧 クロスサイトトラッキングの問題 Aさん 広告基盤など 閲覧 送信 サイト2

Slide 51

Slide 51 text

クロスサイトトラッキングの問題 広告基盤など カート 送信 Aさん サイト2 Aさん:サイト1:閲覧 Aさん:サイト1:カート Aさん:サイト1:CV Aさん:サイト2:閲覧 Aさん:サイト2:カート

Slide 52

Slide 52 text

クロスサイトトラッキングの問題 広告基盤など CV 送信 Aさん サイト2 Aさん:サイト1:閲覧 Aさん:サイト1:カート Aさん:サイト1:CV Aさん:サイト2:閲覧 Aさん:サイト2:カート Aさん:サイト2:CV

Slide 53

Slide 53 text

クロスサイトトラッキングの問題 • サービス・サイトをまたがって全く別の場所の行動を紐づけ可能 >> 本来の目的での必要分を超えて情報が収集できてしまう >> その情報の管理は収集者に委ねられている >> ユーザーはコントロールできていない

Slide 54

Slide 54 text

ブラウザベンダーの動き • クロスサイトトラッキングを制限する方向 • ユーザーの識別に利用される機能、情報利用の制限 (Cookie、Referrer、ブラウザストレージなど利用が対象) → 破壊的な変更(ITP, Same Site Cookieなど)になり、 副作用としてサイトの機能不全が多発。

Slide 55

Slide 55 text

副作用の例 • 広告のパーソナライズ • 効果測定 • セッション管理 • ユーザー情報保存 • アクセス解析 • 外部ASP機能 • ABテスト (Googleの試算では、50%収益減) https://www.youtube.com/watch?v=WnCKlNE52tc&list=PLNYkxOF6 rcIDA1uGhqy45bqlul0VcvKMr&index=17&t=0s

Slide 56

Slide 56 text

(参考) サービス機能影響へのWebkitの声明 以下は、意図しない副作用と説明されている • Funding websites using targeted or personalized advertising (see Private Click Measurement below). • Measuring the effectiveness of advertising. (広告の効果計測) • Federated login using a third-party login provider.(ログインIDプロバイダー) • Single sign-on to multiple websites controlled by the same organization. (SSO) • Embedded media that uses the user’s identity to respect their preferences. • “Like” buttons, federated comments, or other social widgets.(ソーシャルWidget) • Fraud prevention.(不正防止) • Bot detection.(ボット検知) • Improving the security of client authentication.(クライアント認証のセキュリティ向上) • Analytics in the scope of a single website. (単一サイトでのアクセス解析) • Audience measurement. https://webkit.org/tracking-prevention-policy/

Slide 57

Slide 57 text

今後、さらに加速していく 意図していない影響については、今後代替手段が提供される Google, Apple は標準化に向けて協働している • Privacy Sandbox API • Privacy Preserving Ad Click Attribution Google は 2年を目標に段階的なクロスオリジンCookie廃止 をアナウンス → Webに関わる仕様の変更も起きてきている https://blog.chromium.org/2020/01/building-more-private-web-path-towards.html

Slide 58

Slide 58 text

Webに関わる仕様の変更が起きている ↓ サービスはもちろん影響を受けるし、 HTMLの仕様の追加・変更も起きている

Slide 59

Slide 59 text

あらためてHTML

Slide 60

Slide 60 text

HTMLの構造 Hello

Hello Text

Slide 61

Slide 61 text

HTMLの構造 Hello

Hello Text

headタグ メタデータ bodyタグ コンテンツ

Slide 62

Slide 62 text

headタグ メタデータ bodyタグ コンテンツ • ページのメタデータ、画面に表示されない • タイトル • エンコーディング • ページの説明 • アイコン(faviocon) • OGP(open graph protocol)

Slide 63

Slide 63 text

マークアップしてみよう 知っているタグでやってみましょう。 ここからは各自PCで。 早く終わった人はグループ内で困っ ている人がいたら助けてあげてくだ さい。

Slide 64

Slide 64 text

流れ: 1. ペーパーコーディング 2. マークアップ(HTML作成) 3. デザインを整える(CSS作成)

Slide 65

Slide 65 text

ペーパーコーディング •(重要)全員で1つの構成をつくって いく •コードを書く前にざっくり設計する •まずは大まかに要素わけ •ヘッダー、ナビゲーション、新規追 加など役割を明らかにする •繰り返すもの •共通なもの

Slide 66

Slide 66 text

ul.post-message-actions ショートカット button(profile-icon-button クラス) h1 button.post-movie Button.post-message header button.post-movie

Slide 67

Slide 67 text

タグの例 • html, head, body, meta, script, link • header • main • nav • ol, ul, li • div • span • button • a • img

Slide 68

Slide 68 text

HTMLのデバッグ headタグ メタデータ bodyタグ コンテンツ • 「Cmd+opt+u」で ソースを表示 • 「Cmd+opt+i」で Chrome devtools を開く Source > 左ペインからドキュメントを選択

Slide 69

Slide 69 text

CSS Cascading Style Sheet

Slide 70

Slide 70 text

CSSの目的 https://ja.wikipedia.org/wiki/Cascading_Style_Sheets headタグ メタデータ bodyタグ コンテンツ • HTML や XMLの要素をどのように修飾(表示)するかを指示する、W3Cに よる仕様の一つ。文書の構造と体裁を分離させるという理念を実現する為に 提唱されたスタイルシートの、具体的な仕様の一つ。 • CSSはHTMLで表現可能と考えられるデザインの大部分を実現できる要素を 取り入れつつ、新たなデザイン機能を備える。また以下のような特徴を持つ。 • ページを表示するメディアに合わせてスタイルシートを切り替えること で、メディアごとに表示を変化させることができる。 • ユーザーエージェント(多くの場合ウェブブラウザ)、ウェブサイト制 作者、ユーザがそれぞれ定義したCSSのもたらす効果を重ね合わせる (カスケードする)ことができる。

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

No content

Slide 73

Slide 73 text

reset.css, normalize.css headタグ メタデータ bodyタグ コンテンツ • ブラウザのデフォルトスタイルをリセット → reset.css • ブラウザのデフォルトスタイルを活かしつつ差異 をなくす → normalize.css

Slide 74

Slide 74 text

CSSの問題 headタグ メタデータ bodyタグ コンテンツ • 全てがグローバル • セレクタの詳細度 • スタイルが子要素に継承される • 同じセレクタに対してスタイルを設定できる • いろいろな場所に記述できる (cssファイル、style属性、styleタグ、JS) これらが組み合わせ可能

Slide 75

Slide 75 text

(参考)セレクタの詳細度 https://developer.mozilla.org/ja/docs/Web/CSS/Specificity headタグ メタデータ bodyタグ コンテンツ

Slide 76

Slide 76 text

• BEM • OOCSS • FLOCSS • ITCSS • Atomic Design 設計で対処

Slide 77

Slide 77 text

BEM: Block Element Modifier BEMの例 ルール化することでCSSの問題を回避しようとする

Slide 78

Slide 78 text

• ブラウザのネイティブ実装 • カスタム要素を定義できる • HTMLテンプレート • ShadowDOM • 要素に閉じたスタイルを定義できる • 記述したスタイルの影響をコントロール可能 WebComponents

Slide 79

Slide 79 text

各ブラウザの対応状況 https://caniuse.com/#search=shadow%20dom