日常

ケ・セラ・セラ

css 新旧 clearfix の書き方に関するメモ

最近は css も色々書いている。というか、渋々色々やっているという面があるのだけど、それは置いておいて。

昔からある css のメンテなどをすることになると、歴史上の色々な書き方に遭遇することもある。その中で clearfix についてメモしておく。まあ知ってる人達からしたらあたり前なことなんだと思う。

いつも以下の新しい方で書いていたけれど、古い方と出くわして、これどう違うの?という疑問があった。

古い方の :before は IE6/7 の為らしく、自分の場合もう切り捨てているのでいらないということになる。

display: table / block については何やら挙動が違う。自分は block でよい。

古い方

.clearfix {
  &:before {
    content: "";
    display: table;
  }

  &:after {
    clear: both;
    content: "";
    display: table;
  }
}

新しい方

.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

ちなみに、前にも調べたことがあるような形跡を見つけた。確かにそんな気はするし、どうせまた忘れるのかもしれない。

rails ActiveSupport 便利な String の活用形のメモ

[8] pry(main)> (:user_follows).to_s.singularize
=> "user_follow"
[9] pry(main)> (:user_follows).to_s.pluralize
=> "user_follows"
[10] pry(main)> (:user_follows).to_s.camelize
=> "UserFollows"
[11] pry(main)> (:user_follows).to_s.classify
=> "UserFollow"
[12] pry(main)> "backoffice/session".camelize
=> "Backoffice::Session"
[13] pry(main)> :user_follows.to_s.camelize(:lower)
=> "userFollows"
[14] pry(main)> :user_follows.to_s.camelize(:upper)
=> "UserFollows"
[15] pry(main)> "AdminUser".underscore
=> "admin_user"
[16] pry(main)> "Backoffice::Session".underscore
=> "backoffice/session"
[17] pry(main)> "alice in wonderland".titleize
=> "Alice In Wonderland"
[18] pry(main)> "fermat's enigma".titleize
=> "Fermat's Enigma"
[19] pry(main)> "fermat's enigma".titlecase
=> "Fermat's Enigma"
[20] pry(main)> "contact_data".dasherize
=> "contact-data"
[21] pry(main)> "John Smith".parameterize
=> "john-smith"
[22] pry(main)> "Kurt Gödel".parameterize
=> "kurt-godel"
[23] pry(main)> "InvoiceLine".tableize
=> "invoice_lines"
[24] pry(main)> "invoice_lines".classify
=> "InvoiceLine"
[25] pry(main)> "User".foreign_key
=> "user_id"
[26] pry(main)> "User".foreign_key(false) # => "userid"
=> "userid"

rails gravatar-ultimate を使う

email, password を入力してもらってユーザ登録できるやつで、 アイコンなど画像ファイルを自分のところで取り扱いたくない。 というケースで gravatar に頼る流れがあります。

https://github.com/sinisterchipmunk/gravatar

実装を見ると、サイズが指定できたり https を使ったり rating の指定ができたりするようで、 とりあえずこんな風にしました。

# Gemfile
gem "gravatar-ultimate"

# helper
module ApplicationHelper
  def gravatar_for(user, size = 80, secure = true)
    Gravatar.new(user.email).image_url(size: size, secure: secure)
  end
end

# view
<%= image_tag(gravatar_for(current_user), alt: current_user.email, class:"gravatar") %>

rails limitではなくtakeの使いどころ

limit 使えばいいし、take 使いどころ無いのでは?と思っていました。

先頭 1 件だけほしい時、Model.first すると、order by id ASC LIMIT 1 となります。

Model.limit(1) の場合、order by id しません。

Model.take も同様です。こういう時、take を使う気になりましたね。

[18] pry(main)> Article.first
  Article Load (0.8ms)  SELECT  "articles".* FROM "articles"  ORDER BY "articles"."id" ASC LIMIT 1

[19] pry(main)> Article.limit(1)
  Article Load (0.7ms)  SELECT  "articles".* FROM "articles" LIMIT 1

[20] pry(main)> Article.take
  Article Load (0.2ms)  SELECT  "articles".* FROM "articles" LIMIT 1

input要素のpattern属性に関するメモ

pattern 属性。自分の場合頻繁に使うわけではないので、使うか。と思った時にもう忘れていて結局毎回調べたりして作業が止まるのが煩わしい。 どうせ次も調べるのだろうけど、この辺りを見れば手間も軽減する。ありがたい。

地味に便利だと思って使っているシェルalias

これなんですが、(一部から頭悪そうとか聞こえてくる)

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
alias .......='cd ../../../../../..'

pwd するとたまに深かったりするじゃないですか。こんな風に

/path/to/d/i/r/too/deep

pwd の結果の path を見ながら、移動したい場所まで 1, 2, 3 と数えながらドットを打つわけです。