タグ

ブックマーク / hail2u.net (10)

  • srcset属性を使ったSVGフォールバック・ハック

    SVGをサポートする環境がほとんどになってきた。それでもなんとか8であったり、かんとか2.3であったりのことを考慮せざるをえないという状況はありうる。それにはonerror属性を使った対応が有力だが、srcset属性でSVGファイルを指定するだけというハックのことを知った。将来的に使えなくなるわけではないが、やりたいことと実装にい違いが少なからずあるのでハックと言って良いだろう。 <img src="foo.png" srcset="foo.svg"> 表示したいSVGをsrcset属性で、フォールバックに使いたいPNGをsrc属性で指定するだけだ。これでsrcset属性をサポートしているブラウザーではSVGが、そうでないブラウザーではPNGが表示される。srcset属性のサポートに対して、より多くのブラウザーがSVGをサポートしていることから成立する。もちろんい違いがあるのでSVG

    srcset属性を使ったSVGフォールバック・ハック
    hiroshi_revolution
    hiroshi_revolution 2015/10/04
    srcset属性を使ったSVGフォールバック・ハック - Weblog - http://t.co/GqA6xcUiTI
  • レスポンシブ・タイポグラフィーなど

    ウィンドウや画面のサイズに合わせて文字の大きさを自動的に変更するテクニックは、俗にレスポンシブ・タイポグラフィーまたはフルイド・タイプと呼ばれている。当初は僕も良いアイディアだと思い多用していたが、重要なのはビューポートの大きさではなくデバイスとの距離だろうと思い直したためもうほとんど使うことはない。当初から嫌いといっていた人はこの辺にしっかりとした意識があったのだろう。 使うことをやめた理由は、単純に技術的制約によってユーザーとデバイスの距離を知るすべがないからに過ぎない。レスポンシブ・タイポグラフィーが目指す、適切な文字の大きさを環境ごとに提示することそのものについては正しい考え方であると思う。ただ今利用されている「ビューポートが768px以下なら文字を小さめにする」というようなアバウトな実装だと問題がある。もちろんvw単位を使ったフォント・サイズ指定でも同じだ。 なぜならばデスクトッ

    レスポンシブ・タイポグラフィーなど
    hiroshi_revolution
    hiroshi_revolution 2015/09/17
    レスポンシブ・タイポグラフィーなど - Weblog - http://t.co/GqA6xcUiTI
  • 画像の縦横サイズの追加

    自前の画像を参照する時にwidthとheight属性を追加すると激しい腹痛におそわれる病を長く患っていたけど、どうやら完治したようなのでバッチ処理で追加してた。ついでにimg要素の各属性の記述順序なども書きかえたりして、楽しく時間を浪費した。大いなる無駄だが、他人には迷惑をかけないし、途中から段々トランスしてきた。 サイズを明示した画像がはみ出すことへの対策にはCSSでmax-widthプロパティーを使う。それだけだと縦横比が狂ってリサイズされるので、以下のようにheightプロパティーも併用するのが良い。 img { height: auto; max-width: 100%; } @supports (object-fit: scale-down) { img { height: auto; max-width: none; object-fit: scale-down; } } こう

    画像の縦横サイズの追加
    hiroshi_revolution
    hiroshi_revolution 2015/02/01
    画像の縦横サイズの追加 - Weblog - http://t.co/rzPkA6HBgW
  • rel=subresourceを併用したCSSの遅延読み込み

    クリティカルなんとかの関係やウェブ・フォントにおいて、CSSの遅延読み込みを行う気運は高まっている。様々なアイディアがあって、普通にCSSの内容を読み込んでhead要素に追加するものや、link要素を動的に追加するもの、予めlink要素をrel=stylesheetなしで書いておいて後で追加するものなどがその主なものだ。最後の手法ではrel=subresourceを追加して書いておくと、一部ブラウザーでダウンロードが速く始まるんじゃないかというアイディアを持った。 サポートが広いのでprefetchかなと思ったけど、書いたそのページ内で使うリソースの先読みに使うものではないような印象で、すぐさま使う場合はsubresourceの方が適切なようだ。Chromeがそういうイメージで実装してるという話で、ウェブ標準では特に細かく規定はないようではある。 <html> <head> <style>

    rel=subresourceを併用したCSSの遅延読み込み
    hiroshi_revolution
    hiroshi_revolution 2015/01/29
    rel=subresourceを併用したCSSの遅延読み込み - Weblog - http://t.co/rzPkA6HBgW
  • URLUtils.hash (location.hash)とその返す値 - Weblog - Hail2u.net

    URLUtilsインターフェイスのブラウザーにおける実装であるLocationオブジェクトのhashプロパティーによりURLのフラグメント識別子(と#)を取得・代入できる。最近のブラウザーは非ASCII文字列もURLエンコードせずに扱えるようになっているが、この辺りの挙動がFirefoxだけ少し違うようだ。それはhashプロパティーの返す値で、常にデコードされた形で返ってくるようになっている。 例えば適当なウェブページで開発者ツール(的なもの)を開き、コンソール(などと呼ばれてるもの)で以下を実行してみる。 > location.hash = '#' + 'あいうえお' < "#あいうえお" > location.hash < "#あいうえお" > location.hash = '#' + encodeURIComponent('あいうえお') < "#%E3%81%82%E3%81%8

    URLUtils.hash (location.hash)とその返す値 - Weblog - Hail2u.net
    hiroshi_revolution
    hiroshi_revolution 2014/12/24
    URLUtils.hash (location.hash)とその返す値 - Weblog - http://t.co/rzPkA6HBgW
  • 1/5くらい欠けた円を回す

    新しいApple Storeアプリで使われてるローディング・アイコンをCSSで模したもの。たまにこういうものを作ると、自分が新たなCSSテクニックを学ぶことに貪欲でないことを再認識させられる。 Demo: Apple Store App Loading Icon .loading { border: 1px solid #797673; border-radius: 51%; position: relative; width: 2rem; height: 2rem; background-color: #fff; animation-duration: 1s linear infinite spin; } .loading::before { display: block; position: absolute; width: 50%; height: 50%; content: "";

    1/5くらい欠けた円を回す
    hiroshi_revolution
    hiroshi_revolution 2014/09/09
    1/5くらい欠けた円を回す - Weblog - http://t.co/7gDYzR4j3p
  • ターミナル画面のマークアップ

    Markdown (やその派生)のpre要素になる記法では、問答無用にその中はcode要素でマークアップされる。多くの場合はコードの断片なのでそれでいいんだけど、そうじゃないことももちろんある。例えばCLIプログラムでの操作手順を記載する時のターミナルの画面のコピー。 プログラムによる出力はsamp要素で、キーボードによる入力はkbd要素になるので、以下のようにマークアップするのがベストに近い。 <pre><samp>$ <kbd>node --help</kbd> Usage: node [options] [ -e script | script.js ] [arguments] node debug script.js [arguments] Options: ... NODE_DISABLE_COLORS Set to 1 to disable colors in the REPL

    ターミナル画面のマークアップ
    hiroshi_revolution
    hiroshi_revolution 2014/07/30
    ターミナル画面のマークアップ - Weblog - http://t.co/NWSU1qojkY
  • つまらないGruntタスク

    Gruntfile.jsをサッと開く手段としてeditという簡単なタスクを勢いで書いたんだけど、無意味でつまらないGruntタスクだった。Gruntには様々なタスクがあり、自分でもNode.jsを駆使して自由に書けるので、色々やりたくなる。けれどもグッとこらえて、ワークフローにおける定型作業の自動化に絞った方が、ワークフローと開発環境、そしてGruntfile.jsに優しい。 grunt-contrib-watchを使ったSassの自動コンパイルやLiveReloadのタスクは確かに便利なんだけど、開発から公開までのワークフローの段階として必須というわけじゃない。これらはタスクというよりも環境なので、別に自分好みの環境を作った方が集中できるし、好みでない環境を押し付けずに(そして押し付けられずに)済む。 また、Gruntでなんでもやることに慣れてしまうと、設定されてるしそれで良いかみたいな

    つまらないGruntタスク
    hiroshi_revolution
    hiroshi_revolution 2014/02/13
    つまらないGruntタスク - Weblog - http://t.co/7gDYzR4j3p
  • プレースホルダー周りのセレクター

    フォームのプレースホルダー周りのセレクターは、今のところウェブ標準では:placeholder-shown擬似クラスとして定義されている。つまりプレースホルダー文字列が表示されているかどうかという状態を反映するもの。どうやらInternet Explorer 11はこれを踏襲した実装のようだ。対してChrome 31やFirefox 25では擬似要素として実装されており、プレースホルダーそのものを表現するセレクターになっている。できることはあまり変わらないのだけど、例えば背景画像の開始位置とかでズレが生じる。 以下のようなスタイルがあたっている入力ボックスにプレースホルダーが表示されているとする。 input[type="text"] { padding-left: 1em; } 左に1emの余白を取っているだけ。この場合、入力文字列は1emのところから表示されることになる。プレースホルダ

    プレースホルダー周りのセレクター
    hiroshi_revolution
    hiroshi_revolution 2013/12/30
    プレースホルダー周りのセレクター - Weblog - http://t.co/7gDYzR4j3p
  • 結局どうすればいいの? - Dive Into HTML5

    Translation of: What Does It All Mean? - Dive Into HTML5 Diving In The Doctype The Root Element The <head> Element Character Encoding Friends & (Link) Relations rel = stylesheet rel = alternate Other Link Relations in HTML5 New Semantic Elements in HTML5 A long digression into how browsers handle unknown elements Headers Articles Dates and Times Navigation Footers Further Reading 訳注 Diving In この章で

    hiroshi_revolution
    hiroshi_revolution 2011/02/01
    #followdaibosyu 結局どうすればいいの? - Dive Into HTML5 - Diving InThe DoctypeThe Root ElementThe ElementCharacter EncodingFr...
  • 1