ふくろうセレクタを用いた垂直配置

 フロー要素による「フローシステム」とは,垂直方向に閲覧するとき,ストレスなく見られるレイアウトをいいます.フローシステムの垂直配置(vertical rhythm)を整えることは難しいとされますが,ふくろうセレクタ(owl selector)を使って短いCSSで実現できるというお話です.
 ふくろうセレクタとは,

main * + * {
    ...
}

 のように,全称セレクタと隣接セレクタを用いた「* + *」の記述がふくろうの表情に似ているところから名付けられました.つまりは隣接する要素はなんでも,ふくろうセレクタで指定できるのです.

main * + * {
    margin-top: 1.5rem;
}

とすれば,mainタグ内のすべての要素の間で等間隔の空白が入ります.ここに,空白を入れたくない要素があれば,例えば,

main * + *:not(p){
    margin: 3rem 0;
}

 とすれば,p要素の上下に空白が入りません.逆に,空白を入れずに要素を固めたい場合は,

li, br {
    margin-top: 0;
}

 とすればよいのです.