タグ

CSSに関するklim0824のブックマーク (501)

  • 日本語におけるtext-wrapプロパティの運用

    CSStext-wrapプロパティを使うと、テキストの行の折り返し方を変更できる。text-wrap: balanceを適用すると、適用しない場合と比べて次のように変化する。 CSS text-wrap: balance  |  CSS and UI  |  Chrome for Developers text-wrap: balanceが適用された下の例では、すべての行の長さが均等になるように制御されている。 しかし正確に言えば、必ずしもすべての行の長さがまったく同じになるわけではない。文字の適切な折り返し位置を考慮した上で、おおよそ同じくらいの長さになるように分配される、というのが正しい。通常、一つの英単語の途中で行が分割されるようなことは起こらない。これは、英語では単語の区切りに空白文字を挟んで記述されるが(わかち書き)、それが改行位置を決めるためのヒントとなるからである。 だが日

    日本語におけるtext-wrapプロパティの運用
    klim0824
    klim0824 2024/07/22
  • Tailwind CSS初心者が絶対ハマる落とし穴

    ムーザルちゃんねるのzaruです。今回はムーさんと、Tailwind CSS初心者が絶対ハマる落とし穴について話しました。Tailwind CSSを使い始めた人、あるいはまだ使ったことがない人には是非見てほしいです。すでにこの落とし穴から抜け出している人はあるよねーって感じで眺めてください。 すごいサムネイル… ハマるポイント クラス名の動的指定 クラス名のコンフリクト クラス名の動的指定 例えば、通常は背景を青だけど、エラーの時は赤くしたい。そんなときにJavaScriptでクラス名を組み立てると以下のように書きがちです。bg- と -500 は固定なので変化する red blue だけ変数で組み立てるやり方です。 const color = error ? 'red' : 'blue'; <div class={`bg-${color}-500`}></div>

    Tailwind CSS初心者が絶対ハマる落とし穴
  • 2024年6月にXに投稿したCSSテクニックのまとめ – TAKLOG

    先月からXにCSSテクニックを定期的に投稿しているので、それのまとめです。 テキストの中央寄せだからといって text-align:center を指定したほうが良いかは考えたほうがいい ポストを別枠で表示する 和文をtext-align:centerで中央寄せすると複数行になった際に見栄えが悪くなるケースが多いです。 inline-size:fit-contentとmargin-inline:autoでセンタリングすることで、1行の場合は中央寄せ、複数行の場合は左寄せといった実装が可能となります。

    2024年6月にXに投稿したCSSテクニックのまとめ – TAKLOG
    klim0824
    klim0824 2024/07/10
  • 不可視状態からフェードインする要素を即座にフォーカスする方法

    CSSのdisplay: noneやvisibility: hiddenによって不可視状態になっている要素を、表示して即座にフォーカスしたいということがある。たとえば、初期状態では非表示になっている検索ボックスを、ユーザーのインタラクションに応じて表示するような場合。そうしたとき、通常では、スタイルを切り替えてすぐにfocusメソッドを呼び出すだけで良い。 <input type="search" /> input[type='search'] { display: none; &.open { display: revert; } } const searchBoxElement = document.querySelector('input[type="search"]'); function open() { searchBoxElement.classList.add('open'

    不可視状態からフェードインする要素を即座にフォーカスする方法
    klim0824
    klim0824 2024/07/06
  • CSS の transform は個別に分離するのが常に優れているわけではない - Qiita

    個別に書いた方がアニメーションの管理などはしやすいですし、diff も見やすいです。 ただ、常に個別に書くのが優れているわけでもないので、その点について記事にしました。 例示するもの こういった 3D 表現を実施する際、移動や回転を多く使います。 この立方体を例にして説明します。 translate のローカル座標とグローバル座標 例に出した立方体はこのようなコードでできています。 <div class="cube"> <div class="face front">front</div> <div class="face back">back</div> <div class="face right">right</div> <div class="face left">left</div> <div class="face top">top</div> <div class="face

    CSS の transform は個別に分離するのが常に優れているわけではない - Qiita
    klim0824
    klim0824 2024/06/30
  • UIパーツにメイリオを指定しないほうがいい理由

    はじめに 前提として記事は特定のフォントを貶める意図はなく役割として使い分けることを推奨する記事です。 フォントにあるのは役割であり、優劣ではないということを念頭にご一読いただけると幸いです。 注意事項 メイリオという特殊なフォント まず具体的な問題点を挙げる前にメイリオというフォントについて軽く紹介させていただきます。 といってもWeb開発者にとっては馴染み深いフォントでありご存じの方が大半だと思います。 Windows Vistaより搭載されたこのフォントは未だに根強い人気があります。 記事にもあるように、このフォントは和文と英文の調和を重視して作られ英文のベースラインという考え方を取り込んでいます。 そこでメイリオでは和文を縦方向に95%に圧縮した形にして下部にスペースを開けた。こうすることで和文・欧文が混じったときに、それぞれのベースラインを合わせつつ、文字が上下に踊って見えると

    UIパーツにメイリオを指定しないほうがいい理由
  • じゃあなんすか、Noto Sans JP使うんならボタンにアイコン入れるなって事すか|chot Inc. デザイナーユニット

    こんにちは、ちょっと株式会社デザイナーのモです。 挨拶から間髪入れずで申し訳ないのですが、まずはこちらをご覧ください。 何の変哲もないテキストとアイコンで構成されたボタンです。 今回はこちらのボタンに物申したく筆を執らせていただきました。思うところがあるんだよ今の私には。 ずれている、Noto Sans JPという訳で早速題に入りますが、単刀直入に言ってこのボタンずれてるんですよね。「暑いね」って言ったら「水飲めば?」って言ってくる人くらいずれてる。私怨はさておき具体的に表すとテキストとアイコンが上下にガクンとずれているって訳です。 論に拍車をかけるためにボタンに分割線を引いてみました。 アイコンは上下真っ二つだがテキストはどうも下に寄っていますぞなぜずれる、Noto Sans JPこれが目の錯覚…なら良かったんですが(良くない)実際にずれていて、ではなぜそんなことになっちゃっているのか

    じゃあなんすか、Noto Sans JP使うんならボタンにアイコン入れるなって事すか|chot Inc. デザイナーユニット
  • Re: HTMLのルート要素ではcolorとbackground-colorをセットで指定すべき - 水底の血

    ちょっと間が空いて、亀リプっぽくなっちゃいましたけど、HTML のルート要素では color と background-color をセットで指定すべきというお話について。 昔からブラウザには配色設定があり、テキスト色と背景色をユーザーが任意に指定できます。 ……という話は Web アクセシビリティとフェイルセーフの記事に以前書いたのでその詳細は省略しますが、WCAG 2.2 達成方法集の F24(W3C) において達成基準 1.4.3(レベルAA)などの失敗事例として掲載されているにも関わらず、このことは世間ではなぜか認知が薄いようです。 認知も薄いというか、私も言われるまで気づかなかったあたり、まあそういうことなんじゃないかなと*1。……という話だけはあまりにもアレなので、ざっくりとですが、ほんのちょっと深掘りしてみましょう。 WCAG 2.1 達成方法集のF24のタイトルは、「達成基

    Re: HTMLのルート要素ではcolorとbackground-colorをセットで指定すべき - 水底の血
  • overflow-wrap: break-word; や word-break: break-all; が万能の改行処理だったなら、こんなに苦労していない - Qiita

    overflow-wrap: break-word; や word-break: break-all; が万能の改行処理だったなら、こんなに苦労していないHTMLCSS初心者 はじめに 今回解決したいのはこれです。 「overflow-wrapかけたのに改行されないしテーブルwidthもなんか勝手に伸ばされちゃってる問題」です。 こんなんHTML / CSSの初歩中の初歩じゃんwwwという方は、どうぞごゆるりとブラウザバックしてやってくださいませ… 「それ地味に悩んでた!」という方がもしいらっしゃいましたら、少しでも助けになれれば嬉しいです。というか一緒に悩みましょう。 あ、でも、もしそんな方が当にいたら、こんなことに悩むよりも、 「全半角記号のブラウザテストだけ許容する」という呪文を唱えた方が5億倍早いです…というネタバレだけ先にしておきますね>< もくじ 当記事は、以下の内容に関する

    overflow-wrap: break-word; や word-break: break-all; が万能の改行処理だったなら、こんなに苦労していない - Qiita
    klim0824
    klim0824 2024/06/13
  • scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する

    scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する 2024.06.01 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがクラシックスクロールバーの場合、スクロールバーの表示・非表示によりボックスの幅が変わるため、画面がガタつくことがあります。scrollbar-gutter プロパティを使うとスクロールバー用のスペースをあらかじめ確保でき、画面のガタツキを解消できます。 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがどのように表示されるかは OS やブラウザの設定により異なりますが、大きく分けて以下

    scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する
    klim0824
    klim0824 2024/06/02
  • Tailwind CSSを本気でカスタマイズする方法

    2024-04-19に開催されたBARフロントえんどう #2 「CSS Library / Framework」(サイボウズ)での登壇資料です。 イベント → https://cybozu.connpass.com/event/311066/

    Tailwind CSSを本気でカスタマイズする方法
  • 2024年版 HTMLで作るフォームバリデーション - ICS MEDIA

    すべてのフォームが要件を満たしている場合のみ、送信できます。 フォームバリデーションのデザイン 上記の例では最低限のHTMLのみ実装されています。しかし、実際のサイトではバリデーションエラーをユーザーにフィードバックする必要があります。よりユーザビリティの高いフォームでは、以下の点を検討する必要があります。 エラー時のスタイル エラーメッセージの出し方 バリデーションエラーの表示タイミング 以下では、それぞれについて深堀りします。 エラー時のスタイル エラーを検知する方法として、CSSには:valid疑似クラスと:invalid疑似クラスがあります。これらの疑似クラスは『CSS疑似クラスを活用した、モダンでインタラクティブなフォームの作り方』でも紹介されている、バリデーションエラーが起きている要素にのみ適用されるクラスです。 しかし、この疑似クラスには欠点があります。required属性を

    2024年版 HTMLで作るフォームバリデーション - ICS MEDIA
  • 文章の折り返し指定のCSS最新版 - ICS MEDIA

    文章の折り返しはウェブ制作において意外と難しいものです。URLが文章に含まれている場合、URLがレイアウトを突き抜けてしまった、という経験をみなさんはお持ちではないでしょうか? この記事では、国内のウェブ制作において「開発者が考えることが少なくてよくなる」安全なCSS指定を紹介します。 結論から説明すると、以下の指定を提案します。 body { overflow-wrap: anywhere; /* 収まらない場合に折り返す */ word-break: normal; /* 単語の分割はデフォルトに依存 */ line-break: strict; /* 禁則処理を厳格に適用 */ } この記事では上記の指定にいたった理由と、折り返しの理解について必要なoverflow-wrapとword-breakプロパティを中心に解説します。 overflow-wrap overflow-wrapは

    文章の折り返し指定のCSS最新版 - ICS MEDIA
    klim0824
    klim0824 2024/04/13
  • !importantで上書きできないブラウザのスタイルとは

    !important はすべてを上書きできるのか? CSS において話題に出すといろいろな意味で盛り上がるキーワードが!importantです。 CSS でのスタイル宣言時に!importantを付与すると、細かな詳細度の差異などを無視して強制的にスタイルを適用できます。濫用するとあっという間に無秩序になるため、一般的には慎重な利用が推奨されることが多いです。 さて、ではこの!importantですが、何もかもを上書きできるのでしょうか? 実際のところそうではありません。今回は、CSS 仕様をいろいろと調べているうちに、!important で上書きできないスタイルの存在を知ったため、その情報をまとめてみました。 CSS における Cascade Sorting Order CSS は Cascading Style Sheets という名前の通り、カスケードと呼ばれる仕組みでスタイルの適

    !importantで上書きできないブラウザのスタイルとは
  • リンクの入れ子は subgrid が最適解かもしれない

    はじめに リンクの入れ子とは何かというと、以下のようなデザインです。 カード全体がリンクでクリッカブルになっていて、中のタグやカテゴリーもそれぞれがリンクになっています。ニュースやブログの投稿などでよく見るデザインだと思います。 しかし、以下のようにマークアップすることはできません。 <a href="https://example.com/posts/hello-world/"> <h2>Hello, World!</h2> <p>...</p> <a href="https://example.com/tag/hello/">#hello</a> <a href="https://example.com/tag/world/">#world</a> </a> HTML のルール的に <a> の入れ子はダメだからです。 Subgrid を使った方法 Subgrid がまだない時代からいろ

    リンクの入れ子は subgrid が最適解かもしれない
    klim0824
    klim0824 2024/03/28
  • それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由

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

    それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由
    klim0824
    klim0824 2024/03/23
  • あなたが教わってるそのCSSテクニックはもう古い | TAKLOG

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

    あなたが教わってるそのCSSテクニックはもう古い | TAKLOG
    klim0824
    klim0824 2024/03/16
  • ボタンの最低幅を設定しつつ、かつコンテナが縮小してもはみ出さないようにするCSS

    ボタンのラベルが短い場合でも、ボタン自体には最低限ある程度の幅を持たせたいという場合がある。そんなときには、ボタン自体にmin-widthを指定して最低幅を設定する。 button { min-width: 10em; } しかし、そのボタンを配置するコンテナの幅が、ボタン自体のmin-widthの値よりも狭くなってしまうこともある。すると、ボタンがコンテナをはみ出してしまう。 ボタンの幅をコンテナに収めるためにはmax-width: 100%が使えそうにも思えるが、min-widthの方が優先されてしまうので機能しない。そこで、min-widthの値としてmin()を使うようにする。 button { min-width: min(10em, 100%); } このようにすると、min-widthの値が100%を超えることを防げる。 See the Pen Untitled by Yuh

    ボタンの最低幅を設定しつつ、かつコンテナが縮小してもはみ出さないようにするCSS
    klim0824
    klim0824 2024/02/22
  • 実践 popover 属性 〜HTMLのみのモーダルで実案件に使えるのか確認〜

    こんにちは森田です。 前回、HTMLのみでモーダルが作れる popover 属性の概要についての記事を書きました。 2024年はHTMLのみでモーダルが作れそう。popover属性を試してみる。 前回の記事内では軽い動作しかしていなかったので、今回は実際に案件でどこまで使うことができるか確認したいと思います。 popover 属性を試してみる ではさっそく popover 属性を色々試してみましょう。 まずは動作確認として超シンプルなモーダルを作ってみます。 動作確認用超シンプルなモーダル まずは前回の記事のおさらいで、動作確認用の超シンプルなモーダルです。 モーダルになる要素に popover 属性と任意の id を。表示するボタンにpopovertarget属性を指定し、モーダル要素の id を指定します。 <button type="button" popovertarget="po

    実践 popover 属性 〜HTMLのみのモーダルで実案件に使えるのか確認〜
  • 2画面折りたたみデバイスに対応したCSSメディアクエリ - Qiita

    @media (horizontal-viewport-segments: <count>) { } @media (vertical-viewport-segments: <count>) { } <count>は水平(横長)、または垂直(縦長)の画面デバイス数を設定します。 例えば Surface Duo の2画面デバイス表示では以下の値になります。 水平の場合 horizontal-viewport-segments: 2 垂直の場合 vertical-viewport-segments: 2 CSS環境変数 各ビューポートのプロパティは、次の環境変数定義で取得できます。 env(viewport-segment-width <x> <y>); env(viewport-segment-height <x> <y>); env(viewport-segment-top <x> <y>

    2画面折りたたみデバイスに対応したCSSメディアクエリ - Qiita
    klim0824
    klim0824 2024/02/17