WEBサイト制作の勉強

WEBサイト制作の勉強の為の解説ブログです。

フェリカテクニカルアカデミー

ajaxを使った非同期通信

Ajaxとは「Asynchronous(エイシンクロナス) JavaScript + XML」の略です。簡単に言えばJavaScriptXMLを使って非同期にサーバとの間の通信を行うことが出来ます。
通常Webページの内容を変更するためには画面遷移やリロードする必要がありますが、ajaxを使用すればリロードせずにページの内容を変更することができます。
サーバーにアクセスすることなくページを変更できるのでサーバーの負荷軽減や、リロードの時間の解消によるUX(ユーザーエクスペリエンス)の向上などが利点としてあげられます。


jQueryでは$.loadと$.ajaxの2種類の方法があります。


$.loadを使って外部ファイルを読み込む

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>loadを使った非同期通信</title>
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script>
$(function(){
  $('#text').load('list.txt');
 });
</script>
</head>
<body>
<div>
<ul id="text"></ul>
</div>
</body>
</html>


list.txt

<li>テスト1</li>
<li>テスト2</li>
<li>テスト3</li>
<li>テスト4</li>
<li>テスト5</li>


$.ajaxを使った方法

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS overflow</title>
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script>
$(function() {
 $.ajax({
	url: 'list.txt',
	dataType: 'text',
	success: function(data) {
	$('#text').html(data);
	},
	error: function(data) {
		alert('error');
	}
 });
});
</script>
</head>
<body>
<div>
<ul id="text"></ul>
</div>
</body>
</html>


www.sejuku.net

求職者支援訓練 【はじめてのwebサイト制作科】 2020年4月開講クラス

f:id:yachin29:20200228021204p:plain


www.felica.info

東京池袋のフェリカテクニカルアカデミーでは、只今2020年4月16日より 開講する「はじめてのwebサイト制作科」の受講生を募集しています。
600時間を超える講座を無料で受講出来、プロになるために必要なスキルを身につける事が出来ます。また、職業訓練受講給付金として給付金を受け取ることが出来ます。(受給資格がありますので、ご確認下さい。)
詳細に関してはフェリカテクニカルアカデミーに直接お問い合わせ下さい。TEL:03-3981-7201

募集期間:3月16日まで

訓練期間:2020年4月16日 ~ 2020年10月15日

訓練時間:15時40分 ~ 20時35分


www.felica.info



フェリカテクニカルアカデミーでは、施設見学会を行っていきます。
施設見学会へのご予約はwebフォームでも受付けております。

ご予約フォームはこちらから

www.felica.info





求職者支援訓練とは?

求職者支援制度とは、職業訓練による能力形成を通じ、真剣に就職を目指そうとする方のための制度です。雇用保険を受給できない失業者の方に対し、無料の職業訓練(求職者支援訓練)を実施し、一定の支給要件を満たす場合は、職業訓練の受講を容易にするための給付金を支給するとともに、ハローワークにおいて強力な就職支援を実施することにより、安定した「就職」を実現するための制度です。

求職者支援訓練の受講を希望される方は、まずは求職者支援訓練を受講できる資格があるかご確認ください。不明なことがございましたら、フェリカテクニカルアカデミーに問い合わせいただくか、最寄のハローワークに直接問い合わせしてご確認ください。


円楽とシロのハロートレーニング(求職者支援制度)





Web制作の現場に行けるインターンシップ制度の導入

フェリカでは、Web制作会社を中心にインターンシップ制度を導入しています。学校に通いながら、空き時間に実際の職場へ行き、現場で求められるスキルや会社の雰囲気を肌で感じる機会を設けています。インターン先で就職というケースも実績として非常に多いです。入校した際には是非チャレンジしてください。


どんな授業を行うの?

デザインやプログラムがはじめての方でも基礎からしっかり学ぶことができます。今までも様々な経歴の方々が受講されてきましたが、講師がしっかりサポートするので真剣に学べば立派なWEBサイトが作れます。

求人募集がある訓練校

授業内容や受講生のレベルを把握し、希望する方向性を話し合った上で、求人依頼のあった企業に紹介することができます。また、資格を持ったキャリアコンサルタントへ受講生一人ひとりが相談できる環境になっています。


新しい技術

GitやSASSといった、現場で求められる新しいスキルなども積極的に授業で取り入れていきます。

f:id:yachin29:20180728033807p:plainf:id:yachin29:20190813035820p:plain


スマホサイト制作

最近では、Google検索を使用しているほとんどのユーザーは、モバイル端末から検索を行うようになっています。Googleだけでなく、多くのサイトでPCよりもスマートフォン利用者の方が多い現在、今まで以上にスマホサイトが重要になってきます。
授業ではGoogleが推奨する「レスポンシブデザイン」や「動的な配信」でのサイト制作を学ぶ事が出来ます。
また、モバイルファーストインデックス (MFI)といった、最近の考え方やアルゴリズムも学び、よりスマートフォンに適したUI・UX設計を行っていきます。

jQueryの「animate」メソッドを使ったアニメーション

animateメソッドとは?
jQueryのanimateメソッドを使うと簡単にアニメーション(値を変化)させることが出来ます。
animateメソッドは値で指定出来る物(margin、color、width、positionなど)に対し有効です。

$('#box').animate({
    'left': '500px',
    'top': '300px'
});
メソッドチェーンを使い、順番に処理を行う
$('#box').animate({'left': '500px'}).animate({'top': '300px'});
速度を調節する

「slow」「normal」「fast」の文字列を指定するか、直接数値で指定します。

$('#box').animate({
    'left': '500px',
    'top': '300px'
},1000);
イージングの設定

イージングの設定をすれば「徐々に速くなる」などアニメーションに変化をつけることができます。
標準では「linear」と「swing」の2種類しかありません。「jQuery Easing Plugin」などを導入することでバリエーションが増えます。

$('#box').animate({
    'left': '500px',
    'top': '300px'
},1000, 'linear')
アニメーションの終了後に何かする
$('#box').animate({
     'left': '500px',
    'top': '300px'
},1000, 'linear', function(){
     alert('終わりました');
    });


このようにjQuery.animate() は大変便利ですが、CSS3の「transition」と「transform」を使うことで同じようなアニメーションがよりスムーズに動かす事が出来ます。「transform」の場合、GPUを使って処理される為、CPUを使って処理される「jQuery.animate()」よりCPUに負荷がかからなくなるので、レンダリングの高速化につながります。
ただ、GPUは処理するたびにメモリ(VRAM)を消費していきます。メモリは有限なので足りなくなると、CPUで処理しなくてはならない部分が増えてしまい、逆に処理が遅くなってしまうこともあ流ので注意が必要です。




Webサイトのパフォーマンス改善を行うためにGPU処理を取り入れてみた | un-Tech

スプリットレイアウトの作成

f:id:yachin29:20170215112552p:plain


スプリット=分割するデザインレイアウトのことです。画面を縦2つに分割して見せることで左右の対比が生まれます。
「スプリットレイアウト」の中でも、デザイン上のスプリットレイアウトのみのスクロール一体タイプと、CSSで画面半分を固定表示にして、残りの半分のみスクロールさせるスクロール分割タイプに大別されます。
さらには画面を4分割や5分割など、色々なパターンがあります。





www.nodai.ac.jp


www.haluta.jp


minico.handmade.jp

レスポンシブサイトの制作

今回のレスポンシブサイトの制作ポイント

1、cssファイルは外部リンクでリンクさせ、適切なリセットをかける事
2、webアイコン(Google Fonts)(Font Awesome)を使う事
3、3つあるコンテンツ部分のホバーにアニメーションを追加




使用するテキスト

Ristorante Felica


Home
Concept
Menu
Access


Ristorante Felicaは、
食とアートと音楽が交差する空間を創造します。
シェフ・矢島が提供するのは、イタリア料理に「東京」の
エッセンスを取り入れたモダンイタリアン。
店内は、新進気鋭のアーティストとコラボレーションしたアートギャラリー。
心地よいチルアウトミュージックが流れる空間でくつろぎのひとときをお過ごしください。


Concept
画像
仮テキスト

Menu
画像
仮テキスト

Access
画像
仮テキスト


©️ Ristorante Felica


作例
Cafe de Felica




2月4日作業分
index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>レスポンシブサイトの作成</title>
<meta name="viewport" content="width=device-width">
<link href="https://fonts.googleapis.com/css?family=Cinzel&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="header-inner">
<h1>Ristorante Felica</h1>
<nav class="g-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Concept</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Access</a></li>
</ul>
</nav>
</div>
</header>

<div class="main-visual">
<img src="img/main.jpg" alt="">
</div>

<div class="lead">
<h2>Ristorante Felicaは、
食とアートと音楽が交差する空間を創造します。</h2>
<p>シェフ・矢島が提供するのは、イタリア料理に「東京」のエッセンスを取り入れたモダンイタリアン。<br>
店内は、新進気鋭のアーティストとコラボレーションしたアートギャラリー。<br>
心地よいチルアウトミュージックが流れる空間でくつろぎのひとときをお過ごしください。</p>
</div>


<div class="wrapper">
<div class="block">
<a href="#">
<h3>Concept</h3>
<p class="block-photo"><img src="img/01.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>

<div class="block">
<a href="#">
<h3>Menu</h3>
<p class="block-photo"><img src="img/02.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>

<div class="block">
<a href="#">
<h3>Access</h3>
<p class="block-photo"><img src="img/03.jpg" alt=""></p>
<p class="block-txt">つれづれなるまゝに、日暮らし、硯にむかひて、心にうつりゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐる</p>
</a>
</div>
</div><!--/.wrapper-->
<footer>
<p><small>&copy; Ristorante Felica</small></p>
</footer>
</body>
</html>


スタイルシート

@charset "utf-8";

/* ress.css • v1.2.2
 * MIT License
 * github.com/filipelinhares/ress
 */html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0;box-sizing:border-box}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none;vertical-align: bottom}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}ul,ol{list-style:none;}a{text-decoration:none;}.wrapper{overflow:hidden;}body{overflow-y:scroll;}
 

header{
border-bottom: 4px solid #de7330;
padding-top: 20px;
}
.header-inner{
max-width: 1260px;
margin: 0 auto;
display: flex;
justify-content: space-between;
}
h1{
color: #de7330;/*メインカラー*/
font-family: 'Cinzel', serif;
font-size: 40px;
}
.g-nav>ul{
display: flex;
}
.g-nav li{
margin: 0 20px;
}
.g-nav a{
display: block;
padding: 20px;
text-align: center;
color: #de7330;
font-weight: bold;
font-size: 18px;
font-family: 'Cinzel', serif;
}
.g-nav a:hover{
text-decoration: underline;
}

/*メインビジュアル部分*/
.main-visual{
max-width: 1260px;
margin: 40px auto 60px;
}
.main-visual>img{
max-width: 100%;/*フルードイメージの設定*/
}

/*リード文部分*/
h2{
text-align: center;
}
.lead>p{
max-width: 800px;
margin: 20px auto 80px;
}

/*block部分*/
.wrapper{
max-width: 1260px;
margin: 0 auto 80px;
display: flex;
justify-content: space-around;
padding: 20px 0;
}
.block{
width:30%;
padding: 20px;
box-sizing: border-box;
transition: 0.2s;
}
.block:hover{
box-shadow: 0 0 15px #aaa;
}
.block h3{
color: #de7330;
font-family: 'Cinzel', serif;
font-size: 30px;
margin-bottom: 10px;
}
.block-photo{
overflow: hidden;
margin-bottom: 10px;
}
.block-photo>img{
max-width: 100%;
transition: 0.5s;
}
.block:hover img{
transform: scale(1.2);
}
.block-txt{
color: #222;
}


footer{
width: 100%;
height: 100px;
background: #de7330;
color: #FFF;
}
footer>p{
text-align: center;
padding-top: 20px;
}

CSS演習問題

f:id:yachin29:20170810015813p:plain


今回の制作の仕様

  1. header要素の幅960px高さは350px
  2. header画像は自身で制作し、「CAFE de FELICA」の文字を画像に入れる
  3. ボタンは5つを均等の幅で設置し、高さは50px
  4. コンテント要素の幅650px 高さ500px
  5. フッター要素の高さ50px
  6. コンテント要素内の文章は回り込みをさせる
  7. 各要素の空き・色は適宜
  8. ナビゲーションボタンをホバーした際に文字色と背景色が変わるように


使用するテキスト

CAFE de FELICA


毎日食べたい、おうちみたいなごはんやおやつ

CAFE de FELICAは、あなたのもうひとつの「おうち」になりたいごはんやさんです。
毎日食べたくなるような、どこかホッとするごはんにおやつ、飲みものを揃えて、ゆっくりくつろげる空間でお迎えします。
気軽なおひるごはんに、お茶の時間に、会社帰りの晩ごはんに、
「ただいま」を心よりお待ちしています。ただいま、夏限定のメニューを多数ご用意しております。
ぜひお越しください。

コピーライトマーク CAFE de FELICA


使用する画像
f:id:yachin29:20170810020015j:plain

header画像は自身で用意する事(サイズ960px X 350px)


f:id:yachin29:20170901172657j:plain

ブロックレベル要素とインライン要素の違い

HTMLには色々な要素(h1とかp)がありますが、その要素は大きく分けて「ブロックレベル要素」と「インライン要素」の2つに分かれます。
この「ブロックレベル要素」と「インライン要素」の違いと特性をしっかりと理解する事で、実際に制作する際によく生じてしまう、意図しないズレや空きを無くす事が出来ます。

インライン要素

インライン要素は、主にブロックレベル要素の内容として用いられる要素で、文章の一部として扱われます。 例えば、p要素の中のspan要素のように、段落のなかの一部を修飾・強調するような使われ方をする要素です。 一般的なブラウザでは改行されず、横に並びます。

<a><abbr><br><em><img><input><label><select><small><span><strong> など

ブロックレベル要素

ブロックレベル要素は、見出し・段落・表など、HTMLを構成する基本となる要素で、一つのブロック(かたまり)として認識されます。 ブラウザでの表示も一つのかたまりとして扱われることが多く、一般的なブラウザでは改行されます。

<div><h1>-<h6><ol><ul><li><p><table> など
配置ルール

ブロックレベル要素の中には、他のブロックレベル要素やインライン要素を配置することができます。 一方、インライン要素の中には、他のインライン要素を配置することができますが、 インライン要素の中にブロックレベル要素を配置することはできません

正しい配置方法

<p><span>段落となります。</span></p>


間違った配置方法

<span><p>段落となります。</p></span>


インライン要素の特性
width – 効かない
height – 効かない
margin – 左右は効くけど、上下は効きません。
padding – 一応上下左右効くけど、上下は不安定 …。

特別なインライン要素 img、input、textarea

同じインライン要素でも img タグ、input タグ、textarea タグ などは特別です。インライン要素なので、他のインライン要素と同じように、続けて書くと横に並びます。
しかし、他のインライン要素との大きな違いは、margin や padding、width や height も指定できるところです。

width – 効く
height – 効く
margin – 効く
padding – 効く

インライン要素をブロックレベル化する「display: block 」

width や heightを指定できないインライン要素に対し、
「display: block 」を指定する事でa要素などをブロックレベル化する事が出来、width や heightを指定する事が出来ます。

a {
  display: block;
}