文字寄せ
左寄せ、右寄せ、中央、両端揃え
横方向の文字寄せのためのこんなクラス名を考えた。.text
クラスのサブクラスにしよう。設定はやはり_form-styles.scss
に。
align-l
, align-r
, align-c
, align-j
読みにくいけど、最初のはalign-エルの小文字
。
[scss]
.text {
&.align-l {
text-align: left;
}
&.align-r {
........
}
........
}
[markdown]
Text left
{:.text.align-l}
Text left
[html]
<p class="text align-l">Text left</p>
以下プレヴューのみ
[Text right]
[Text center]
[Text left]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text right]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text center]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text justify]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
margin
margin-auto, margin-Xpx
margin
で少し寄せることも考えてみる。.mgn
と略記する。ただl
とかr
とか他と被りそうなのでmgn-r
などハイフンで繋いだクラス名にしよう。ファイルは_block-styles.scss
という名前にする。
まず、auto
とpx
単位の寄せ。0
から100px
まで用意。これは周囲全体に影響。
.mgn {
&-auto { margin: auto; }
&-0 { margin: 0; }
@for $i from 1 through 100 {
&-#{$i}px { margin: #{$i}px; }
}
}
[.mgn-23px]
margin-left, margin-right
.mgn-l01
から.mgn-l09
で0.1rem
〜0.9rem
左マージン。
.mgn-l1
で左マージン 1.0rem 寄り(エル1)。数字だけ変えて 10.0rem までの対応。
一応念の為.mgn-l0
などのゼロマージンも作る(部分的なリセット用)。
同様に.mgn-r1
など右マージン用も作る。
[Text margin left 1.0rem, align justify]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text margin left 2.0rem, align justify]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text margin left 3.0rem, align justify]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text margin right 1.0rem, align right]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text margin right 2.0rem, align right]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
[Text margin right 3.0rem, align right]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
margin-x, margin-y
左右の組合せ。.mgn-l3 .mgn-r3
でもいいが、X方向という意味で.mgn-x30px
で左右 margin 30px。同様の縦 Y方向もある。各1〜100pxまで対応。
[Text margin x30px, align justify]
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan, metus ultrices eleifend gravida, nulla nunc varius lectus, nec rutrum justo nibh eu lectus. Ut vulputate semper dui. Fusce erat odio, sollicitudin vel erat vel, interdum mattis neque.
px単位の左右 margin
これ以外に.mgn-lXpx
,.mgn-rXpx
で左右マージンを px単位で指定できるようにした。詳細は省く。
[.mgn-l21px, .mgn-r13px]
margin-top, margin-bottom
段落の改行ほどは要らないがちょっとだけ上下を空けたいときがある。
- margin-top 1〜50px
.mgn-t1px
,.mgn-t2px
,.mgn-t3px
,.mgn-t4px
….- margin-bottom 1〜50px
.mgn-b1px
,.mgn-b2px
,.mgn-b3px
,.mgn-b4px
….
もちろん.mgn-t0
と.mgn-b0
もある。
□ 上に.mgn-b0、下に.mgn-t0
文章どうしの空き
文章どうしの空き
□ 2行目にmargin-top:10px
[markdown]
文章どうしの空き
文章どうしの空き
{: .mgn-t10px}
文章どうしの空き
文章どうしの空き
□ 2行目にmargin-top:20px
文章どうしの空き
文章どうしの空き
□ 2行目にmargin-top:30px
文章どうしの空き
文章どうしの空き
見た目わかりにくいけどこんどはmargin-bottom:xxx
□ 1行目にmargin-bottom:10px
文章どうしの空き
文章どうしの空き
□ 1行目にmargin-bottom:20px
文章どうしの空き
文章どうしの空き
□ 1行目にmargin-bottom:30px
文章どうしの空き
文章どうしの空き
CSS変数渡し
これ以外の細かいバリエーションは作らずに、CSS変数渡しで対応する。
.mgn { margin: var(--mgn, 0); }
[Margin 3px 1.5rem 5px 2.3rem]
{:.text.align-c .mgn}
{: style="--mgn: 3px 1.5rem 5px 2.3rem"}
[Margin 3px 1.5rem 5px 2.3rem]
padding
padding
も同様に作る。ただし単位はpx
のみ。クラス名は.pad-xx
。
pad-0
で周囲のpaddingが0,pad-t0
でトップのpaddingが0、同じくpad-r0
,pad-b0
,pad-l0
pad-12px
などで周囲のpadding対応。pad-t5px
などで上下左右別。各1〜50px まで対応。
[外側のBOXに{:.pad-22px}]
[外側のBOXに{:.pad-t10px.pad-b15px.pad-l34px.pad-r43px}]
また paddingAxB
の形でpadding: Apx Bpx
の形。A-B各 0〜30px で5px単位。
[外側のBOXに{:.pad-10x30}]
[外側のBOXに{:.pad-15x25}]
[外側のBOXに{:.pad-20x0}]
だいたい想像つくと思うので細かい説明は省略。
width と height
width と height も省略形で指定。wd-x
でwidth: x%
、ht-Xpx
でheight: Xpx
。
width は 1〜100%、height は 1〜500px まで対応。wd-auto
,ht-auto
,
width: fit-content
を表す.wd-fit
もある。
[外側のBOXに{: .wd-62 .ht-125px}]
これも細かい説明は省略。