更新日
#31 ピクセルパーフェクト|デザインデータとのズレをチェックして実装の精度を高めよう
ピクセルパーフェクトとは?
ピクセルパーフェクトとは「デザインデータ」と「コーディングデータ」見た目を1pxのズレもないように実装することです。
以下のようにデザインデータ画像とコーディングデータを重ねてそのズレをチェックしていきます。
例ですが、メインコピー部分が大きくずれていますよね。
ただ、動画でも説明しますが、1pxのズレもなくコーディングするのは現実的ではないのでピクセルパーフェクトの概要とズレの調整方法を身に着けることができればOKです。
本講座の流れ
- まずはこちらの記事を見る
- 次に動画を見ながら一緒にPC版のズレを調整する
- 余裕があればPC版と同様の流れでスマホ版を調整してみる
ピクセルパーフェクトを記事でざっくりと理解
動画を見ながら一緒に手を動かしてみよう
補足|line-heightの単位について
動画内でline-heightの単位を今までは150%
のように%の単位を用いて記述をしていました。
これは初学者の皆さんが混乱しないように便宜上Figmaで記載されている単位にそろえましたが本来はline-heightの単位は値なしの一択です。
単位なしというのは、デザインデータの行間の値が仮に「120%」となってい場合、「1.2」という100分の1で記述する記法のことです。
なぜ単位なしがベストかを理解するために、まずはこれまでに習った単位なし、%、emの単位ごとの違いについて確認します。
単位なしの場合は各要素のfont-size
に基づいて行間が設定されています。例えばh1
であれば20pxに対してline-height: 2
なので40px
になっていますよね。
しかし、em
と%
については全ての行間が60px
になっています。
これは%とemで指定した場合、line-heightは親要素のfont-sizeを元に計算された値が適用されてしまいます。
つまり、30px
に対して200%
なので60px
が全ての子要素に継承されてしまうという訳です。
見た目の差を見ると歴然ですね。
明らかに意図しない行間の広さとなってしまいます。これらの理由からline-height
は単位なしで記述するのがベストというわけですね。
全ての要素ごとにline-heightを指定していれば継承されない
ちなみにこの継承は親要素だけにline-heightが指定されていた場合のみ起こります。
<div>
これはdivのテキスト
<h1>見出し</h1>
<p>文章</p>
</div>
継承されてしまう場合
div{
font-size: 30px;
line-height: 200%;
}
この場合、divのfont-size: 30pxを基に計算されたline-height
が継承されてしまう。
継承されない場合
div{
font-size: 30px;
line-height: 200%
}
h1{
font-size: 20px;
line-height: 200%
}
p{
font-size: 10px;
line-height: 200%
}
この場合それぞれに設定したline-height
が適用されます。
そのため、単位なしの記法は各要素にline-height
が指定されていない場合の無用なリスクを避けるための方法という位置付けになります。
補足|flex-growについて
flex-grow
はflexアイテム(中の子要素)の広がり方をコントロールするプロパティです。
このプロパティに関しては以下の記事が非常にわかりやすいのでこちらをご覧ください。
スマホ版も同様の手順でチェックして修正をしてみよう
ここからは余裕があればでOKです👍
Perfect Pixelを使った調整の要領を掴んでもらえればここに時間をかけすぎる必要はありません。
チャレンジする中で不明点があればご質問ください。