タグ

ブックマーク / terkel.jp (12)

  • CSS コンポーネント試案

    pixivCSSで使われるクラス名ルールを読んで、僕もここ最近 CSS のコンポーネント設計について似たようなことを考えていたので書いてみる。いまのところ試案で、実際のプロジェクトで実践したことはまだない。 ここでいう「コンポーネント」とは独立したスタイルのブロックの意味で、たとえばヘッダーのナビゲーションとか画像のスライダーとかブログ記事のボディとかを指す。このアプローチの狙いとしては前出の記事とほぼ同じで、これらコンポーネントの「ルート」を明確にし、コンポーネント名が衝突しないようにすること。また管理や共有を考え、特殊な命名規則や不自然なマークアップなどはなるべく避けたいというのもある。Sass などの CSS プリプロセッサーを使う前提だけど、なくてもある程度は使える。 まずマークアップでは、コンポーネントのルートとなる要素に、クラス名と同時に data-component という

    CSS コンポーネント試案
    efcl
    efcl 2014/12/07
    ractive.jsのCSSカプセル化が似たような事をやってる感じかな https://github.com/ractivejs/ractive/issues/452
  • 擬似要素を利用したベースライン・グリッド

    Fig 1: 擬似要素を利用してテキストをベースライン・グリッドに揃える CSS でテキストをベースライン・グリッドに揃えるとなると、ベースラインの高さに応じて上下のパディングやマージンを調整するアプローチがよく見受けられますが、あまり実用的なものとは言いがたかったと思います。 p { padding-top: 0.30116em; padding-bottom: 0.19884em; /* ... */ } しかし、::before と ::after 擬似要素を利用すると、かんたんにベースライン・グリッドに合わせることができます (Fig 1)。 /* Vertical rhythm unit: 0.5rem */ p { line-height: 1.5rem; margin: 0.5rem 0; } p::before, p::after { content: ""; displa

    擬似要素を利用したベースライン・グリッド
    efcl
    efcl 2014/11/08
    CSS擬似要素で文字の高さを調整する
  • selector-replace() の利用

    近々リリース予定の Sass 3.4.0 では、& が SassScript で使えるようになるほか、セレクター関連の関数が大きく充実する。SassMeister ではすでに使えるので いくつか試してみた けど、セレクターを置換するselector-replace() 関数がかなり便利そう。 使用例としてはまず、ネストしたセレクターで、ルートと直近のセレクターの間に別のセレクターを挿入する、というのが考えられる。 .outer { color: red; .inner { color: green; @at-root { #{ selector-replace(&, '.outer', '.outer .foo') } { color: blue; } } } } & で親セレクター .outer .inner を参照し、そのうち .outer を .outer .foo に置換することで

    selector-replace() の利用
    efcl
    efcl 2014/07/16
    Sass 3.4.0のselector-replace() 関数について
  • 横に水平線のあるテキスト

    図1:横に水平線のあるテキストの例 おもに見出しなどで見かける、テキストの左右 (またはそのどちらか) に水平線を配置したスタイル。これを CSS で実現する方法について考えてみました。 Demo: 横に水平線のあるテキスト 重ねて隠すパターン まず最初は、1 の水平線を幅いっぱいに配置した上で、テキストに重なる部分を隠す、という方法です。 <h2><span>Hello</span></h2> マークアップはこのように二重の要素が必要です。外側の h2 要素の擬似要素で水平線を作り、内側の span 要素に背景色を指定してテキスト部分を隠します。 h2 { position: relative; text-align: center; } h2:before { border-top: 1px solid; content: ""; position: absolute; top: 5

    横に水平線のあるテキスト
    efcl
    efcl 2014/01/09
    Flexbox + CSS で文字の横に線を配置する. 構造がキレイ
  • MathSass

    CSS で角度を扱う機会が増えてきたので、三角関数を中心にいくつかの数学関数を Sass 関数として実装してみてる。「三角関数を中心に」とかさらっと書いてるけど、書いてる人はタンジェントとか高校で習ってないと言い張る程度の理解なので注意。書いてるうちに芋づる式に増えて手に負えなくなってきたところで GitHub に公開することにした。 terkel/mathsass · GitHub ほんとは Ruby のモジュールで書けば簡単かつ精度も高いだろうし、将来 Sass のネイティブに実装されれば用なしになるわけだけど、勉強になるのでやってて満足度は高い。 これ系の Sass 実装でまとまったものは adambom/Sass-Math と Team-Sass/Sassy-math ぐらいしか見つけられなかったし、これらの中でもものによってバグってるっぽいのもあったので、ほかに 404 Blo

    MathSass
    efcl
    efcl 2013/04/14
    Sassで数学関数
  • 俺の CSS リセット: 2011 冬

    年末だからというわけでもないのですが、いつものサイト作りに使う CSS リセットについて見直してみました。今までもちょっとずつ手を入れてはいたのですが、今回はかなり大きく修正しています。というのも、Nicolas Gallagher と Jonathan Neal の両氏による normalize.css を知り、大きく影響を受けたからです。 Normalize.css は「新手の CSS リセット」ではありません。CSS を「リセット」するのではなく「ノーマライズ」する、という新しい考え方です。CSS リセットとノーマライズはどちらも、ブラウザ間で CSS の実装に差異があることを前提にそれらを吸収しようとする、という同じ目的を持っています。ただ、リセットはすべてをまっさらな「さら地」にしようとするのに対し、ノーマライズは使える部分は残しつつ手を入れる必要のある部分だけを整える、という違

    俺の CSS リセット: 2011 冬
    efcl
    efcl 2011/12/25
    normalizeとresetの違いについて ノーマライズの手法についての解説
  • Google Chrome Frame: サイト管理者向けガイド

    2013-06-30更新: 2013 年 6 月、Googe Chrome Frame の開発終了 が発表されたのを受け、新しい記事 を書きました。 IE で Google Chrome と同等のレンダリングを実現するプラグイン、Google Chrome Frame が 正式版になりました。ユーザはよりリッチで快適な Web 体験ができるし、サイト管理者としても事実上古い IE のシェアが減ることになって嬉しい、しかもインストールに管理者権限が不要という、ちょっといいプラグインなんですよね Chrome Frame。 とは言えユーザがインストールして使ってくれないことにははじまらないので、この Chrome Frame の利用を促進するためにサイト管理者にできることを紹介します。 ページを Chrome Frame でレンダリングさせる まず、すでに Chrome Frame がインスト

    Google Chrome Frame: サイト管理者向けガイド
    efcl
    efcl 2011/09/04
    Chrome Frameの導入について
  • Microdata + schema.org を実際に使ってみる

    schema.org は GoogleMicrosoft (Bing)、Yahoo! という Web 検索の大手 3 社が共同で取り組んでいる試みで、より構造化されたマークアップのための共有の語彙集 (vocabulary) を提供しようというものです。この schema.org の語彙を利用して、実際のマークアップに Microdata を追加する具体例をいくつか考えてみました。 schema.org の アイテム型 (item type) は 階層 (hierarchy) のかたちで定義されています。型ごとに独自の プロパティ が定義され、上位の型のプロパティは下位の型に引き継がれます。最上位は Thing という汎用の型で、name、url、image、description というもっとも基的なプロパティが定義されています。そしてその下に CreativeWork、Event、

    Microdata + schema.org を実際に使ってみる
    efcl
    efcl 2011/08/30
    Microdata について
  • Firefox 4 のデフォルト CSS

    Firefox 4 のデフォルト CSS は、以下のような URL をロケーションバーに入力すればブラウザから確認できる (ちなみに 3.6 とはパスが異なる): resource://gre-resources/html.css resource://gre-resources/forms.css resource://gre-resources/quirk.css resource://gre-resources/ を見るとほかにもいろいろある。内容は全部は見てないけど、HTML5 の新要素に対する指定や :-moz-any() セレクタやなんかが追加されてて、3.6 からけっこう変わってた。

    Firefox 4 のデフォルト CSS
    efcl
    efcl 2011/04/12
    FirefoxのデフォルトCSSの場所
  • Sass でもう一度 CSS を楽しく!

    僕もようやく Sass をはじめました。評判どおり、ヤバいです。CSS を書くすべての人に習得してほしいとすら思います。とくに、最近 CSS を書いていてもつまらなかったり、設計に行き詰まりを感じたりしている人は、迷わず Sass を試してみるべきです。Sass のサイトには “Sass makes CSS fun again”—「Sass でもう一度 CSS を楽しく」というフレーズが掲げられていますが、ハッタリではありません。 しかし、実際に Sass を導入するのは敷居が高いと感じる人も多いのではないかと思います。コマンドラインとかよくわからん、独自構文の学習コストが気になる、実際に仕事で使えるのか疑問…など。 そこでこの記事では、僕が Sass をはじめるにあたって感じていた不安などをもとに、「Sass は難しくないよ!」というアピールを試みます。少しでも Sass 導入の障壁を取

    Sass でもう一度 CSS を楽しく!
    efcl
    efcl 2011/03/08
    Sass入門方法のまとめ。 Ust動画が結構分かりやすいのでオススメ
  • WordPress で HTML5 を書くための準備

    現在、このサイトを HTML5 で再構築しようと画策しています。今日はその「準備編」ということで、WordPressHTML5 をパブリッシュするために、どのようにテンプレートをいじればよいかを考えてみました。ここでは WordPress 2.9 のデフォルトのテーマ、WordPress Default 1.6 に手を加えていきます。 文書型宣言 header.php の 7 行目 (実際に出力されるのは 1 行目) あたりで以下のように文書型が宣言されています: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> これを以下のように修正します: <!DOCTYPE html> HTML5 の文

    WordPress で HTML5 を書くための準備
    efcl
    efcl 2011/02/25
    HTML5テンプレート
  • HTML5 + WAI-ARIA: 入門篇

    このサイトを HTML5 でリニューアルした際に保留としたまますっかり忘れかけていましたが、ようやく WAI-ARIA を導入してみました。 WAI-ARIA は W3C の Web Accessibility Initiative (WAI) が公開している技術仕様で、Web コンテントや Web アプリケーションのアクセシビリティを強化することを目的としています。具体的には、Web ブラウザや支援技術 (AT) がコンテントのセマンティクスをより適切に認識できるよう、HTML ドキュメントに要素の「役割」や「状態」といった詳細な情報を付与するものです。名称に RIA とあるように、Ajax などによるリッチ・インターネット・アプリケーションをおもな対象とした仕様ですが、HTML5 によるシンプルな Web ページに取り入れることもできます。ここでは WAI-ARIA の HTML5 へ

    HTML5 + WAI-ARIA: 入門篇
    efcl
    efcl 2010/09/11
    ARIAのrole属性。アクセシビリティ。
  • 1