1. 程式人生 > 其它 >Hanoi(漢諾)塔問題

Hanoi(漢諾)塔問題

技術標籤:csshtml

1 rem與em

rem單位:指的是html元素的font-size的倍數。和em關注父元素不同,rem只關注根元素(html)
<html>---font-size: 20px;	這個就是基準字號
<body>---font-size: 2rem;	計算後是40px,不看父親只看根
	<div>----font-size: 2rem;	計算後是40px,不看父親只看根
	<p>----font-size: 2rem;	計算後是40px,不看父親只看根
	<span>----font-size: 2rem;	計算後是40
px,不看父親只看根 em是相對於父元素的字號

2 rem佈局

rem佈局的本質是等比縮放,一般是基於視口寬度
rem佈局原理:假設我們將螢幕寬度平均分成100份,每一份的寬度用x表示,x=螢幕寬度/100,如果將x作為單位,x前面的數值就代表螢幕寬度的百分比p{width:50x}/*螢幕寬度的50%*/
如果子元素設定rem單位的屬性,通過更改html元素的字型大小,就可以讓子元素實際大小發生改變。
如果讓html元素字型的大小,恆等於螢幕寬度的1/100,那1rem和1x就等價了
css提供了vw和vh,可以表示x單位:1vw=1x
	vw--視口寬度的1/100		vh--視口寬度的1/100

3 寬度標準化

根據效果圖的寬度計算rem太煩瑣了,如果1
rem與1px恆等就好了。 工作中,移動端設計師通常為我們提供寬度為320px的設計圖。 為了讓1rem代表1px,我們常常將html根元素的字號定義為100/320vw 即:html{ font-size: 0.3125vw; } 此時在標準設計圖中,1rem=1px

實現

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"
> <title>Document</title> <style> * { margin: 0; padding: 0; list-style: none; } html { // 工作中,移動端設計師通常為我們提供寬度為320px的設計圖。其它大小的設計圖也可以更改 //為了讓1rem代表1px,我們常常將html根元素的字號定義為100/320vw /* 讓1rem=1px 以320px寬度為基準 */ font-size: 0.3125vw; } /* 容器 */ .container { width: 310rem; margin: 0 auto; } .list { margin-right: -5rem; } .box { width: 100rem; height: 50rem; background-color: pink; margin-right: 5rem; margin-bottom: 5rem; float: left; } .big { height: 105rem; margin-bottom: 0; } </style> </head> <body> <div class="container"> <div class="list"> <div class="box big">111</div> <div class="box">222</div> <div class="box">333</div> <div class="box">444</div> <div class="box">555</div> </div> </div> </body> </html>