主に技術的なことを書くブログ

浅めにマークアップ&フロントエンドの技術的なことをメモしていましたが、ざっくばらんに書いています。

table が border-collapse で position: relative 使ってる td にホバーで背景色つけるとかすると、ボーダーが背景色より後ろにいってしまう

FirefoxIEでもあやしかったんですが、 table が border-collapse で position: relative 使ってる td にホバーで背景色つけるとかすると、ボーダーが背景色より後ろにいってしまう、というバグがありました。

position: relative; している td に background-clip: padding-box; をつけると回避できました。

td {
   position: relative;
   background-clip: padding-box;
}

参考:css - Borders not shown in Firefox with border-collapse on table, position: relative on tbody, or background-color on cell - Stack Overflow

gulp media queries まとめる系プラグインで @supports が消えてる件

かなり前に gulp-combine-media-queriesがエラーでコンパイルできなくなって、この issue から gulp-merge-media-queries に乗り換えてしばらく大丈夫だったのですが、とあるところを修正中に @supports が消えてることに気づきました。

いろいろ調べてたらけっこういろんなところで issue にあがっているけど解決されておらず。。

比較的あたらしめの、gulp-group-css-media-queries をためしてみたら、@supports 消さずにメディアクエリをまとめてくれた、という報告です。

github.com

IEで、position: absolute; left: 50% と translateX(-50%); で、中央に配置している要素の親要素にスクロールバーが出る

IEで、position: absolute; left: 50% と translateX(-50%); で、中央に配置している要素の親要素にスクロールバーが出るというのでハマったのでメモ。

f:id:nakagaw:20160928195444p:plain

こんな感じ。 translateX(-50%); してるのが勘定にはいってないのか、してない体でスクロールバーが出ちゃってるといった様子。

もう、親要素に overflow: hidden; つけてスクロールバー消すしかないかなぁ、と思ったんですが、それだと、意図しないところでスクロールできない!みたいなことがあるので、あんまりやりたくなくて。結局、何が原因なのかなぁ、、といろいろな角度から検索してたらとうとう同じ悩みをもった人が見つかりました。stackoverflow 最高。

stackoverflow.com

まとめると

  • left: 50% と translateX(-50%) 親要素にスクロールバーが出る。
  • right: 50% と translateX(50%) 親要素にスクロールバーが出ない。
  • top: 50% と translateY(-50%) 親要素にスクロールバーが出る。
  • bottom: 50% と translateY(50%) 親要素にスクロールバーが出ない。

どうやら、IE は下と右方向のはみ出しには translate しててもスクロールバーを出す、という仕様っぽい(※ IE10と11でのみ確認)。