オブジェクトの移動、コピーのショートカット

オブジェクトの移動の簡単なやり方

  1. 対象のオブジェクトを選択状態で
  2. ショートカットキー:"cmd+shift+m"で移動のポップアップウインドウが開く。
  3. 移動座標数値を入力
  4. 再語にオブジェクト自体を移動するか、コピーしたオブジェクトを移動するかを選択実行。


さらに早く処理

  1. 対象のオブジェクトを選択状態で
  2. そのまま"enter"で移動のポップアップウインドウが開く。
  3. 移動座標数値を入力
  4. 移動ならそのまま"enter"。コピーなら"option"+"enter"。


画像軽量化比較

今回使用するツール

  • photoshopCS5
  • JPEGmini(web版)
  • imageOptim(アプリ版)

使用する画像


ジヴェルニーの庭のアヤメ(モネ)598 KB,1024x849px
GATAG|フリー絵画・版画素材集より参考

用途

web用として、印刷目的の解像度は使わない。なるべく軽く。



photoshopCS5の場合

web及びデバイス用に保存。

結果

598 → 483 KB



jpegMiniの場合


598 → 451 KB
Photoshopよりも圧縮率が高い。
ただ、Photoshopの方は細かな設定やバージョン次第でももっと圧縮できるかどうかは
使用するユーザーとソフトウェアにもよるが。



imageOptimの場合


598 → 562 KB
imageOptimeは基本画像のメタデータ(撮影日、カメラ情報、カラープロファイル)等の画質以外の
情報を取り払うので上記のPhotoshopやjpegMiniと比べると圧縮対象が違うので、軽量化にこだわりたい場合はPhotoshopやjpegMiniで圧縮した後に、残っている薄皮のメタデータをimagOptimで削り取ると...

  • 元画像(598 KB) → jpgMini圧縮(451 KB) → imageOptim圧縮 → 最終圧縮結果(422 KB)
  • 元画像(598 KB) → PhotoshopCS5圧縮(483 KB) → imageOptim圧縮 → 最終圧縮結果(470 KB)

といった結果となった。

アイコンをwebフォントとして使う。

icomoonからお好みのアイコンをCSSでwebフォント登録して気軽にデザインパーツとして利用できる。

いままで、UI(ユーザーインターフェイス)で使用するデザインパーツをillustratorphotoshopでイチイチ作成して
た行程がだいぶ楽になる。

まずはicomoonからアイコンをチョイス。

icomoonにアクセスして使いたいアイコンを選択。

選択したアイコンがアクティブ状態になっているので、選びたい物がだいたい決まったら、"font"ボタンをクリック。

選択したアイコン一覧がプレビューされる。


内容を確認したら、"Download"をクリック。

DLされたファイルを確認。

DLされたファイルを解凍すると以下のファイルがある。

  • demo-files(フォルダ)
    • demo.js
    • demo.css
  • demo.html
  • fonts(フォルダ)
    • icomoon.eot
    • icomoon.svg
    • icomoon.ttf
    • icomoon.woff
  • Read Me.txt
  • selection.json
  • style.css

この中で必要なのはfontsフォルダ(とその中身),style.cssだけです。
一つ一つ内容を確認していきます。

style.css内の記述
@font-face {
//(1) urlの中身をディレクトリ階層によっては書き換えます。
	font-family: 'icomoon';
	src:url('fonts/icomoon.eot?wf2uj9');
	src:url('fonts/icomoon.eot?#iefixwf2uj9') format('embedded-opentype'),
		url('fonts/icomoon.woff?wf2uj9') format('woff'),
		url('fonts/icomoon.ttf?wf2uj9') format('truetype'),
		url('fonts/icomoon.svg?wf2uj9#icomoon') format('svg');
	font-weight: normal;
	font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
	font-family: 'icomoon';
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
//(2) 以下が選択したアイコンの情報
.icon-home:before{ 
	content: "\e600";
	}

まずこのstyle.cssを格納してるcssフォルダと同階層にダウンロードしたfontsフォルダを配置します。
そして、上記のstyle.cssの(1)にあるurl、"fonts/icomoon"の所を"../fonts/icomoon"に書き直してパスが通るようにします。
(2)のアイコン情報については後述します。

htmlにstyle.cssを読み込ませます。

ここで適応させるhtmlにcssを読み込ませた後、ヘッダータグのタイトル文字列の前に
アイコンを表示させます。


配置前
<h2>header</h2>

ここで、前述のstyle.cssの(2)以下に記述してあったアイコン情報。
icon-homeの文字列をhtml上でタグにクラス名として付与する。

//以下のicon-homeをクラス名で使用する。
.icon-home:before{ 
	content: "\e600";
	}


配置設定
<h2 class="icon-home">header</h2>


出力結果




また、文字列の後ろにアイコンを配置させたい場合は
css記述の:beforeを:afterにすることで直せます。

出力結果

interface -インターフェイス-

1,インターフェイスとは抽象メソッドのみ(内容は記述しない)定義でき、抽象クラスと同じようにインスタンスは生成できない。
インスタンスができないということは、"抽象クラス"と同じく"継承"されるのだが
"インターフェイス"の場合は継承と呼ばずに"実装"と呼ぶ


2,また、接頭詞は"class"ではなく"interface"をもって定義する。
3,アクセス修飾子は"public"のみ。
4,インターフェイスブロックで定義したメソッドや引数の数、名前は実装先に同じ数、同じ名前が揃ってなければならない。

インターフェイスの定義

<?php
//インターフェイス
interface iProduct{
	public function applyPriceDown();
	public function getPrice();
	public function setPrice($price);
	}
//実装先クラス
class Besitable implements iProduct{//野菜クラス:全品3割引
	private $price = 1000;
	
	public function applyPriceDown(){
		$this->price = $this->price * 0.7;
		}
	public function getPrice(){
		return $this->price;
		}
	public function setPrice($price){
		$price = $this->price;
		}
	}

class Meet implements iProduct{//肉クラス:特定日半額
	private $price = 1000;
	
	public function applyPriceDown(){
		if('29' == date('d')){
			$this->price = $this->price / 2;
			}
		}
	public function getPrice(){
		return $this->price;	
		}
	public function setPrice($price){
		$price = $this->price;
		}
	}

class FreezedFood implements iProduct{//冷凍食品クラス:値引き対象外
	private $price = 1000;
	
	public function applyPriceDown(){
		//値引き対象外
		}
	public function getPrice(){
		return $this->price;	
		}
	public function setPrice($price){
		$price = $this->price;
		}
	}

//カート
class Cart{
	private $products = array();
	
	public function addProduct($product){
		$product->applyPriceDown();
		$this->products[] = $product;
		}
	
	public function getTotalPrice(){
		$total = 0;
		foreach($this->products as $product){
			$total += $product->getPrice();
			}
		return $total;
		}
	}

$cart = new Cart();

//商品
$meet = new Meet();
$besitable = new Besitable();
$freezed = new FreezedFood();

//カートに商品追加
$cart->addProduct($meet);
$cart->addProduct($besitable);
$cart->addProduct($freezed);

//現在の合計金額
$total = $cart->getTotalPrice();
var_dump($total);
?>



出力結果

日にちが29日の場合:700(肉:1000x3割引)+500(野菜:1000x半額)+1000(冷凍:割引無し) = 2200円
日にちが29日以外の場合:700(肉:1000x3割引)+1000(野菜:割引無し)+1000(冷凍:割引無し) = 2700円

placeholderの文字色を変える

フォーム欄の例文を表示するplaceholderはデフォルトでは薄い灰色の文字ですが、
これを直接"input{color:red;}"とやっても赤文字にはなりません。



なのでセレクタ名に疑似要素「::-webkit-input-placeholder」を当てて、文字のカラーリングを装飾します。


html

<input type="text" id="red" placeholder="疑似要素で赤文字に" size="140" style="width: 260px; padding: 10px; color:red;" >



css

input#red::-webkit-input-placeholder {
    color: #E32226;
}



出力結果

*htmlコード上に直接疑似要素を付けられない?ため、別記css上で文字色を着色しました。
また、webkitやmoz系は":(セミコロン)"二つですがmsは一つです。

モバイルデバイスの入力フォームについて覚書

スマホタブレットなどのモバイルデバイスのフォーム

デスクトップのキーボードならともかく、スマホタブレットなどのソフトウェアキーボードだと
英数字←→カナの交互変換が辿々しくなってしまう場合がある。

特に、生年月日の登録画面は





生年月日を登録してください
※英数字は半角、年月日は漢字でお願いします


デスクトップキーボードと比べるとスマホの場合は1本指で操作するため入力にストレスを感じる


と英数字とかな入力を交互に入力するのは億劫だが、
項目毎に分割して、入力モードの切り替え負担をユーザーに背負わせない配慮が必要。



生年月日を登録してください
※半角入力


モバイルデバイスの入力フォームについて覚書

スマホタブレットなどのモバイルデバイスのフォーム

デスクトップのキーボードならともかく、スマホタブレットなどのソフトウェアキーボードだと
英数字←→カナの交互変換が辿々しくなってしまう場合がある。

特に、生年月日の登録画面は





生年月日を登録してください
※英数字は半角、年月日は漢字でお願いします


デスクトップキーボードと比べるとスマホの場合は1本指で操作するため入力にストレスを感じる


と英数字とかな入力を交互に入力するのは億劫だが、
項目毎に分割して、入力モードの切り替え負担をユーザーに背負わせない配慮が必要。



生年月日を登録してください
※半角入力