20211008のCSSに関する記事は9件です。

【HTML】戻るボタンの実装方法

はじめに 戻るボタンを実装する機会はかなり多いと思うのですが、そのときのための備忘録として残しておきます。 戻るボタンの実装 aタグでの実装 HTML <a href="javascript:history.back();">戻る</a> buttonタグでの実装 HTML <button type="button" onclick="history.back()">戻る</button> type="button"をちゃんと記述しないと、デフォルトでtype=submitとなってしまうので要注意!! formタグでの実装 HTML <form> <input type="button" onclick="history.back()" value="戻る"> </form> おわりに すべてHTML内の実装したい箇所に記述すれば良いので簡単ですね。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【第七回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

前回までのあらすじ 【第六回】コロナ禍だから何かできることを 実装イメージ図 LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。 前回までで一通りの流れを説明したので、今回からはシステムについて大きく説明していきたいと思います。 まずは、データベースの構造から。 データベースの構造 地区情報 作業者や利用者が住んでいる地区の情報を登録しておきます。 仮に企業が利用する場合などは、支店や拠点毎に登録することも可能です。 メールアドレス、ホスト名、ポート名、ユーザー名、パスワードについては メールアドレスのチェックを行う場合に使用します。 ここ 作業者情報 地区ごとに作業者の情報を登録します。  権限 権限は、 ・システム管理者 ・管理者 ・作業管理者 ・作業者 の4つに分かれ、権限によって利用できる画面が変わります。  利用可否 利用可否は、利用可能なデータかどうかの判断をします。 (一時利用不可とか) 利用者情報  各ID 利用者情報については、IDが2種類存在します。 新規で登録されたときは、利用者IDだけが自動採番されます。 今回のLINE連携を使用しない場合はこのままですが、 利用者からLINE連携の処理が来た時に、LINE IDが格納されます。 これにより、LINEとの連携が可能になります。  最終連絡日 最終連絡日においては、利用者からLINEの通知が来た場合、 もしくは作業者が個別で連絡し、画面上からコメントを書き込んだ時に日付が入ります。 すると、最後にやり取りした日がわかるため、状況によってメールで担当者に報告したり、画面上でアクションを発生させたりすることができます。 (今回は、12時間以上は注意喚起、24時間以上は警告としています。)  状態 状態については、 ・未確認 ・自宅療養中 ・入院 ・完了 としてあります。 「未確認」は利用者登録したとき、「自宅療養中」と「入院」は言葉通り、「完了」は完治や死亡など管理対象外となった場合です。 連絡情報 ここに担当者と利用者のやり取りを蓄積していきます。  手段 手段はやり取りした方法を自動で更新します。 パターンとしては、 ・LINE通知 ・画面上で状態を変更したとき ・連絡後コメントを入力したとき 以上の3パターンになります。 次回は、WEB画面のレイアウトを含めて説明します。 コロナ禍だから何かできることをー 自宅療養者連絡ツール ー 【第一回】実装イメージ図と動画 【第二回】LINEからデータを取得して返すまでの流れ 【第三回】LINEからデータベースまでの流れ 【第四回】データベースへの更新までの流れ 【第五回】ユーザー登録の仕組み-LINEbotの設定部分 【第六回】ユーザー登録の仕組みLIFFで表示する画面の開発 ->>【第七回】データベースの構造 【第八回】WEB画面上でできる機能 【第九回】まとめ
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

スマホブラウザで「:hover」疑似クラスを無効にする

Web制作持によく使われる:hover擬似クラスですが、レスポンシブ対応させたWebページで タップ操作しかないスマホブラウザでは:hoverのスタイル変化を無効にしたいという場合の実装法です。 めちゃくちゃシンプルですが、 @media screen and (min-width: 600px) { a:hover { } } のようにメディアクエリの(min-width: ***px)でスタイルを適用する最低画面幅を設定し、 その中で:hoverのスタイルを定義します。 上の例では「600px以上の画面幅があるときは<a>に:hoverを適用してね」ということなので、厳密には「スマホブラウザのみで無効にする」というわけではありませんが、実際問題的にはスマホ表示時には無効にできると思います。 以上、個人的備忘録失礼しました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

スマホサイトで「:hover」疑似クラスを無効にする

Web制作でよく使われる:hover擬似クラスですが、レスポンシブ対応させたWebページで タップ操作しかないスマホブラウザでは:hoverのスタイル変化を無効にしたいという場合の実装法です。 めちゃくちゃシンプルですが、 @media screen and (min-width: 600px) { a:hover{ } } のようにメディアクエリの(min-width: ***px)でスタイルを適用する最低画面幅を設定し、 その中で:hoverのスタイルを定義します。 上の例では「600px以上の画面幅があるときは<a>に:hoverを適用してね」ということなので、厳密には「スマホブラウザのみで無効にする」というわけではありませんが、実際問題的にはスマホ表示時には無効にできると思います。 以上、個人的備忘録失礼しました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[flexbox]ブラウザのサイズやデバイスの違いを柔軟に表示する 固定 可変

flexboxでリキッドレイアウト(固定 + 可変)にする方法 ・リキッドレイアウトとは可変カラムと固定カラムのこと。 ブラウザのサイズやデバイスの違いを柔軟に表示する概念 例) 「サイドメニューが、固定幅で、メインコンテンツが可変幅」など。 ・flexboxのリキッドレイアウトが使えるケース ・レスポンシブデザインに最適 ・固定、可変する要素があるとき ・フォームのラベルと入力要素が並ぶ時 cssfile .wrapper { display: flex; } .side { width: 300px; } .main { flex: 1; } htmlfile wrapper side main 1, CSSでは、梱包要素のwrapperクラスに、display: flex; を適用することで フレックスコンテナボックスにすることが目的。これで子要素は横並びになる 2, sideクラスに width: 300px;の横幅を与えて固定値とする 3, mainクラスにflex: 1;の指定で可変を実現する。 flexプロパティはflexのスタイルカスタマイズする省略プロパティ。 CSSショートハンドという。リキッドレイアウトを実現するに当たって厳密にプロパティを指定する必要性がない。 まとめ ・必要なHTML:梱包要素、固定カラム、可変カラム。 ・必要なCSS:梱包要素 display: flex; 固定カラム width: ~~px; 可変カラム flex:
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

How to use object-position with next/image

Next.js offers many benefits compared to create-react-app, which is why the framework has been growing in popularity for the past few years. One of these benefits is next/image. The magic of next/image is that it automatically optimizes images for smaller viewports. However, if you're like me, you might start to get frustrated with next/image when you start trying to style it with CSS. One challenge I faced was trying to center the image using the object-position CSS property. In the following example, I'll be using typescript, but if you prefer to use javascript, just change index.tsx to index.js/index.jsx and you'll be good to go. global.css .next-image{ object-position: center } The code above will not work with next/image. Instead, we have to pass props to Next's Image component. These props will then be passed to different CSS properties. Image Size Next's Image component offers us width and a height props. However, we won't be using them because we want our width to change according to the screen size. To do that we are going to create a container div and make sure anything outside that div is hidden. Don't forget to set the height and width of the container. Feel free to use media queries if you like. index.tsx import Image from 'next/image'; import someImage from "./public/someImage.png" const Home = () => { return ( <div className="next-image-container"> <Image src={officeImg} /> </div> ); }; export default Home; global.css .next-image-container { height: 400px; width: 100vw; overflow: hidden; } Setting the Object-Position Property Next/image comes with objectFit and objectPosition props. These props get passed to the CSS object-fit and object-position properties. In order to use objectFit and objectPosition, we also need to set out layout prop to fill (this will make the image grow to fit our container). Finally, we'll add position: relative to our next-image-container class. Don't forget this step or your image might just take up your whole page. Take a look at the final code below. index.tsx import Image from 'next/image'; import someImage from "./public/someImage.png" const Home = () => { return ( <div className="next-image-container"> <Image src={officeImg} layout="fill" objectFit="cover" objectPosition="center bottom" /> </div> ); }; export default Home; global.css .next-image-container { height: 400px; width: 100vw; overflow: hidden; position: relative; } Troubleshooting Problem: Image is taking up the whole screen. Solution: Make sure the parent div is set to position: relative. In situations where the parent div cannot be relative, create a new wrapper div around your image with a single CSS property: position: relative. If you'd like to learn more about next/image, you can check out the documentation here. Happy coding!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

多言語化対応で中国語(簡体字)フォントを指定する場合

先日の多言語化対応の「baserCMS サブサイトの多言語設定は、 なかなかにカオス。」記事で、中国語(簡体字)対応ページでフォントファミリーを指定したい場合、当該ページ用のレイアウトファイル内で、以下の様にlang="zh-cmn-Hans"指定し、CSS側で各要素にlang擬似クラス指定をして反映させています。 <html dir="ltr" lang="zh-cmn-Hans"> <head> <link rel="alternate" hreflang="ja" href="https://hoge.com/"> <link rel="alternate" hreflang="en" href="https://hoge.com/en/"> <link rel="alternate" hreflang="de" href="https://hoge.com/de/"> <link rel="alternate" hreflang="fr" href="https://hoge.com/fr/"> <link rel="alternate" hreflang="zh-cmn-Hans" href="https://hoge.com/zh/"> <link rel="alternate" hreflang="x-default" href="https://hoge.com/"> </head> CSS側で各要素にlang擬似クラス指定をして記述。 ちなみにinput要素、textarea要素やらは、body要素の内容が反映されないので、個別に指定する必要があります。 /* サンセリフ体の場合 */ body:lang(zh-cmn-Hans), input:lang(zh-cmn-Hans), textarea:lang(zh-cmn-Hans), select:lang(zh-cmn-Hans), button:lang(zh-cmn-Hans) { font-family: 'Noto Sans SC','SF Pro SC','SF Pro Text','SF Pro Icons','PingFang SC','Helvetica Neue','Helvetica','Arial',sans-serif; } /* セリフ体の場合 */ body:lang(zh-cmn-Hans) { font-family: 'Noto Serif SC','SF Pro Icons', 'Kaiti SC', 'SimSun', serif; }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

CSSの新しい単位qwとqh コンテナベースの相対単位って?

qwとqhってどんな単位? コンテナ単位と言われている「qw」と「qh」は、コンテナのサイズをベースにする相対単位です。 下記の図のようにコンテナの幅を起点としたサイズでfontやmarginなどを指定することができます。 CSS Container Query Unitsより vwやvhは非常に便利でしたが、ビューポートサイズに相対するため意図しない表示になってしまうこともあったと思います。 現在のReactやVueなどコンポーネント単位で実装する言語とは相性が良いのではないかと思います。 対応状況は? 結論、今は設定をしないと使えません。 デモとしてなら良いですが、一般公開するサイトには利用できないでしょう。 試したい場合は以下のステップで設定をしてください。 1. chrome://flags/にアクセス 2. 「container queries」で検索 3. 「Default」になっているのを「Enabled」に変更する 1qwはいくつ? 公式ドキュメントによると1の単位はコンテナ幅の1%に当たるようです。 単位 説明 qw コンテナ幅の1%。10qwならコンテナの幅の10% qh コンテナの高さの1%。10qwならコンテナの高さの10% 公式ドキュメント おまけコンテナークエリ(Container Query)って? これまではmedia querywindow幅に応じてCSSで表示を切り替えてきたけど、 コンテンツクエリは親要素の幅に応じてCSSを適応していくというものです。 @container (min-width: 500px) { .child { display: flex; align-item: center; } } と書くことで親要素の幅が500より大きいときに横並びにする。 という記述をすることができます。 めっちゃ便利。 参考URL一覧 CSSの新しい単位がすごく便利!コンテナベースの相対単位「コンテナ単位(qw, qh)」の基礎知識と使い方 CSS コンテナクエリの基礎知識と便利な使い方を解説 CSS Container Query Units CSS仕様
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

CSSの新しい単位pwとph コンテナベースの相対単位って?

pwとphってどんな単位? コンテナ単位と言われている「pw」と「ph」は、コンテナのサイズをベースにする相対単位です。 下記の図のようにコンテナの幅を起点としたサイズでfontやmarginなどを指定することができます。 CSS Container Query Unitsより vwやvhは非常に便利でしたが、ビューポートサイズに相対するため意図しない表示になってしまうこともあったと思います。 現在のReactやVueなどコンポーネント単位で実装する言語とは相性が良いのではないかと思います。 対応状況は? 結論、今は設定をしないと使えません。 デモとしてなら良いですが、一般公開するサイトには利用できないでしょう。 試したい場合は以下のステップで設定をしてください。 1. chrome://flags/にアクセス 2. 「container queries」で検索 3. 「Default」になっているのを「Enabled」に変更する 1pwはいくつ? 公式ドキュメントによると1の単位はコンテナ幅の1%に当たるようです。 単位 説明 pw コンテナ幅の1%。10qwならコンテナの幅の10% ph コンテナの高さの1%。10qwならコンテナの高さの10% 公式ドキュメント おまけコンテナークエリ(Container Query)って? これまではmedia querywindow幅に応じてCSSで表示を切り替えてきたけど、 コンテンツクエリは親要素の幅に応じてCSSを適応していくというものです。 @container (min-width: 500px) { .child { display: flex; align-item: center; } } と書くことで親要素の幅が500より大きいときに横並びにする。 という記述をすることができます。 めっちゃ便利。 参考URL一覧 CSSの新しい単位がすごく便利!コンテナベースの相対単位「コンテナ単位(qw, qh)」の基礎知識と使い方 CSS コンテナクエリの基礎知識と便利な使い方を解説 CSS Container Query Units CSS仕様
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む