CSSに関するmeeeresのブックマーク (422)

  • 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
    meeeres
    meeeres 2024/05/30
  • Modern Font Stacks

    System font stack CSS organized by typeface classification for every modern OSThe fastest fonts available. No downloading, no layout shifts, no flashes — just instant renders.

    Modern Font Stacks
  • 和欧混植 font-sizeの微調整 - Qiita

    この記事の概要 Webサイトにおいて、文字の画面占有率は大きい割に、タイポグラフィの甘さったらないですよね。 組版のための仕組みが整っていないなど、仕方ない部分が大きいとは言えもう少し改善したくなります。 というわけで、和欧混植時に少しでも見た目が良くなる方法を考えてみました。 @font-faceでフォントを定義してsize-adjustで調整 Webフォント、ローカルフォント、どちらでも使えるテクニックです。 ローカルフォントを再定義する方法の方が面白い使い方な気がするので、例はそちらをお見せします。 仮に、ヒラギノ角ゴシックとAvenirを混植するとします。 通常の指定方法だとコードはこのようになります。

    和欧混植 font-sizeの微調整 - Qiita
  • コンテナクエリ @container が全ブラウザ対応。新時代のレスポンシブ対応を完全理解する

    日(2023/2/14)、ついに Firefox でコンテナクエリ(container query)に対応しました。Chrome・Edge・Safari はすでに現行ブラウザで対応済みのため、全ブラウザにてコンテナクエリが使えることになります💐 従来、レスポンシブ対応でレイアウトを変えるには @media を使ってウインドウサイズを基準にするかありませんでした。コンテナクエリ @containerを使うと任意の要素を基準にできるので、「A要素の横幅が 500px 以下のとき、子要素のレイアウトを変える」などが手軽に実現できます。 とくにコンポーネントベース開発が主流の現在においては、コンテナクエリをマスターすることで、より柔軟でラクなレスポンシブ対応が可能になります。 記事では、コンテナクエリの基、メリット、デモまでをできるだけ詳しく解説し、コンテナクエリを理解することを目標としま

    コンテナクエリ @container が全ブラウザ対応。新時代のレスポンシブ対応を完全理解する
    meeeres
    meeeres 2023/02/15
  • html { font-size: 62.5%; } は嫌いだ - デフォルトを変更するのは悪手です - Qiita

    font-size: 62.5%;というテクニックがありますよね デフォルト値に手をかけるので、超絶嫌いなテクニックのひとつです なのにですね、あちこちで超見かけるんですよ。 検索かけても「便利!」という言葉がたくさん並んでいるんです。 超嫌いなんですが、いったいどこから湧いたテクニックなのかわからない。 そこで、時間を見つけて調べようと思って、タイトルを書くだけ書いたら1年溶けてました そろそろ廃れる頃合いだと思うのですが、現在Webサイト制作の勉強をしている初学者間では、いまだにメインストリームを歩んでいるっぽいので、流行りに乗り遅れたなあと思いつつ、つらつら調べてみました。 html { font-size: 62.5%; } の概要 フォントサイズをピクセルで指定した場合、ユーザーがブラウザ設定でフォントサイズを変更していてもフォントの大きさは変わりません。 はっきり言ってアクセシ

    html { font-size: 62.5%; } は嫌いだ - デフォルトを変更するのは悪手です - Qiita
    meeeres
    meeeres 2023/01/16
  • よりよいCSSを書くための、CSS / Sass (SCSS) 30のルールとその理由

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

    よりよいCSSを書くための、CSS / Sass (SCSS) 30のルールとその理由
    meeeres
    meeeres 2022/04/18
  • 日本語の折り返しをJavaScriptで制御する - LIVESENSE ENGINEER BLOG

    インフラエンジニアの中野(etsxxx)です。今回はWebのフロントの話です。稚拙な部分はご容赦を。 はじめに 前提知識 解決案の候補 解決案1: 手でspanタグをつける 解決案2: サーバーサイドの処理 解決案3: クライアントサイドの処理 クライアントサイドで文節区切り 実装 結果と考察 さいごに はじめに 2020年12月、リブセンスにQ by Livesenseという広報ブログが誕生しました。このブログは明朝体と縦書きと長文にアイデンティティがあります。 Q by Livesenseはこういう見た目のブログです。 Q by Livesenseは縦書きということで、漢数字を使っていたり、写真やイラストを使わずに純粋な文体で記事を書いていたりと、書籍のような日語らしさが求められるデザインとなっています。 縦書きはWebエンジニアにとっても珍しい実装ですが、読者にとっても慣れないUI

    日本語の折り返しをJavaScriptで制御する - LIVESENSE ENGINEER BLOG
  • それでも私がTailwind CSSではなく、CSS Modulesを推す理由 - Qiita

    *2021 6/11追記 『でもクラス名考えるのめんどくさい』問題についての私の見解を大幅加筆しました。 *記事はピュアなCSSについてのある程度の知識があり、Tailwind CSSの採用について考えている層を対象読者としています。ピュアCSSの知識が乏しく、最適なCSSフレームワークを探している読者は対象としていません。 色々書き比べた結果Tailwind CSSにしたという話 こちらの記事がバズっていた(6/9現在 over 200likes)為、読ませて頂きました。 これまで主観的な印象と薄い議論で賛否が分かれていたTailwind CSSについてこれまでのcss技術の変遷を踏まえて技術的にかなり踏み込まれた考察の上で選定の理由が書かれており、Tailwind CSSアンチ派の私にとっても非常に勉強になる記事でありました。リスペクト。 その上で、こちらの記事では私が『それでもC

    それでも私がTailwind CSSではなく、CSS Modulesを推す理由 - Qiita
    meeeres
    meeeres 2021/06/11
  • CSSだけでモーフィングを実装できる!文字列を違う文字列に滑らかに変化させるCSSのテクニック

    文字列を違う文字列に滑らかに変化させるモーフィングをCSSで実装するテクニックを紹介します。 モーフィングは人が別の人に変化するのを映画テレビで見かけますが、文字ならCSSだけでそれっぽく簡単に実装できます。 仕組みは、CSSblurとcontrastで文字をぼかして変化の間をつなげています。 実際の動作は、下記でお楽しみください。 「Run Pen」をクリックすると動作します。「0.5x」にするとちょうどいいかも。 See the Pen CSS morphing by Amit Sheen (@amit_sheen) on CodePen. 実装コードは、下記の通りです。 デモでは7つのワードをモーフィングしています。ワードの数は増減もOKで、その際はCSSを少し変更します。 <div class="morphing"> <div class="word">Pure&nbsp;CS

    CSSだけでモーフィングを実装できる!文字列を違う文字列に滑らかに変化させるCSSのテクニック
    meeeres
    meeeres 2021/06/07
  • 色々書き比べた結果Tailwind CSSにしたという話 - Qiita

    Twitterでこういう発言を見かけまして Tailwind CSSはデザインに凝ってるサイトでは使えない こだわりが無い場合に向いている は?何いってんの? って思ったので、自分がいろいろ試した結果、Tailwind CSSを選んだ話を書きます。 はじめに 以前、Tailwind CSSは結構いいぞって話を書いたんですが、この記事の立ち位置的にはその続きみたいなものなので、以下の記事を始めにご参照いただけるとより分かりやすいかもしれないです。 この記事では、前回記事を書いた後、個人仕事でWebサイトをGatsbyで作り、その中で、どうやってCSSを書くのが良いのか模索した結果、自分はこれを選んだっていうのを、同じUIを色々な方法で書き比べたコードを並べつつ、どうのこうの筆者の考えを述べていきます。 その仕事はほとんど筆者が「まかせてくださいよーいい感じに作りますよー。デザインそろってない

    色々書き比べた結果Tailwind CSSにしたという話 - Qiita
    meeeres
    meeeres 2021/06/07
  • CSS の Container Queries おためし - 見返すかもしれないメモ

    CSS に、コンテナクエリという機能があるらしい。 メディアクエリでは画面全体の大きさに応じて要素のスタイルを変えることができたけど、コンテナクエリを使うと当該要素の親の大きさに応じてスタイルを変えられる。 /* メディアクエリの例 */ /* 画面幅が 400px 以下だったら、div を赤くする */ @media screen and (max-width: 400px) { div { background-color: red; } } /* コンテナクエリの例 */ /* div の親要素の幅が 400px 以下だったら、div を赤くする */ @container (max-width: 400px) { div { background-color: red; } } その機能が Google Chrome Canary で使えるようにされたと聞いたので、使ってみた。 こ

    CSS の Container Queries おためし - 見返すかもしれないメモ
    meeeres
    meeeres 2021/04/26
  • CSS見出しデザイン21選。現場ですぐ使える見出しデザインをご紹介 | BUILD Journal

    CSSで実装できるシンプルな見出しデザインを21パターンご紹介します。汎用性が高くテイストに縛られず現場ですぐ使えるデザインなのでストックしておくと便利に使えます。あなたの現場でぜひご利用ください。 CSSのみで実装するシンプルな見出しデザイン21パターン蛍光ペンのような線をひいたCSS見出しデザイン HTML<h2 class="heading01">ラインを使ったCSS見出し</h2>CSS.heading01 { display: inline; font-size: 26px; background-image: linear-gradient(rgba(0,0,0,0) 70%, rgb(252,81,133) 70%); }蛍光ペンで線を引いたような見出しデザインです。display: inlineで複数行にも対応させています。 2色を重ねた線とCSS見出しデザイン HTML<

    CSS見出しデザイン21選。現場ですぐ使える見出しデザインをご紹介 | BUILD Journal
  • CSS Snapshot 2020が発行されました | フロントエンドBlog | ミツエーリンクス

    CSS Snapshot 2020が発行されました(参考日語訳)。 この文書は各CSS仕様がどの程度安定しているのかを示すものであり、次の3つの分類がなされています。 CSSの公式の定義(Official Definition):CSSを定義する仕様群です。 かなり安定しているが実装経験不足(Fairly Stable Modules with limited implementation experience):仕様としての設計作業は終えていますが、テストや実装の経験が不足しているものです。 ラフな相互運用性をもつ(Modules with Rough Interoperability):実装に差異がある一方で、多くのウェブサイトで使用されているものです。テストとバグ修正が必要と判断されています。 前回のCSS SnapshotはCSS Snapshot 2018でした(参考日語訳)

    CSS Snapshot 2020が発行されました | フロントエンドBlog | ミツエーリンクス
    meeeres
    meeeres 2020/12/24
  • iOSでも100vhをいい具合に調整して画面の高さいっぱいに要素を表示させる

    TAK(@tak_dcxi)です。今回もCSSに関する投稿です。 以前このようなツイートをしました。 メインビジュアルなど、画面いっぱいに要素を表示するためにheightやmin-heightに100vhを指定する。そして、iOSで表示確認した時に以下のような問題が起こるわけです…。 iOSのSafariでの100vhが気にわない問題 iOSのSafariでは100vhの計算にアドレスバーが考慮されていないため、アドレスバー分押し出されて格好悪く表示されます。ちなみにiOSのGoogle Chromeは中身SafariなのであれもSafariです。 この問題に立ち向かうために、実装者はJavaScriptを利用して高さを指定したり、height: 100%;のバケツリレーを行ってアドレスバーまで考慮した画面いっぱいの表示を実現するために頑張ってきたわけです。 そんな中、先程のツイートから

    iOSでも100vhをいい具合に調整して画面の高さいっぱいに要素を表示させる
    meeeres
    meeeres 2020/10/05
  • 【脱!important】保守性を意識したスタイルを確実に上書きするためのテクニック

    TAK(@tak_dcxi)です。今回もCSS設計に関する投稿です。 皆様はWebサイトの運用でCSSを更新・改修する際に、既存のスタイルが上書きできなくて苦しんだことはありませんか? class名のタイポミスだったり、そもそも指定したセレクタに対応する要素が無い…といった凡ミスも原因だったりはしますが、大抵の場合他のスタイル指定が強くて上書きできない、つまり「詳細度」が影響していることが多いです。 CSSを破綻させる原因の一つの「詳細度」とは? MDNの説明を引用すると以下の通り。 詳細度は、どの CSS プロパティが要素に最も関係があるか、すなわち適用されるかをブラウザーが決定する手段です。詳細度は様々な組み合わせの CSS セレクターで構成される一致規則に基づいています。 CSSのスタイル指定が競合した時に優先される、セレクタが生まれながらに持つ「強さ」みたいなものです。 全称セレク

    【脱!important】保守性を意識したスタイルを確実に上書きするためのテクニック
    meeeres
    meeeres 2020/10/03
  • CSS変数による配色はcontrastとrgbも用意したら捗るぞ

    DESCRIPTION CSSの基調色は変数化しよう そうすることで部分最適で「同じような色を複数生み出すこと」が避けれるよ 「基調色」はcontrastとrgb値も用意するといいよ! 文 プライマリーカラーやセカンダリーカラーは変数化するのが一般的になりました。配色をいろいろなコンポーネントプロパティに書き散らかすと部分最適化した結果「気づいたら青色が32種類」ということになる事例もありますので、全体を最適化して保守性を高めるために、配色の変数化は一般的です。こんな感じですね。

    CSS変数による配色はcontrastとrgbも用意したら捗るぞ
    meeeres
    meeeres 2020/09/27
  • これで解決!height: 100vh;を定義したのに、iOSのスマホで高さいっぱいに表示されないのを解決するCSSのテクニック

    iOSのスマホでheight: 100vh;を定義してビューポートの高さいっぱいに表示したいのに、アドレスバーが表示されているとその分下が隠れて表示されてしまい、高さいっぱいにならないのを解決する方法を紹介します。 CSSのみのテクニックで、JavaScriptは必要ありません。 height: 100vh;だけでなく、min-heightやmax-heightでも機能します。 PostCSS 100vh Fix -GitHub PostCSS 100vh Fix 注意点 使い方 PostCSS 100vh Fix PostCSS 100vh Fixは、100vhのiOSの挙動(バグ?)を修正するPostCSSのプラグインです。ピュアCSSのソリューションで、JavaScriptは必要ありません。 高さいっぱいに表示したい時に、height: 100vh;だけを定義してもiOSでは期待通り

    これで解決!height: 100vh;を定義したのに、iOSのスマホで高さいっぱいに表示されないのを解決するCSSのテクニック
    meeeres
    meeeres 2020/09/11
  • CSSでロゴのようにサイズが異なる画像を美しく揃えて配置するスタイルシートの実装テクニック

    ロゴ画像のようにさまざまなサイズ、さまざまな形の画像を美しく揃えて配置するスタイルシートのテクニックを紹介します。 CSSのテクニックだけでなく、デザイン上の注意点も解説されており、実装時の参考になります。 Aligning Logo Images in CSS by Ahmad Shadeed 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに ロゴを配置する時のデザイン上の注意点 ロゴを配置するグリッドの実装 CSSブレンドモードを使用してホワイトの背景を削除する ロゴの最後の行の中央揃え 実装時の注意点 終わりに はじめに フロントエンドのデベロッパーとして、複数のロゴを配置したことがあるでしょう。この実装は最初は簡単に思えるかもしれませんが、ロゴを揃えたり、中央配置にする時に悩ますかもしれません。さらに、ロゴにはさ

    CSSでロゴのようにサイズが異なる画像を美しく揃えて配置するスタイルシートの実装テクニック
    meeeres
    meeeres 2020/07/16
  • ウェブ組版は行間が基準なのではという話 | hanarenoheya

    以前見かけたこの記事がきっかけで、実務でもずっと引っかかっていたことがあるので書こうと思う。 > remの基準となる値を行の高さにする | yoshihiko com-blog 行間 ≠ line-height という罠 よくある疑問に、日語で言う「いわゆる行間」と、CSSの「line-height」は違うというのがある。日語の文章は、仮想ボディが基準の原稿用紙のようなグリッドがあって、それが「いわゆる行間」のピッチで繰り返されて文ができている。文字の頭(仮想ボディの上)から次の文字の頭までがいわゆる行間とされている。もっと正確に書くと、これは行送りであって、正確な意味での行間は line-gap というものになる。 行送り= line-height、行間= line-gap で、一方ラテン語圏が基のウェブ(CSS)では、この line-gap のくっつき方が純粋な日語組版とは異

    ウェブ組版は行間が基準なのではという話 | hanarenoheya
  • Sassのモジュールシステムを@importから@useに移行する方法を考えてみた

    先日、KOJIKA17さんの「Sassを@importから@useに置き換えるための手引き 」という記事を見て、2022年10月ころにはSassで@importが使えなくなる可能性があることを知りました。まだ2年ありますが、新しく取り組むプロジェクトでは@useを使ったモジュールシステムにしたいので、自分が使っている構成の置き換えについて考えてみました。 まずはアイディアをシェアをして叩き台にしてもらうのが目的ですが、他に良い書き方があったらぜひアドバイスいただきたいというのもあります。 試しながら、考えながら書いているので内容は変更される可能性が高いかもしれません。 Sassの新モジュールシステムについて Sassの新しいモジュールシステムについては、上述の記事や SHIFTBRAINさんのブログ がわかりやすかったです。ありがとうございます。 公式の発表と@useと@forwardのド

    Sassのモジュールシステムを@importから@useに移行する方法を考えてみた