切版有許多眉角需要注意,來探討那些經常導致切版結果與設計稿產生落差的原因。
🔍 文字所佔據的高度不是由font-size
決定,而是line-hight
。
一開始練習切版時,都想著設定好字的尺寸和字重就 ok 了吧?殊不知這是造成切出來的網頁與設計稿尺寸落差很大的原因。
🔍 圖片底下預設會出現 3px 的空白,需要額外處理。
因為放置圖片的 img 標籤預設帶有的 CSS 樣式 display:inline-block
,行內元素都會帶有vertical-align:baseline
,因此造就出下方 3px 的空白,下面就看看有哪些解決方式。
middle
、top
、bottom
等等 → 推薦做法block
→ 但會造成換行font-size
設為 0,因為 vertical-align 屬性是根據文字基線來定位 → 但會造成父層有文字時會消失🔍 網頁裡的 border 會佔據面積,在 UI 設計軟體裡線段卻不會有面積,因此造成了誤差
box-shadow
屬性做出邊線效果 → 不推薦會發現網頁有些區塊有置中,有些會滿版,好管理的做法是新增一個定寬容器,並在置中區塊使用該容器;滿版區塊則另外寫,並在內層放入定寬容器。
<!--置中版面-->
<div class="profile container">
<h2>這是一個標題<h2>
<p>一段文字</p>
</div>
<!--背景滿版+置中版面-->
<footer>
<div class="container">
<h2>這是一個標題<h2>
<p>一段文字</p>
</div>
</footer>
.container{
margin:0 auto;
width:1200px;
}
🔍 瀏覽器在各個 HTML 標籤都會帶有預設樣式,包括 margin、padding 這些會佔據面積的屬性。
幸好現在有兩個主流的 CSS Reset 可以幫忙解決這個問題:
ul
、ol
列表標籤🔍 預設的 box-model 除了元素本身的寬度、高度,border、padding 都會向外推,但不計入 margin。需要注意 margin 雖然沒有算入 box-model,在網頁上仍然會佔據面積。
box-sizing:border-box
這時元素本身的寬度、高度就會包含 border 和 padding (不會向外推),排版時可省去計算的麻煩:
*, *::before, *::after {
box-sizing: border-box;
}
今天先分享這幾點,之後會再做補充,下次切版時可以留意看看哦~