[BootStrap] 將<p>或<ul>自動延展

SC Tuan
3 min readJun 26, 2019

--

最近有頁面是像這樣的:

左右並排的圖和字,兩邊同高,需要讓文字的行與行之間延展讓兩邊看起來幾乎一樣高

如果用 CSS 去調整行寬也不是不行,但並不 responsive ,這時如果你有用 bootstrap 就可以很容易地達成。

Flex

首先我們的段落大概會像這樣:

<div class="row">
<div class="col-md-4"> // 圖片
<img src="...">
</div>
<div class="col-md-8"> // 文字段落
<p>...</p>
<p>...</p>
<p>...</p>
</div>
</div>

可以看得出來,左邊是圖,右邊是字。圖會因為 col-md-4 而有一個固定的高度,那我們希望右邊的字也能自動的變動。

由於我們希望文字是橫向書寫,所以先寫成這樣:

<div class="col-md-8 d-flex flex-column"> // 文字段落

這樣他就會採用 flex 並且是垂直排列了。

Justify Content

然後是調整文字內容,我們要的是文字段落上下展開到與圖片同高,但又不要貼住上下邊。

<div class="col-md-8 d-flex flex-column justify-content-around"> // 文字段落

這樣文字段落就會很好的展開了。

Unordered List

我們的 unordered list 是長這樣:

<div class="row">
<div class="col-md-6"> // 圖片
<img src="...">
</div>
<div class="col-md-6"> // 文字段落
<ul> // unordered list
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
</div>
</div>

一開始也是一樣的:

<div class="col-md-6 d-flex flex-column justify-content-around"> // 文字段落

這樣才能把裡面的 ul 給上下展開。

因為需要把 ulflex-fill 給展開,所以又需要使用 d-flex

<ul class="d-flex flex-column flex-fill"> // unordered list

但這時 li 們並不會彼此拉開,所以要用 my-auto 去拉開他們:

<li class="my-auto">...</li>
<li class="my-auto">...</li>
<li class="my-auto">...</li>

這樣就完成了。

參考

--

--

SC Tuan
SC Tuan

Written by SC Tuan

iOS developer(Obj-C & Swift) / Web developer (Java, Javascript, CSS,HTML)

No responses yet