Author Archives: ake_nyanko

各種ブラウザにおけるlinear-gradient対応状況について

ブラウザの種類・バージョンで書式が大きく違って何かとやっかいなlinear-gradient()の
対応状況をまとめてみました。
使用したサンプルはこちら
表示結果比較の画面キャプチャはこちら
【結果】
●-webkit-gradient(linear,left top,left bottom,from(#FC0),to(#fff));
[対応]Chrome/Safari4+/iOS4+/Android2.x/
●-webkit-linear-gradient(top,#FC0,#fff);
[対応]Chrome/Safari5+/iOS5+
●-webkit-linear-gradient(to bottom,#FC0,#fff);
[対応]なし
●-moz-linear-gradient(top,#FC0,#fff);
[対応]FireFox3.6+
●-moz-linear-gradient(to bottom,#FC0,#fff);
[対応]FireFox12+ ※いつから対応したか正確には不明。2012年上半期と思われます。
●linear-gradient(to bottom,#FC0,#fff);
[対応]なし
【2012年5月下旬時点での状況】
・-webkit-で新しい角度仕様(to bottomなど)に対応したブラウザはまだ無し。
・-moz-は最新版で新しい角度仕様にもプリフィクス付きで対応。
・プリフィクスなしでグラデーション実装したブラウザはまだ無し。
・PC向けの場合、Safari4を切れるなら-webkit-gradient()は不要。
・スマホ向けの場合、iOS4はともかくAndroidは切れないので-webkit-gradient()で実装。現状ではiOS5も-webkit-gradient()をサポートしているがいつまでそうするか不明なので心配なら-webkit-linear-gradient()も併記した方がいいかも?
・IE9は対応してない。IE10は調べてない。(誰か教えてください)
・Operaのことは無かったことにしている。
・Yahoo! Axis?なにそれおいしいの?(´・ω・`)
こんな感じでした。
スマホだとグラデーション特に多用するので、プリフィクス問題はほんと早く解決してほしい。
いっそプリフィクスなしサポートした時点でプリフィクス記述全部サポート外してくれてもいい。
一時大変かもしれないけど、その後は平和が待ってる。。。

IE6-8でCSS3のセレクタやプロバティを使う方法

プログレッシブエンハンスメントが叫ばれる今日この頃ですが、
可能ならIE6-8にもCSS3を使いたい、ということでJSで何とかできないか探してみると、
なんだかよさげなものが見つかります。
■IE6でもCSS3のセレクタを使えるようにするもの
(1)IE9.jshttp://code.google.com/p/ie7-js/
IEの挙動を標準準拠させるjsライブラリ。一部のセレクタサポートの他、以下の項目をサポート。

・擬似クラス対応
・属性セレクタ対応
・透過PNG対応
・position:fixed対応
・margin:0 auto;対応
・max-height,width対応
・min-height,width対応
・IE5/6のバグを修正

いろいろ対応してくれてとても便利なIE9.jsですが、これを導入することで出来なくなることもあるようです。
[参考]ie9.jsを使うと出来ること、出来なくなること。
(2)selectivizr.jshttp://selectivizr.com/
jquery.jsやprototype.js等のライブラリと併用することで、IE6-8でもCSS3の擬似クラス・擬似要素を使えるようにしてくれるもの。使うライブラリによって対応する擬似クラス・擬似要素に違いが出るので事前に確認が必要。
↑これらを使うと、属性セレクタや、:before/:after、:first-child/:last-child等がIE6-8でも使えるようになるので、HTMLのソースコードがとてもシンプルに出来ますね♪
■IE6でもCSS3のプロパティを使えるようにするもの
(1)PIE.htchttp://css3pie.com/
たった位置行追加するだけで角丸、ドロップシャドウ、グラデーション、マルチプル背景等がIEでも使えるようにしてくれるbehavior。
(2)ie-css3.htchttp://fetchak.com/ie-css3/
角丸、テキストシャドウ、ボックスシャドウに対応。
.htcは大変便利なのですが、
・サーバによっては.htcを許可していないことがある
・相対パスで呼び出す場合、HTMLからのパスにしないと動かない
・要素にposition:relative;を指定しないと背景やボーダーが消える
などいくつか注意点がありますので気をつけてください。
で、こんな風にJSやhtcでセレクタやプロパティを使うことが出来るなら、
両方使ってやればIE6-8でもモダンブラウザライクにCSS3使えるんじゃね?
と思って意気揚々と設置・・・・・
・・・・・してみたのですが、ダメでしたorz
どうやら、セレクタ系のJSを読ませると、.htc系の指定が全部無効になってしまうみたいです。(つかえねーーー!!)
セレクタ系を取るか、プロパティ系を取るか、結局二者択一が精一杯みたいです。。。(´・ω・`)
残念。

イラレでWebデザインをされる方にお願いしたい7つのこと。

普段はDTPをメインにやっていて、たまにWebのデザインもするというデザイナーさんは、
IllustratorでWeb用のデザインカンプを作ることが多いと思います。
別にIllustratorからでもコーディングはできるのですが、後工程の人を困らせないために、
ちょっとだけ気に留めておいて欲しいことがあります。

1.色モードはRGBで。
普段DTPをやっているとついCMYKモードのままで作ってしまうことがあるかもしれません。
でもWebはRGBの世界です。変換すると意図した色にならなかったりしますので、
最初からRGBで作ってください。埋め込む画像も同じです。

2.どこがデバイスフォントなのか分かるように指示を。
紙の世界では文字は文字でしかありませんが、Webの世界では「テキストデータ」にするのか
「画像」にするのか決めなければなりません。本文は原則「テキストデータ」ですが、
判断に困るのは「見出し類」と「ナビゲーション・ボタン類」です。
見出し  こんなのとか

見出し  こんなのとか

メニュー | メニュー | メニュー |   こんなのとか

「テキストデータ+CSS」で表現出来ちゃうような見出しをイラレで作られちゃうと、画像にしたいのかテキストでいいのか判断にとても迷うので、できれば最初から分かるようにしておいてもらえると助かります。
デバイスフォントだけ別レイヤーにしておくとか、赤字レイヤーで指示入れておくとか。手段は何でも構いません。画像なのか、テキストなのか、そんなことで頭を悩ませなくてもいいようにしておいて欲しいのです。

3.ロールオーバ時のデザインも作って下さい。
紙と違ってWebはユーザーさんが欲しい情報を見るためにコンテンツをクリックします。
そうしたクリック可能な部分をユーザーさんにはっきり示すために、カーソルが乗った時のデザインが必要です。
シンプルなテキストリンクから、ナビゲーションバーや凝ったボタン類まで、クリックできるものに関しては「通常時」のデザインと、「ロールオーバー時」のデザインを両方用意しておいてください。
ロールオーバー用の画像は、それだけをまとめて別レイヤーにしておいてもらえると助かります。

4.単位は「ピクセル」、すべて整数で。
Webデザインは「ピクセル」が基準単位です。是非、Webデザインを作るときにはピクセル単位で作成してください。そして、何か数字でサイズや位置を指定する時、小数点の数字は使わないでください。パソコンのモニタでは1pxより小さいドットは打てません。小数点で指定されたものはとなりのピクセルにまたがって滲んでしまいます。
数値は全て整数で指定してください。お願いします。

5.白でもボックスには「塗り」を設定してください。
紙なら「白」=透明 ということで何も設定しなくていいところですが、Webは「白」≠「透明」です。
イラレで作ったデータをPhotoshopに持って行くと、塗りが設定されていないところは全部透明になってしまいます。塗りが無いとPhotoshop上で効果が付けられません。ナビゲーションパーツやボタン類の作り込みをする時に塗がないと結構困ったりします。

6.テキストデータは原則として文字組できません。
画像化するテキストは存分にツメでも組みでもやっていただいて構わないのですが、デバイステキストで表示する部分にイラレ上で細かい文字詰めなどの処理をしないでください。Webは紙のDTPと違って画面上での文字組処理がとっても苦手です。苦手というか、ほぼ出来ません。時間をかけて美しく文字詰めしてもらっても、ブラウザの上ではベタ組み成り行きでしか表示できないので、たぶんとてもがっかりします。禁則処理もジャスティファイもできません。諦めてください。ごめんなさい。

7.文字サイズも枠のサイズも「可変」だと意識してください。
DTPとWebのデザインで一番違うのは、多分ここだと思います。テキストデータ状態の文字のサイズは、ユーザー環境でいくらでも変わってしまいます。決まったサイズの枠の中にテキストを確実に収める手段は無いと思ってください。もし文字サイズが大きくなったり、コンテンツ量が増えたりした場合、それを収めているHTMLの枠は縦方向に自動的に伸縮します。作り方によっては横方向のサイズも可変にすることだってできます。DTPのように固定サイズの枠の中にギュウギュウに詰め込むことができない代わりに、Webでは枠のサイズそのものを無限に広げていくことができます。
何が言いたいかというと、「可変コンテンツ(テキスト等)が入る予定なのに、固定サイズを前提としたデザインをしないで欲しい」ということです。こればっかりはどうにも出来ません。HTMLもCSSも万能には程遠いので、出来ないことはできないのです。それ以外のことなら大抵のことは何とかします。でもこればっかりは勘弁してください。お願いします。

いろいろうるさく言いましたが、こういう細かいことにちょっと気を使ってもらえるだけで、コーダーはとってもハッピーになれます( ´∀`) お互いに気持ちよくお仕事するために、是非ご協力ください。

Adobe公認エキスパート

Web制作の現場というのはとにかく実力主義であって、
資格なんかはっきり言って何の役にも立たないのは重々承知なのですが、
ちょっと思うところあってAdobe公認エキスパート(ACE)の試験を受けてきました。
科目はDreamweaver。
この認定資格、とにかく情報がないのが特徴。
難易度も合格率も過去問も非公開。受験する時に「試験内容を口外しない」と制約させられるので
ここでも内容については言及できません。
Webスクールでも他の資格みたいにACEの資格取得コースみたいなのはほとんどやっておらず、
唯一の情報はAdobe公式の試験情報のみという状態。
というわけで、受験しようと思ったときにまず困るのは、
「何をどこまで勉強したらいいのか分からない」
ということです。私もかなりそこで困ったわけですが、結局「Adobeのオンラインヘルプを全部読んで触ってみる」という方法を取りました(苦笑)
まがりなりにもWeb制作にかかわって10年以上、Dreamweaverも6~7年は使ってます。
日々の業務をこなすには何の支障もない状態。今更スクールとか通うのもあり得ないし、模擬問題見る限り内容自体は「広く浅く」という感じなので、独学でなんとかなるかなと思ったのがその理由です。
で、3日くらいかけてザザッと試験範囲の機能をおさらいし、サクッと受験してきました。
結果は・・・・あと1問足りず惜敗!!!(><)
Dreamweaver使っているとはいえ、
・基本的に手打ちコーディングなのでデザインビューはほとんど使わない
・一人で作業することがほとんどなので共同作業を前提とした機能は必要ない
・新規スポット案件が多く、作って納品して終わりなのでテンプレートやアセット管理もあまり使わない
とまぁ、「Dreamweaver使ってる意味あんの?」的な使い方しかしてなかったのがそのまま点数に反映されておりました(;´Д`) ああ、、、もう少し時間かけてちゃんと復習してから受験しておけば・・・・・orz
ま、後悔しても仕方がないので、もう一度弱かったところをちゃんと復習して、今月中にリベンジしてきます。
これからもし受験してみようかなと思っている方にアドバイスできることがあるとしたら、
・全ての機能を隅から隅まで網羅して暗記している必要はない。
・さほど深い内容は聞かれない。
・しかし、ある程度ちゃんと日々の制作で使い込んでいないと分からない問題が多い。
ということでしょうかね。
単純にリファレンス本の機能を暗記するだけではなく、「その機能が何に役立つのか?」「制作上の様々なシーン・状況で、DWがどのような挙動をするか?」といった点に注意してよく観察する必要があるな、と感じました。そういうことはリファレンス本とかには基本的に載ってないので、やはり「とにかく使い倒す」<のが先決かと思います。実技試験を伴わない選択式の試験にしては、その人の製品に対する理解をよく判定できるようになってるな、と感じました。
しかし、、、あと1問。悔しい~~~!

[XHTML 1.0 Strict・IE6/7対応]外部リンクアイコン自動挿入Script

以前仕事で作った、「外部リンクアイコン自動挿入Script」を公開します。
target=”_blank”を使えないXHTML 1.0 Strictの文書型で外部リンクを別ウィンドウで開きたいと思っていろいろ検索したのですが、探し方が悪かったのかhttps://~で始まる自社サーバを除外してくれるものが無かったので自作したのがきっかけです。
ついでに外部リンクアイコンをテキストの後ろにCSSで背景画像指定したら、IE6・7でリンクテキストが複数行に渡った場合にとんでもない場所に表示されてしまう問題も一緒に解決しようとか、その他細々欲しい機能を盛りこんで全部入り(?)っぽく仕上げてみました。
似たような要望あるんじゃないかなぁ?と思うのでよかったら使ってください。
★主な仕様★
—————————————————
・外部サイトは自動的に別ウィンドウで開く(target=”_blank”不要)
・「外部サイト」の判定は、「http://~」または「https://~」で始まるリンクのうち、
自分自身のドメイン以外のもの
・外部リンクにはリンクテキストの末尾に自動的にアイコンを挿入(class不要)
・IE6/7で複数行インライン要素における背景画像の表示バグ回避のため、IE6・7のみはIMG要素を自動で挿入
・内部リンクでも意図的に別ウィンドウで開きたい場合はa要素にclass=”blank”で対応。
・外部リンクにアイコンを付けたくない場合(画像からのリンク等)はa要素にclass=”noicon”で対応。
—————————————————
プラグイン化はしてませんが、必要なパラメータはjs内の初期設定で変数指定できるようにしてあるので、必要に応じて変更してください。
ちなみにJavaScriptあんまり詳しくないのでかなりベタな方法で書いてます。もっとスマートなコードに書き換えられる方は是非教えてください!(切実)あと機能追加とかプラグイン化とか!そして私にください(笑)
特にこんな機能が追加されると素敵だと思います。
・アイコンを追加する場所を前か後か選択できる
・内部リンクとして認識するフルパスを複数指定できる
・画像にリンクが貼ってある時には自動的にアイコンを付けない設定にする
どなたかお願いしますm(_ _)m
★サンプル付きデータはこちら↓↓
ダウンロード