技術書
書籍「HTML&CSSとWebデザイン実践講座」でのインプットをまとめます。
本業ではバックエンドの業務がメインでマークアップ・デザイン関連知識が乏しいため補う目的でよんだところ、CSSについて知らないことが多く学びが多かったです。
ブラウザごとにデフォルトで適用されてしまうCSSを打ち消す目的で使用 必ず最初にインポートする必要がある
情報量の多い場合には設計が難しい。 ショッピングサイトやギャラリーサイトのように一度に多くのアイテムを一覧表示したい場合や ニュースサイトやブログサイトのように関連記事も表示させたい場合にはマルチカラムの採用がよい
Shrink me 画像をドロップすると画像のクオリティはそのままに圧縮することが可能。
Compressor.io 上記と同様
無料。 1000種類のフォントが扱える。
ユーザーに与える印象は大きく変わる。 例 ゴシック体は装飾が少なく、デザインに合わせやすい 明朝体は全体的に線が細くすっきりとまとまる
見出しやアクセントとなる部分と本文で別のフォントを使用することで目立たせたい部分を明確にすることができる。
一番おさまりがいい方法
太さや文字サイズを変更して見出しと本文に差をつけるとよい。
より見出しと本文に差が生まれる。 躍動感や独創性が表現できる。 ただし、フォント同士の幅異なるとよみにくい。
文章を読ませると同時に見せることができ、デザインの一部として利用可能 使うなら見出しや本文にとどめる
元画像をツールを使ってぼかすといい もとの画像がわかる程度にとどめたほうがいい。
パターン画像を重ねる。
background-imageに2つの背景指定をします。 ライン柄はCSSのみで行ける。
Webページで文字と同じように使用できるアイコンのこと 拡大縮小しても画質が劣化しないのが利点。
汎用性が高い。
HTMLのhead内にviewportを設定する必要がある。 設定しないとスマホでもデスクトップで表示されてしまう。
<meta name="viewport" content="width=device-width, initial-scale=1">
デバイスの横幅に合わせた表示を設定している。 contentは両方書いておくのが一般的。
ブログサイト向けデザイン。 モバイルファーストを採用する
モバイルには2カラムは不要なのでシングルカラムで作成。
600px以上のサイズで適用する。(2カラム) mainカラムとasideカラムを作成し、CSSで親要素(containerに)flexを適用する。
h1::after { content:"テキスト" }
beforeとafterがある。
要素の前に疑似要素が追加
要素の後に疑似要素が追加
画像を表示させる例 aタグのリンクに対してアイコンを表示させる。
a::before { padding: 0 5px } /* 外部リンク */ a[href^=http://]::before { content: url(image/link.svg) } /* メール */ a[href^=mailto:]::before { content: url(image/email.svg) }
疑似要素で空の要素を表示する。 例では文字をラインで貫いているように実装する。
<h1>疑似要素で空の要素を表示する</h1>
h1 { display:flex; font-size: 2rem; } h1::before, h1::after { flex: 1; height: 2px; content: ''; background-color: #ddd; position: relative; top: 1rem; } h1::before { margin-right: 1rem; } h1::after { margin-left: 1rem; }
aタグのhrefの属性値やinputのtypeの属性値を指定できる。
input[required] { background: pink; }
以前JSが必要だったが今はCSSで実装可能。
html { scroll-behavior: smooth; }
ページ内リンクのクリックによってスルスル動くようになる。
色と画像を重ねることができる。 基本的な実装方法:
<section id="hero"> // 中身を記述 </section>
#hero { background-color: #4bdlec; background-image: url('イメージへのリンク'); background-repeat: no-repeat; background-position: center; background-size: cover; background-blend-mode: screen; height: 100vh; display: flex; align-items: center; }
始点と終点の2点間の動きで完結できる動きはCSSのみで設定することができる。 ホバーとかの発火させるきっかけが必要
| プロパティ名 | 意味 | 指定できる値 | | -------------------------- | ------------------ | --------------------------------------------------------------------- | | transition-property | アニメーションを適用する | all, プロパティ名, none | | transition-duration | 実行にかかる所要時間 | 数値 | | transition-timing-function | アニメーションの速度やタイミング | ease, linear, ease-in, ease-out, ease-in-out, setes(), cubic-bezier() | | transition-delay | アニメーションが始まるまでの待ち時間 | 数値 |
ホバー時に幅や背景色を数秒かけて変化させるなどができる。
transitionに比べて始点と終点の間にいくつも経過地点を設定可能。 @keyframesで指定する。 また、自動で起動可能。
@keyframes 任意のキーフレーム名 { 0% { プロパティ: 値; }, 50% { プロパティ: 値; }, 100% { プロパティ: 値; } }