タグ

ブックマーク / zenn.dev/kagan (7)

  • 【JS】「離れた行に書かなきゃいけなくて面倒」を、配列で解決する

    JavaScript の小ネタ紹介です。 1つの処理に関する記述が2箇所に分かれてしまうとき 以下のように、イベントリスナーを設定して、停止ボタンを押したときにリスナーを削除する、という処理を考えます。 この場合、addEventListener と removeEventListener を 別々の箇所に書く必要があり、ちょっと面倒ですね。 const handleResize = () => { console.log("リサイズ時の処理"); } window.addEventListener("resize", handleResize); // resize の add const handleScroll = () => { console.log("スクロール時の処理"); } window.addEventListener("scroll", handleScroll);

    【JS】「離れた行に書かなきゃいけなくて面倒」を、配列で解決する
  • それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由

    inline-block を使う理由、それは 入れ子構造を作れることにより、改行位置の優先順位をつけられるから! 詳しくは以降で説明します。 (前提)そもそも改行調整ってなんの話? このタイトルを見て記事を開いた方であれば知っていると思いますが、一応説明です。 スペースで単語が区切られる欧文とは違い、日語は単語の区切りがないので、改行すべき位置を機械的に判断できず、不自然な位置で改行されてしまうことがあります。そこで、見た目を整えるため、改行すべき位置を指定するための手法が必要になります。 他に詳しい記事がいくつもありますので、詳細はそちらを参照してください。 代表的な改行調整の手法 <wbr> 要素 <wbr>要素は、改行してよい位置を表す要素です。 親要素に対して word-break: keep-all; を指定して基的には改行されないようにすることで、<wbr>要素がある位置で

    それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由
    klim0824
    klim0824 2024/03/23
  • Tailwind CSS の hover: を、非活性な要素やタッチ操作に適用させない ~ addVariant の活用

    背景 以前公開した記事で、単純な :hover セレクタの問題点を書きました。 詳しくは上記の記事に書いていますが、要約すると問題は大きく以下の 2 点です。 スマホなどのタッチデバイスでもホバースタイルが適用されてしまう disabled 状態の button など、クリックしても反応しない要素にもホバースタイルが適用されてしまう これらの問題が次のようなメディアクエリと疑似クラスを組み合わせたスタイル記述によって解決できることを紹介しました。 @media (hover: hover) { .class:where(:any-link, :enabled, summary):hover { /* ホバースタイル */ } } 今回はこれを Tailwind CSS で実現するには? という記事です。 確認した環境 Tailwind CSS v3.4.1 Tailwind CSS におけ

    Tailwind CSS の hover: を、非活性な要素やタッチ操作に適用させない ~ addVariant の活用
  • 【CSS】まだホバー時のスタイルを :hover だけで指定してるの?

    はじめに結論から ホバースタイルは、 :hover だけで指定するのではなく、次のように指定しましょう! @media (hover: hover) { /* リンクの場合 */ a:any-link:hover { } /* ボタンの場合 */ button:enabled:hover { } /* 特定できない場合 */ .button:where(:any-link, :enabled, summary):hover { } } ポイント 1 マウスのときだけホバースタイルを当てる :hover 擬似クラスで指定したスタイルは、タッチデバイスの場合フォーカス状態で適用されてしまいます。 つまり、タッチしたあとのスタイルがずっとホバースタイルのままになってしまいます。 これは意図と合わないため、マウスで操作しているかどうかを区別してスタイルを当てる必要があります。 マウス(正確には、ホ

    【CSS】まだホバー時のスタイルを :hover だけで指定してるの?
    klim0824
    klim0824 2023/08/07
  • :is(), :where() を活用してCSSを「後置修飾」で書く

    はじめに結論から :is()または:where()を使うと、 これまで「前置修飾」で書かなきゃいけなかったセレクタが 「後置修飾」で書けて嬉しい! /* 通常のスタイル */ .button {} /* 特定の要素と隣接するときのスタイル */ /* こう書いてたものが */ .link + .button {} /* こう書ける */ .button:is(.link + *) {} /* 特定の要素に内包されているときのスタイル */ /* こう書いてたものが */ header .button {} /* こう書ける */ .button:is(header *) {} /* 特に、「特定のクラスの中の要素に対するスタイル」を条件分岐させるときに便利 */ .container p {} .container p:is(h2 + *) {} .container p:is(secti

    :is(), :where() を活用してCSSを「後置修飾」で書く
    klim0824
    klim0824 2023/08/06
  • 「HTMLでは環境依存文字(①や©など)を文字参照にしなければいけない」という誤解と、本当に置換すべき文字

    HTMLファイルで特殊記号を使う際、① は &#9312;、© は &copy; のように置き換えて書かないといけないものだと思いこんでいないでしょうか。 現代ではそれは誤解です。 UTF-8では特殊記号の文字参照は不要 そもそも環境依存文字とは、データを扱う機種・ソフトウェアなどの違い(文字コードの割り当ての違い)により表示に違いが出てしまう文字のことでした。 例えばShift_JISには © が含まれておらずそもそも保存できなかったり、 ① などの丸数字は含まれているものの、WindowsMac OS(当時)の割り当ての違いにより正しく表示できなかったりしました。[1] しかし現在ではUnicodeによって文字コードは統一化されており、その問題はほとんど起きなくなっています。 近年では多くの場合 UTF-8 でファイルを記述すると思います。 HTMLファイルの文字エンコーディングが

    「HTMLでは環境依存文字(①や©など)を文字参照にしなければいけない」という誤解と、本当に置換すべき文字
  • よりよいCSSを書くための、CSS / Sass (SCSS) 30のルールとその理由

    Webエンジニアを始めて丸2年が経ちました。 複数プロジェクトを進める中で、CSSコーディングを行うときの「こうしておくと便利」「このほうが管理しやすい」といった知見が溜まってきたのでまとめます。 はじめに 長くなってしまった細かい説明はところどころ折りたたんでいます。概要だけで理解できたら飛ばしていただき、詳しい話が気になったら開いて読んでください。 これらは「自分がよく取り入れている手法」であって、必ずしもどのプロジェクトにも当てはまるものではないと思います。 各項目について、自分がその判断に至った 「理由」 を説明していますので、 理由を読んだ上で自分のプロジェクトに取り入れるか判断いただくと良いと思います。 この記事は、すでにCSSコーディングをしていてアイデアがほしい人に向けた記事で、 CSSをこれから学び始めるような 初学者向けではない ことご了承ください。 一般的と思われるキ

    よりよいCSSを書くための、CSS / Sass (SCSS) 30のルールとその理由
    klim0824
    klim0824 2022/04/18
  • 1