Showing posts with label CSS3. Show all posts
Showing posts with label CSS3. Show all posts

12/29/2012

CSS3 によるローディングアニメーションを生成する jQuery プラグイン jquery.cssloading.js をリリースしました

CSS3 によるローディングアニメーションを生成する jQuery プラグインを作ってみました。iOS や Android といった、スマートフォン用のプラグインという位置づけです。cssloading() でアニメーション開始、stopcssloading() でアニメーション停止を行います。アニメーションの形やスピードなどは、プロパティを与えて設定します。
GitHub: jquery.cssloading.js

☆確認環境
iOS/Android

☆プロパティ一覧
  • type:アニメーションの形(dot/line/square/block/eddy)
  • width:表示されるアニメーションのサイズ(数値)
  • color:色(CSSで定義できる値)
  • size:表示されるひとつひとつのサイズ(数値)
  • items:表示されるアイテムの数(数値、「type」が「dot」の場合は円を構成する数、それ以外は1行の数)
  • speed:アニメーションのスピード(ミリ秒)
  • clockwise:右回りか左回りか(「true」が右回り、「false」が左回り)
  • direction:アニメーションを行う起点の方向(「left」「right」「top」「bottom」)
  • shape:表示されるひとつひとつの形(「circle」「square」)

☆使用できるプロパティの種類
  • dot:direction/shape以外
  • line:width/clockwise以外、「direction」は「left」または「right」
  • square:width/direction以外
  • block:width/clockwise以外
  • eddy:width/direction以外

☆ファイルの読み込み
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.cssloading.min.js'></script>


☆html
<button>Play/Stop</button>
<div id='loading'></div>


☆JavaScript(dot)
// 開始
var option = {
  type: 'dot',
  width: 100,
  color: 'rgba(0, 102, 255, .9)',
  size: 3,
  items: 30,
  speed: 1000,
  clockwise: false
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。


☆JavaScript(line)
// 開始
var option = {
  type: 'line',
  color: 'rgba(255, 255, 255, .9)',
  size: 5,
  items: 10,
  speed: 1000,
  direction: 'left',
  shape: 'square'
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。

その他のサンプルは jquery.cssloading.js | Archives | Flügel にて公開しています。

12/31/2011

no KEIBA, no LIFE のスマートフォン版を公開しました

以前公開した競馬予想サイト no KEIBA, no LIFE ですが、スマートフォン版を公開しました。

表示できる内容は同じですが、モバイルデバイスという特性上、レイアウトが制限されるので、表示項目を選択できるようにしてあります。



この QR コードからアクセスできます。


パソコン版はこちらからどうぞ。
no KEIBA, no LIFE

【動作環境】
パソコン版
Apple Safari 5 以降
Google Chrome 12 以降
Firefox 5 以降
Opera 11 以降

スマートフォン版
iOS 4 以降
Android OS 1.6 以降

I LOVE MACINTOSH を公開しました

お手持ちのアイコン画像をお手持ちの背景画像と一緒に、下記のようなバッヂが付いた画像を生成するサービス「I LoveMacintosh」を公開しました。
I LoveMacintosh

トップページにアクセスすると、下記のようなページが表示されるので、アイコン画像と背景画像を選択します。
I LoveMacintosh

次は、アイコンとする画像での表示する場所と、背景画像のどこにバッヂを付けるかを、ドラッグして決め、NEXTを押します。バッヂのサイズは3種類から選べます。
I LoveMacintosh

色をバーを使って決め、入力する文字とフォントを決め、NEXTを押します。入力すると、結果がプレビューに反映されます。
I LoveMacintosh

最後の画面で表示された画像を右クリックし、ダウンロードしてください。

I LOVE MACINTOSH

【動作環境】
Apple Safari 5 以降
Google Chrome 12 以降
Firefox 5 以降(ただし、色変更のバーは表示されず、数値入力のみです)

※ html5 canvas の解釈に拠っているので、上記に限られます。

6/14/2010

Safari 5 の html5 対応はどうなのか

今、html5 の Canvas を使ってみる・CSS3 を使ってみる・MySpace のデザインを変更するのそれぞれのコンテンツについて Safari 5 で表示して、Safari 4 から変わったところがあったか見直してみたけど、全くなかった。Safari 4 時代にできなかったことができているとか、その逆とかがなかった。

ちょっと期待していただけに、残念。

[CSS3 を使ってみる:第十二回] テキストに影を付ける(text-shadow)

CSS3 では、text-shadow で文字に影を付けることができる。今まで Illustrator やら Photoshop やらで付けていた影もこうやって CSS で付けられるとなると本当に感慨深い。IE は早く CSS3 に対応してくれるか、滅びるかどっちかにしてほしい。

◆text-shadow のプロパティ
text-shadow: x 軸のズレ y 軸のズレ ぼかしの範囲 色;
※ x 軸・y 軸のズレとぼかしの範囲は px 単位で指定する。ズレの値は負の値も可能。


以下は div (id: textShadow) の中の「textShadow」という文字に、x 軸へ 2px、y 軸へ 5px、ぼかしを 10px、色を rgb(50, 50, 50) で影を設定した場合。
#textShadow {
  text-shadow: 2px 5px 10px rgb(50, 50, 50);
}


すると、影ができる。


次に、x 軸のズレを 0px、y 軸のズレを 30px、ぼかしも 0px で無しにし、色は rgb(0, 102, 255) にして影を付けてみる。すると、テキスト自体は 1 つしか書いていないのに、ぼかしを指定しない影なので、2 つのテキストに見える。
#textShadow {
  text-shadow: 0px 30px 0px rgb(0, 102, 255);
}



さらに、text-shadow を重ねがけしてみる。以下は x 軸・y 軸共にズレが 0px、ぼかしが 2px、色が rgb(255, 255, 0) と、x 軸・y 軸共にズレが 2px、ぼかしが 7px、色が rgb(0, 0, 0) と、x 軸・y 軸共にズレが -2px、ぼかしが 7px、色が rgb(0, 0, 0) の影を付けてみる。
#textShadow {
  text-shadow: 0px 0px 2px rgb(255, 255, 0), 2px 2px 7px rgb(0, 0, 0), -2px -2px 7px rgb(0, 0, 0);
}

ちなみに、重ねがけの際は、先(左)に書いた影の方が上に来るので、うまくいかないときは順番を変えてみると狙った感じになるかもしれない。


背景を黒くすれば、これを使ってグローのような効果を出すこともできる。これは青白く光る雰囲気。
#textShadow {
  text-shadow: 1px 1px 5px rgb(0, 102, 255), 2px 2px 10px rgb(255, 255, 255), -2px -2px 10px rgb(255, 255, 255);
}



最後に、この影の色を rgba で付けてみる。判りやすいように、最初に付けた影の色を 50% にしてみる。
#textShadow {
  text-shadow: 2px 5px 10px rgba(50, 50, 50, .5);
}


すると、先ほどの影よりも薄い影ができる。


確認環境:
Safari 5.0、Chrome 5.0.375.70、Firefox 3.6.3

正常に動作しなかった環境:
Opera 10.53(重ねがけをした場合おかしな表示になる。単発の影なら問題はない)

W3C:
CSS Text Level 3

6/04/2010

[CSS3 を使ってみる:第十一回] はみ出す文字を「...」にして表示する(text-overflow)

前に CSS3 の text-overflow というエントリーでも書いたが、text-overflow を使うと、領域の幅を超えてはみ出している文字を「...」にして表示してくれる。

◆text-overflow のプロパティ
text-overflow: ellipsis;


以下は div (id: textOverflow、width: 100px、height: 100px) の中に長い単語「abcdefghijklmnopqrstuvwxyz」と「あいうえおかきくけこさしすせそたちつてとなにぬねの」を入れた場合。
#textOverflow {
  overflow: hidden; /* overflow してるのを hidden するので必須 */
  text-overflow: ellipsis; /* Safari、Chrome 用 */
  -o-text-overflow: ellipsis; /* Opera 用 */
  -moz-text-overflow: ellipsis; /* Firefox 用 */
  white-space: nowrap; /* 日本語が対象の場合は必須 */
}


まずは、text-overflow を設定しない場合。overflow: hidden; によってぶつ切りにされている。


text-overflow で ellipsis を設定した場合は、「...」で表示される。現在、Firefox では Firefox 用の -moz-text-overflow を設定しても効果はない。まぁいずれは有効になる日が来ると思う。


最後に、white-space: nowrap; を設定しない場合。アルファベットのみ「...」で表示されている。


確認環境:
Safari 5.0、Chrome 5.0.375.70、Opera 10.53

正常に動作しなかった環境:
Firefox 3.6.3

W3C:
CSS3 Text Module

6/01/2010

[CSS3 を使ってみる:第十回] 長いアルファベット単語を折り返す(word-wrap)

word-wrap を使うと、領域の幅を超える長いアルファベット単語を折り返すことができる。

◆word-wrap のプロパティ
word-wrap: break-word;


以下は div (id: wordWrap、width: 100px、height: 100px) の中に長い単語「abcdefghijklmnopqrstuvwxyz」を入れた場合。
#wordWrap {
  word-wrap: break-word;
}


まずは、word-wrap を設定しない場合。単語が長過ぎて領域を越えてしまっている。


word-wrap で break-word を設定した場合。領域内にキチンと収まっている。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Text Level 3

5/27/2010

[CSS3 を使ってみる:第九回] ボックスの周りに border とは違う枠を設定する(outline・outline-offset)

outline を使うと、ボックスの周りに border とは違った枠線を設定できるみたい。

以下は div (id: outline、width: 200px、height: 100px) のから 3px 離れたところに 1px・破線・透明度 50% の青い線を設定した場合。
#outline {
  outline: 1px dashed rgba(0, 102, 255, .5);
  outline-offset: 3px;
}


すると、ボックスの外側 3px のところに枠線ができている。ちなみにこのボックスには黒の border を設定してある。


この outline を hover に使えば、こんな感じになる。下記ブラウザで閲覧されている方は、マウスをこの「outline」と書いてあるボックスにあわせると青い線が出てくると思う。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS3 Basic User Interface Module

5/22/2010

[CSS3 を使ってみる:第七回] 背景画像の大きさを設定する(background-size)

background-size を指定すると、背景画像の大きさを設定できる。

◆background-size のプロパティ
background-size: 幅, 高さ;
※幅・高さともに px 指定もしくは % 指定で記述するが、% 指定の場合、設定する背景画像が入るボックスに対しての比率となる。


今回使用する背景画像は以下。幅 100px 高さ 100px。


以下は div (id: backgroundSize、width: 200px、height: 100px) に背景画像を 幅 100px、高さ 50px の指定を加えた場合。
#backgroundSize {
  background-size: 100px 50px;
  -webkit-background-size: 100px 50px; /* Safari、Chrome で有効 */
  -moz-background-size: 100px 50px; /* Firefox で有効 */
}


背景画像の大きさが指定通りに縮小されている。なお、正規表現である background-size は現在のところ、どのブラウザでも認識されなかったが、-webkit- や -moz- を付ければ Safari、Chrome、Firefox では認識できた。Opera は -o- を付けてもダメだった。


今度は % 指定にしてみる。以下は div (id: backgroundSize、width: 200px、height: 100px) に背景画像を 幅 100%、高さ 50% の指定を加えた場合。
#backgroundSize {
  background-size: 100% 50%;
  -webkit-background-size: 100% 50%; /* Safari、Chrome で有効 */
  -moz-background-size: 100% 50%; /* Firefox で有効 */
}


今回は背景画像を含む div の大きさである 100px X 100% = 幅が 100px、200px X 50% = 高さが 100px になる。


最後に、幅の指定だけにしてみる。以下は div (id: backgroundSize、width: 200px、height: 100px) に背景画像を 幅 50px の指定を加えた場合。
#backgroundSize {
  background-size: 50px;
  -webkit-background-size: 50px; /* Safari、Chrome で有効 */
  -moz-background-size: 50px; /* Firefox で有効 */
}


背景画像が幅・高さともに 100px なので、半分の大きさになる。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70

正常に動作しなかった環境:
Opera 10.53

W3C:
CSS Color Module Level 3

5/21/2010

[CSS3 を使ってみる:第六回] 透明度を持った色相・彩度・輝度の色を指定する(hsla)

background や color、border などに hsla 指定をすると、透明度を持った色相・彩度・輝度の色を描画できる。

◆background で hsla を使用した場合のプロパティ
background: hsla(色相, 彩度, 輝度, 透明度);
※色相は 0〜360 の整数値で指定する。0 もしくは 360 が赤、120 が緑、240 が青となる。% 指定はできない。
※彩度は 0%〜100% の整数値で指定する。
※輝度も 0%〜100% の整数値で指定する。Photoshop で言う「明度」なので、0% が黒、100% が白となる。
※透明度は 0〜1 の数値で指定する。80% の場合は 0.8 でもいいし、.8 でもいい。こちらは % 指定はできない。


以下は左の div (id: hsla1) に background で青の透明度 50%、真ん中の div (id: hsla2) に background-color で白の透明度 85% を指定し、右の div (id: hsla3) には background-color で黒の透明度 70% で指定してある。全ての div に文字色である color で赤の透明度 50% と枠の border で緑の透明度 35% を指定している。
#hsla1, #hsla2, #hsla3 {
  color: hsla(0, 100%, 50%, .5);
  border: 3px solid hsla(120, 100%, 50%, .35);
}
#hsla1 {background: hsla(240, 100%, 50%, .5);}
#hsla2 {background-color: hsla(240, 100%, 100%, .85);}
#hsla3 {background-color: hsla(240, 100%, 0%, .7);}


するとこうなる。透明度を与えたスタイルが透けていることが判る。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Color Module Level 3

[CSS3 を使ってみる:第五回] 色を色相・彩度・輝度で指定する(hsl)

background や color、border などに hsl 指定をすると、色相・彩度・輝度で色を指定できる。

◆background で hsl を使用した場合のプロパティ
background: hsl(色相, 彩度, 輝度);
※色相は 0〜360 の整数値で指定する。0 もしくは 360 が赤、120 が緑、240 が青となる。% 指定はできない。
※彩度は 0%〜100% の整数値で指定する。
※輝度も 0%〜100% の整数値で指定する。Photoshop で言う「明度」なので、0% が黒、100% が白となる。


以下は左の div (id: hsl1) に background で青、真ん中の div (id: hsl2) に background-color で白、右の div (id: hsl3) には background-color で黒を指定してある。また、全ての div に文字色である color で赤と枠の border で緑を指定している。
#hsl1, #hsl2, #hsl3 {
  color: hsl(0, 100%, 50%);
  border: 3px solid hsl(120, 100%, 50%);
}
#hsl1 {background: hsl(240, 100%, 50%);}
#hsl2 {background-color: hsl(240, 100%, 100%);}
#hsl3 {background-color: hsl(240, 100%, 0%);}


するとこうなる。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Color Module Level 3

5/20/2010

[CSS3 を使ってみる:第四回] 透明度を指定する(opacity)

opacity を指定すると、透明度を指定できる。ただ、background だけとか border だけはできないので、そのような場合は rgba を使えばできる。

◆opacity のプロパティ
opacity: 数値;
※数値は 0〜1 で指定する。80% の場合は 0.8 でもいいし、.8 でもいい。% 指定はできない。


以下は左の div (id: opacity1) に透明度 50%、真ん中の div (id: opacity2) に透明度 70%、右の div (id: opacity3) には透明度 100% で指定してある。
#opacity1 {opacity: .5;}
#opacity2 {opacity: .7;}
#opacity3 {opacity: 1;}


するとこうなる。透明度を与えたスタイルが透けていることが判る。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Color Module Level 3

5/19/2010

[CSS3 を使ってみる:第三回] 透明度を持った色を指定する(rgba)

background や color、border などに rgba 指定をすると、透明度を持った色を描画できる。

◆background で rgba を使用した場合のプロパティ
background: rgba(R, G, B, 透明度);
※R/G/B 共に 0〜255 の整数値、もしくは 0%〜100% の整数値+% で指定する。
※透明度は 0〜1 の数値で指定する。80% の場合は 0.8 でもいいし、.8 でもいい。こちらは % 指定はできない。


以下は左の div (id: rgba1) に background で白の透明度 50%、真ん中の div (id: rgba2) に background-color で白の透明度 75% を指定し、全ての div に文字色である color で赤の透明度 30% と枠の border で緑の透明度 25% を指定している。右の div (id: rgb) には background-color で白を rgb で指定してある。
#rgba1, #rgba2, #rgb {
  color: rgba(255, 0, 0, .3);
  border: 3px solid rgba(0%, 100%, 0%, .25);
}
#rgba1 {background: rgba(255, 255, 255, .5);}
#rgba2 {background-color: rgba(255, 255, 255, .75);}


するとこうなる。透明度を与えたスタイルが透けていることが判る。


確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Color Module Level 3

5/18/2010

[CSS3 を使ってみる:第二回] 枠線を角丸にする(border-radius)

border-radius では border で付けた枠線を角丸にできる。

◆border-radius のプロパティ
border-radius: 半径;


id: borderRadius の角を半径 10px で角丸にする場合はこんな感じ。
#borderRadius {
  border-radius: 10px; /* Chrome、Opera で有効 */
 -webkit-border-radius: 10px; /* Safari、Chrome で有効 */
 -moz-border-radius: 10px; /* Firefox で有効 */
}


正式な記述形式となる「border-radius」単体は現在、Chrome と Opera しか対応しておらず、先頭に「-webkit-」や「-moz-」を付けないと Safari や Firefox では効果が反映されない。


また、今は Opera 以外の Safari、Chrome、Firefox のみが有効だが、それぞれの角に対して個別に設定することもできる。ただ、-webkit- と-moz- を置き換えればいいという訳ではなく、場所の記述も異なるので、めんどくさいところ。
/* WebKit 系 Safari、Chrome 用 */
-webkit-border-top-left-radius /* 左上 */
-webkit-border-top-right-radius /* 右上 */
-webkit-border-bottom-left-radius /* 左下 */
-webkit-border-bottom-right-radius /* 右下 */

/* Firefox 用 */
-moz-border-radius-topleft /* 左上 */
-moz-border-radius-topright /* 右上 */
-moz-border-radius-bottomleft /* 左下 */
-moz-border-radius-bottomright /* 右下 */


これを使って、左上と右下の角を半径 30px で角丸にしたい場合はこんな感じ。
#borderRadius {
 -webkit-border-top-left-radius: 30px; /* Safari、Chrome で有効 */
 -webkit-border-bottom-right-radius: 30px; /* Safari、Chrome で有効 */
 -moz-border-radius-topleft: 30px; /* Firefox で有効 */
 -moz-border-radius-bottomright: 30px; /* Firefox で有効 */
}



確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Backgrounds and Borders Module Level 3

5/17/2010

[CSS3 を使ってみる:第一回] オブジェクトに影を付ける(box-shadow)

box-shadow では div などの要素に影を付けられる。

◆box-shadow のプロパティ
box-shadow: x 軸へのズレ y 軸へのズレ ぼかしの範囲 色;


id: boxShadow の div の x 軸へ 1、y 軸へ 2 ズレた位置へ、ぼかし 8px、色を rgb(100, 100, 100) で指定する場合はこんな感じ。
#boxShadow {
  box-shadow: 1px 2px 8px rgb(100, 100, 100); /* Opera で有効 */
 -webkit-box-shadow: 1px 2px 8px rgb(100, 100, 100); /* Safari、Chrome で有効 */
 -moz-box-shadow: 1px 2px 8px rgb(100, 100, 100); /* Firefox で有効 */
}


「box-shadow」単体が当然、正式な記述形式になるが、現在は Opera しか対応しておらず、先頭に「-webkit-」や「-moz-」を付けないと Safari や Chrome、Firefox では効果が反映されない。


ズレの部分は負の値にすることもできる。これは x 軸へ -5、y 軸へ -10 したもの。
#boxShadow {
  box-shadow: -5px -10px 8px rgb(100, 100, 100); /* Opera で有効 */
 -webkit-box-shadow: -5px -10px 8px rgb(100, 100, 100); /* Safari、Chrome で有効 */
 -moz-box-shadow: -5px -10px 8px rgb(100, 100, 100); /* Firefox で有効 */
}



また、色を変えれば黒バックに光る物体としても描画できる。以下は色を rgb(255, 255, 255) にして、ズレを x 軸 y 軸共に 0px にしたもの。
#boxShadow {
  box-shadow: 0px 0px 8px rgb(255, 255, 255); /* Opera で有効 */
 -webkit-box-shadow: 0px 0px 8px rgb(255, 255, 255); /* Safari、Chrome で有効 */
 -moz-box-shadow: 0px 0px 8px rgb(255, 255, 255); /* Firefox で有効 */
}



最後に、box-shadow ではカンマに続けての重ねがけができるので、黒バックに青白く光らせるには一例としてこのようにする。
#boxShadow {
 -webkit-box-shadow: 0px 0px 3px rgb(0, 102, 255), 0px 0px 10px rgb(255, 255, 255); /* Safari、Chrome で有効 */
}
※これは Firefox と Opera で効果が変になる。ぼかしとなる部分の上と左は白で、右と下は青で表示されてしまう。



確認環境:
Safari 5.0、Firefox 3.6.3、Chrome 5.0.375.70、Opera 10.53

W3C:
CSS Backgrounds and Borders Module Level 3

CSS3 を使ってみる

さて、今まで CSS と言えばレイアウトを形作るという印象が強かったかもしれないが、CSS3 では様々な効果を付けることができる。このブログでも CSS3 の効果をいくつか使っているが、一つ一つやっていきたいと思う。


  1. [CSS3 を使ってみる] オブジェクトに影を付ける(box-shadow)

  2. [CSS3 を使ってみる] 枠線を角丸にする(border-radius)

  3. [CSS3 を使ってみる] 透明度を持った色を指定する(rgba)

  4. [CSS3 を使ってみる:第四回] 透明度を指定する(opacity)

  5. [CSS3 を使ってみる:第五回] 色を色相・彩度・輝度で指定する(hsl)

  6. [CSS3 を使ってみる:第六回] 透明度を持った色相・彩度・輝度の色を指定する(hsla)

  7. [CSS3 を使ってみる:第七回] 背景画像の大きさを設定する(background-size)

  8. [CSS3 を使ってみる:第八回] 複数の背景画像を設定する(background)

  9. [CSS3 を使ってみる:第九回] ボックスの周りに border とは違う枠を設定する(outline・outline-offset)

  10. [CSS3 を使ってみる:第十回] 長いアルファベット単語を折り返す(word-wrap)

  11. [CSS3 を使ってみる:第十一回] はみ出す文字を「...」にして表示する(text-overflow)

  12. [CSS3 を使ってみる:第十二回] テキストに影を付ける(text-shadow)

5/01/2010

レイアウトを変えてみた

この Blogger のレイアウトを変えてみた。

記事部分が狭かったのでヘッダ画像と同じサイズにし、「ABOUT ME」などのサイドバーを上へ引き上げた。
a:visited の色を rgb(0, 102, 255) にし、a:hover の色を rgb(255, 255, 255) にした。この hover 時に CSS3 の text-shadow を使っているので、IE 系以外のブラウザなら光っているように映る筈。
あと、「ABOUT ME」などの h2 部分に rgb(200, 200, 200) で枠線を引き、CSS3 の box-shadow でこれまた光っているように処理。
また、ヘッダ画像と「ABOUT ME」の画像の hover 時に白で枠線を設定しているが、このときに CSS3 の transition を使っているので、WebKit 系の Safari と Chrome なら 0.5 秒かけて枠線が出る。

MySpace よりも断然カスタマイズしやすい。

1/21/2010

YouTube が HTML5 ビデオに対応 -- 現時点では一部制約も

YouTube が HTML5 ビデオに対応--現時点では一部制約も

遂に世界的に大きな閲覧数を誇るサイトでの html5 対応が始まったみたい。まだ Safari と Chrome のみなので、体験するユーザ数は比較的少ないかもしれないが、普及には大きな一歩になることは間違いない気がする。

こうやって大手サイトが新技術を導入することが、ブラウザ進化に影響を及ぼし、発展する起爆剤になることは普通に理解できるし、大きな意味を持つと思う。

css3 も同じように早く広まってくれたら、色々と可能性が増えるのになぁと思う。

11/22/2009

CSS3 の text-shadow で黒背景に光るテキスト

CSS3 では text-shadow という設定ができる。これを使って、黒い背景に青白く光る背景を作ったりできる。

★html 側
<div id="header">headerText</div>


★CSS 側
#header {
  padding: 10px;
/* background */
  background-color: #000000;
/* text */
  font-size: 1.6em;
  color: #ffffff;
  text-shadow: 1px 1px 3px #0066ff, -1px -1px 7px #ffffff;
}

実に簡単にできる。

※Safari 4.0.4、Firefox 3.5.5、Opera 10.0.0 で確認

8/07/2009

css3 でメニューのアニメーション

CSS Transitions Module Level 3
5.2 Properties from SVG

CSS3 では transition やら transform やら animation などが定義され、個人的には懐かしい SVG ライクな感じになっている。実際、SVG のプロパティも移植?されているみたいだし、W3C は SVG を CSS に組み込んで、普及を託したような感じを受ける。
以前働いていた会社では SMIL や SVG についてやっていた(2003〜2004 年頃)が、そのときはまともな文書は W3C しかなく、書籍はあるにはあったが簡単な触りの部分しか載ってなかったりして、相当難儀した。しかし CSS に組み込まれるとなると、おそらく色々な書籍が今後出るだろうし、大きく普及する可能性を秘めていると思われる。

さて、そんな SVG 譲りの定義から transition を用いて、ナビにマウスを合わせたらサブ項目がスルスルと現れるアニメーションも可能になる。パッパッと開閉するようなのは CSS 2.1 でも当然可能だが、ダイナミックさに欠ける気がする。ちなみに、Firefox 用と Opera 用の記述でも試したが効果を得られなかったので、いつものように webkit のみの記述だけを書いてみる。

--- html 側 ---
<div id="nav">
  <div>nav</div>
  <a href="#" title="link1">link1</a>
  <a href="#" title="link2">link2</a>
  <a href="#" title="link3">link3</a>
</div>


--- css 側 ---
#nav {
  width: 100px;
  height: 20px;
  padding: 0px 3px 0px;
  overflow: hidden; /* 通常はサブ項目が隠れている */
  background-color: #ddeeff;
  border: 1px solid #0066ff;
  -webkit-transition: height 0.5s ease-out;
    /* ↑高さを変更、0.5 秒、最後をゆっくり */
}
#nav:hover {
  height: 80px; /* overflow を再定義しなくても現れる */
}
#nav a {display: block;}


html5 や css3 に対応するブラウザが早く普及してほしい。MS がブラウザ開発を放棄しなければ無理かもしれないが。