TIPS
・ホバー時の色は、カラーコードではなくopacity(透明度)をいじると良いかも
・基本的には要素同士の関係よりクラスで指定した方が良いが、
liとか、絶対にタグが変わらないものとかは関係でもOK
・タブレットで表示した時の見え方は、meta viewportでPC版に合わせる。そうするとタブレットの微妙な画面幅のことを考えなくて良くなる?
・コーディングに入る前に、繰り返し使えそうなパーツは何かを考える
・余白はパーツのスタイルに入れず、利用箇所ごとで設定するとパーツの再利用性が上がる
・BEMの命名は、セクションごとではなくパーツごと
(ヘッダーにBlockが4個くらいあったりする)
・flexboxで、カラム数を「2or4」みたいにしたい時は、要素を2つずつdivで囲む
・色は最初に定義しておくとやりやすい
・li:not(:last-child):not(:first-child)
でfirst-child
とlast-child
以外という指定ができる
・flexboxで段組みを作る時は、要素の幅(width: calc(100% / 3)
など)だけメディアクエリで調整すれば良い
・block要素の幅を文字量に応じて変更したい時にはwidth: fit-content
が使える
・marginは相殺されるので、margin-top
かmargin-bottom
はどちらか一方を使った方が良い
→margin-topを使おうと思う。
・border-radius
の値は変数に保存して使い回す(統一する)。
・<br class="sp">
などで、レスポンシブ時の改行位置を修正する。
・flashはtransition
等で表示、非表示をふわっとさせる
・Chromeのdeveloper toolで、option + 上下キー
で値を0.1ずつ動かすことができる
・object-fit: cover
で画像をトリミングできる
・tableに枠線を引くときは、table
,th
,td
それぞれにborder
を設定した後、table
にborder-collapse: collapse
を設定する
・justify_content: space-evenly
で要素を等間隔で配置できる
ハマったポイント
・display: table
を持つ要素には、overflow: scroll
が効かない
・table
にdisplay: block
を指定すると、width
が効かなくなる
→tableはdiv
で囲っておくのが無難
・classに対して:first-child
やnth-of-type()
などを指定すると、特殊な動きをする
・display:inline-block
を使うと、謎の余白が生まれることがある。
→親要素にfont-size: 0
を指定すると解消。
(参考:inline-blockの隙間をなくす方法)
・select
要素に:before
をつけたら、developer tool上では存在していることになっていても画面上のどこにも見つからなかった。selectとは相性が悪いのかも
→親要素のdiv
にbeforeをつけて対応
・tableのwidthを100%に設定しているのに、横幅が親要素からはみ出してしまっていた
→table-layout: fixed
で解決
・画像の幅が固定されている時、親要素にpaddingを当てる画像が右によってしまう
→画像にwidth: 100%; height: auto:
で解決
・input
要素に擬似要素は効かない
・上側のpaddingが効かなかった
→display: block
を指定して解決