タグ

cssに関するkatsushのブックマーク (25)

  • スタイルの適用範囲を限定する CSS の `@scope` ルール

    スタイルの適用範囲を限定する CSS の `@scope` ルール 2024.07.07 `@scope` アットルールは特定のセレクタの範囲に限定したスタイルを適用するためのルールです。`@scope` のルールセットに 1 つの CSS セレクタを指定すると、そのセレクタがスコープのルートとなります。`@scope` ルール内のスタイルはそのセレクタの範囲内でのみ適用されます。

    スタイルの適用範囲を限定する CSS の `@scope` ルール
    katsush
    katsush 2024/07/08
  • UIコンポーネントの大きさは外から制御しよう - Qiita

    昨今のフロントエンド向けUIライブラリでは、コンポーネントの設計が重要です。この記事では、コンポーネントのスタイリング、その中でもとくにコンポーネントの大きさに関わるコンポーネント設計について考えます。 私の考える結論は、むやみに大きさを指定できるpropを生やさずに、CSSで外から大きさを制御できるようにしたほうがいいです。 コンポーネントの大きさを制御したい UIの一部分を再利用可能なコンポーネントとする場合、同じコンポーネントがさまざまな場面で使えるのが望ましいでしょう。コンポーネントが提供する機能にもよりますが、場面に応じてさまざまな大きさでコンポーネントを使用できたほうがよいこともあります。 具体例として、このようなコンポーネントを考えてみましょう。例はReactで示しますが、この記事の内容はReactとは関係ありません。 const Card: React.FC<React.P

    UIコンポーネントの大きさは外から制御しよう - Qiita
    katsush
    katsush 2024/07/04
  • line-heightのハーフ・レディングを打ち消す`calc((1em - 1lh) / 2)`をCSS変数に定義しておくとよい – TAKLOG

    lhという単位に見慣れない方もいるかと思われますが、これは現在のline-heightと同じ長さを表す新しく登場した単位です。この例ではline-heightはフォントサイズの1.5倍なので、もし1remが16pxであれば1lhは24pxとなります。 この場合、行の高さと文字の高さの負の差は1em - 1lh、つまり16px - 24pxで-8pxです。それを片方の値を算出するために2で割ると-4pxになります。したがって、margin-block: calc((1em - 1lh) / 2)は、書式のブロック方向(横書き時:上下)にそれぞれハーフ・レディングの大きさ(今回では4px)分のネガティブマージンを設定するということになります。 従来の上下の余白を打ち消す方法との比較lhが登場するまではSassの@mixinなどを使用して以下のような関数を定義し、ハーフ・レディングを打ち消す方法

    line-heightのハーフ・レディングを打ち消す`calc((1em - 1lh) / 2)`をCSS変数に定義しておくとよい – TAKLOG
    katsush
    katsush 2024/05/29
  • 令和のHTML / CSS / JavaScriptの書き方50選

    Web制作技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。

    令和のHTML / CSS / JavaScriptの書き方50選
  • コンテナ要素に基づく相対的な CSS の単位(cqw, cqh, cqi, cqb, cqmin, cqmax)

    コンテナクエリ(@container)とは、親コンテナ要素に基づいてスタイルを定義できる CSS の機能です。メディアクエリ(@media)では画面全体の幅に応じてスタイルを変更する必要がありましたが、コンテナクエリでは任意の要素に基づいたスタイルを適用できるため、より柔軟なレイアウトの実現が可能です。 .card { display: grid; grid-template-columns: 1fr; } @container (min-width: 600px) { /* カードの親要素の幅が 600px 以上の場合、2 列に変更 */ .card { display: grid; grid-template-columns: 1fr 1fr; } } コンテナクエリを使用してスタイルを適用する場合、コンテナクエリ単位を使用できます。コンテナクエリ単位は、親コンテナ要素に対する相対的な

    コンテナ要素に基づく相対的な CSS の単位(cqw, cqh, cqi, cqb, cqmin, cqmax)
    katsush
    katsush 2024/04/22
  • タブやアコーディオンの非表示コンテンツにはhidden="until-found"を使うべし | TAKLOG

    タブやアコーディオンの非表示コンテンツにはdisplay:noneがよく用いられますが、hidden="until-found"を利用するほうがメリットがあります。 hidden=“until-found”で非表示にしたコンテンツはページ内検索でアクセスできるuntil-foundはhidden属性に新たに追加された属性値です。 hidden - HTML: ハイパーテキストマークアップ言語 | MDN 従来のhidden属性とは違い、until-found"属性値を指定した場合はブラウザのページ内検索やページ内リンクでそのコンテンツが検出された場合、自動でhidden属性が取り除かれて表示することができます。 従来のdisplay:noneを使用した非表示ではコンテンツ内にページ内検索でマッチすべきワードがあったとしても検出できませんでしたが、hidden="until-found"を使

    タブやアコーディオンの非表示コンテンツにはhidden="until-found"を使うべし | TAKLOG
    katsush
    katsush 2024/04/02
  • 【CSS グリッドレイアウト】display: gridの使い方

    今回はCSSのグリッドレイアウト(display: grid)の使い方を解説していきます。 グリッドレイアウトを利用すると、要素を格子状に並べて自由に配置することができるので、レイアウトを組むのにとても便利です。 CSSグリッドレイアウト(display: grid)とは? Grid Layout(display: grid)は、CSSでレイアウトを組む手法の1つで、要素を格子状に並べて配置することができます。 Grid Layoutでは列数と行数をあらかじめ指定し、水平線と垂直線が交差してできたエリアにアイテムを配置していくことでレイアウトを組んでいきます。 ■(参考)列数を3、行数を4と指定し、1番左上のエリアにアイテムを配置させている例 「display: grid」が指定された要素をグリッドコンテナ、その子要素となる要素をグリッドアイテムと呼びます。

    【CSS グリッドレイアウト】display: gridの使い方
    katsush
    katsush 2024/03/19
  • CSS Grid Layout を極める!(基礎編) - Qiita

    0. はじめに CSS Grid Layout(グリッドレイアウト)は、2次元レイアウト を、HTML/CSS を使って簡単・自由に操作できる、CSSの新しい機能です。 格子状のマス目のグリッドに好きな順番に配置したり結合したりすることで、様々なレイアウトが可能になります。 例えば、こんな簡単なHTMLで・・・ <body> <h1>タイトル</h1> <article>記事1</article> <article>記事2</article> <article>記事3</article> <article>記事4</article> <nav>ナビ</nav> <footer>フッター</footer> </body> CSSをちょっと書けば、こんなレイアウトが出来てしまいます! 当記事では、こんなレイアウトを可能にする CSS Grid Layout の解説をしていきます。 尚、CSS

    CSS Grid Layout を極める!(基礎編) - Qiita
    katsush
    katsush 2024/03/19
  • 横スクロールバーの発生源を素早く特定する方法と最新の防止策 | TAKLOG

    横スクロールバーの発生源はデベロッパーツールのConsoleですぐに特定できる横スクロールバーの発生源の特定方法として有名なのは全称セレクタですべての要素にoutlineを付与して確認する方法だと思われますが、次のスクリプトをデベロッパーツールのConsoleに貼り付けて確認したほうが手っ取り早いです。

    横スクロールバーの発生源を素早く特定する方法と最新の防止策 | TAKLOG
  • あなたが教わってるそのCSSテクニックはもう古い | TAKLOG

    Xの初学者のポストにて古の手法を教わっている方をよく見かけるので、2024年現在そのCSSテクニックはもう古いってものをいくつか列挙しました。 ブロックのセンタリングに margin を使うなら margin-inline:auto を使いなさいmarginを使ってブロックのセンタリングを行う際によく教わるのはmargin:0 autoあるいはmargin:autoでしょう。

    あなたが教わってるそのCSSテクニックはもう古い | TAKLOG
    katsush
    katsush 2024/03/16
  • CSSだけでif~else文と同じことができる! しかもすべてのブラウザでサポートされています

    CSSでif~else文が使えたら、と思ったことはありませんか? もちろんifとかelseはCSSにはありませんが、CSSだけでif~else文と同じようにスタイルを設定できます。 CSSでif~else文を実現するには...記事の続きを読む

    CSSだけでif~else文と同じことができる! しかもすべてのブラウザでサポートされています
    katsush
    katsush 2024/03/12
  • ユーザー操作の一括無効化で役立つ! HTMLのinert属性の紹介 - ICS MEDIA

    HTMLCSSには、ユーザーインタラクション(ユーザー操作)を無効化するための方法がいくつか存在します。たとえば、マウスやタッチ操作を無効化したいときはCSSでpointer-events: noneを要素に指定するなど、制御したいユーザー操作によってさまざまです。 カルーセルやモーダルなユーザーインターフェイス(UI)では、非アクティブな要素が操作されないように「画面には表示されているが、あらゆるユーザー操作を受け付けない状態」にしたい場合があります。具体的には、以下のユーザー操作を無効化します。 マウスやタッチ操作を無効化したい テキスト選択を無効化したい キーボードフォーカスをあえて無効化したい 音声読み上げをあえて無効化したい 必要なプロパティや属性を複数指定することが考えられますが、そのようなときに役立つのがinertイナートと呼ばれるHTMLのグローバル属性です。 inert

    ユーザー操作の一括無効化で役立つ! HTMLのinert属性の紹介 - ICS MEDIA
    katsush
    katsush 2024/02/29
  • 2023年モダンCSSの最新トレンド

    鹿野さんに聞く!2023年モダンCSSの最新トレンド https://findy.connpass.com/event/278449/ で発表した資料です。 各リンクはこちらから参照 https://tonkotsuboy.github.io/20230413_findy_css/

    2023年モダンCSSの最新トレンド
    katsush
    katsush 2024/02/29
  • 1次元の場合でも flex-shrink, flex-grow が必要なら CSS Grid でもいいんじゃない? - Qiita

    1次元の場合でも flex-shrink, flex-grow が必要なら CSS Grid でもいいんじゃない?CSS 「1次元なら Flexbox, 2次元なら CSS Grid」 のように Flexbox と CSS Grid を使い分けると考えている人は多いのではないでしょうか? じつは、1次元であっても、中身の文字列等の幅に関係ない(つまり 幅 が hug contents じゃない) 要素が含まれるときには、 Flexbox で書くよりも CSS Grid のほうが簡潔になる場合があります。 たとえば、「左側は幅固定で、右側はあまった幅を埋める (ともに中身に左右されない)」のように領域を左右に分ける場合です。 (CodeSandbox のプレビュー画面のサイズを変化させると、左側領域の幅は変わらず、右側だけが変わっていることが分かります。) 1. Flexbox で実装する

    1次元の場合でも flex-shrink, flex-grow が必要なら CSS Grid でもいいんじゃない? - Qiita
    katsush
    katsush 2024/02/28
  • 【CSS】flex-growを使おう - Qiita

    はじめに 問題 早速ですが、こんな時どう実装しますか? 少し前までの私 Headerは、height: 100pxでpadding: 10pxということは上下のpaddingを足して120px Footerがheight: 50pxでpadding: 5pxだから同様に考えて、60px 合わせるとMain以外の部分が、180pxで、 Mainのpaddingが10pxだから、上下で20px必要で、 ふう... 問題点 HeaderとFooterの高さが変わると計算し直す必要がある HeaderやFooterが動的に高さが変わる場合、JSで高さを適用しないといけない etc... そこでflex-growを紹介します。 flex-growの紹介に入る前に、**Flexbox(フレックスボックス)**について語ります Flexbox Flexboxは、主に次の2つの部分から成り立っています f

    【CSS】flex-growを使おう - Qiita
    katsush
    katsush 2024/02/28
  • imgタグの変化 - 気づいたら時代遅れなHTMLを書いてた - Qiita

    ( 2022年、仕事中であった事例からいろいろまとめた資料を Qiita に記載 ) 私は自社開発の会社に勤めるサーバーサイドエンジニア。 去年(2022年)、フロントエンドエンジニアが書いてたHTMLを見てたら以下のようなコードを見つけた。

    imgタグの変化 - 気づいたら時代遅れなHTMLを書いてた - Qiita
  • SCSSからCSSネスティングに切り替えたい人に贈る3つの罠 - Qiita

    今年も残すところあと1月を切り、CSSもこの1年でさらに進化を遂げましたね。 CSSは普段、SCSSを使ってコーディングしている方も多いますが、 CSSの進化により、SCSS不要論も今年チラチラ見られるようになりました。 当にSCSSがなくても問題ないのか、新しいCSSネストについて調べてみました。 CSSネストの基 まずはCSSネストがなんなのかというおさらいをしておきましょう。 2つのクラスparentとchildがあり、parentより子の階層にchildクラスが含まれているときだけスタイルづけしたい時、普通のCSSだとこのように書きます。 .parent { min-height: 100dvh; width: 100%; } .parent .child { background: white; }

    SCSSからCSSネスティングに切り替えたい人に贈る3つの罠 - Qiita
  • 【迷ったらこれでOK】最短2行でできる!CSSで上下左右中央寄せする一番簡単な方法を解説!

    この記事にたどり着いたということは、あなたはCSSの中央寄せについて知りたいということだと思います。 display: flex;やposition: absolute;など、CSSで中央寄せする方法は現在ではたくさんありますが、当に知りたいのは中央寄せの『一番簡単』な方法ではないでしょうか? この記事ではCSS最短2行で書くことができる中央寄せの方法を解説します。

    katsush
    katsush 2024/02/28
  • 先祖の要素に特定のクラスを持たない要素のCSSセレクタについて

    先祖(つまり階層を遡ったすべての親)が特定のクラスを持たない要素をセレクタしたいと考えています。 :not(クラス) セレクタを利用すれば実現できそうですが、直接の親子でないと機能しませんでした 例えば .oya というクラスを持たない .ko と .mago にスタイルを適用させたい場合... (chrome) :not(.oya)>.ko {...} ...効く :not(.oya)>.ko>.mago {...} ...効かない :not(.oya) .ko {...} ...効かない :not(.oya) .mago {...} ...効かない :not()セレクタに、直下ではなく配下を指定することはできないのでしょうか? 仕様や他の実現方法について、アドバイスをよろしくお願いします。 (jQueryなどでは比較的簡単なんですが...) :not(.oya-a)>.ko-a { c

    先祖の要素に特定のクラスを持たない要素のCSSセレクタについて
    katsush
    katsush 2024/02/27
  • 【CSS】 子孫セレクタ、子セレクタ、隣接、複数など忘れがちなセレクタをまとめました<前編>

    CSSのセレクタって地味に覚えにくいですよね。😓 今回は忘れやすいセレクタをまとめました。 理解必須の子孫セレクタ、子セレクタだけでなく知っておくと便利なセレクタも紹介します。 セレクタを使いこなすことで、CSSの記述量も減らせますし、読みやすくなります。 また更新性が上がるので変更や修正時にスピーディーに対応できるようになります。 ぜひ理解しましょう! なお、タイトルからわかるようにセレクタについては【前編】と【後編】にわけております。 この記事の最後にリンクをつけているので興味がある方はぜひチェックしてください。

    【CSS】 子孫セレクタ、子セレクタ、隣接、複数など忘れがちなセレクタをまとめました<前編>
    katsush
    katsush 2024/02/27