自適應布局的九宮格

成果:https://euthpic.github.io/Squred-Paper/squared-paper.html

第一步:畫一個格子

一開始用的是P標簽,但想想其實什么標簽都可以,只是用它的background-color而已,于是按要求改用div。設置完顏色之后可以看到頁面沒變化,這是因為div里沒有content來撐開一塊區(qū)域,默認height是0的,要設置height和width才能看出來。再弄個邊角(border-radius)和邊框(margin),一個格子就畫好了。

第二步:畫第二個格子


哎,怎么第二個格子是在下面而不是上面的?查資料之后明白,在文檔的正常流里,div是占據一整行的(正常流實則是標簽在html中的排列方式——塊級元素獨占一行垂直排列,內聯(lián)元素在行內從左至右依次排列),所以它的下一個元素會被擠下去。改為float布局,樣式里添加{float:left},讓div浮起來,這樣它們就可以共行了。兩個div都要float,不然它們會重疊,因為浮動元素不占據正常流的空間。

第三步:畫第四個格子

這時候遇到的問題是:怎么讓格子換行呢?

如果繼續(xù)float它會繼續(xù)向右排列,不float就會重疊。OK,翻書時刻。書里介紹了一個clear屬性,如果你不希望元素的左邊出現浮動元素,就{clear:left}清除左邊的浮動元素,這樣元素就會被左邊的浮動元素擠到下面去了。

這樣,九個格子就畫完了。


第四步:自適應布局

嗯~ o(* ̄ ̄*)o? 之前接觸過一些響應式布局,是套上框架來實現的,原以為自適應也是這樣,可是這一次我實現過程中查資料沒發(fā)現一種解決方案建議用框架的,看來自適應是沒框架的,得一個個改。

CSS里常用的單位有px和em等,px就是常說的像素,em是基于瀏覽器小寫x的font size來計算的一個單位長度,它們都是絕對單位,不適合自適應布局。

第一反應是將px改成%,這樣它就可以隨著窗口大小而變化了,可是問題又來了:原先的正方體會變形呀。。

如何讓height等于width呢?再深一層的思考:CSS支持除%之外復雜的計算屬性嗎?

做個實驗:

可以看到在chrome里面就算10*10這樣的簡單計算CSS都不支持。

不過意外發(fā)現了這個:calc(),實驗發(fā)現chrome是支持的,用來做一些簡單計算,可是還是不知道如何獲取某一個對象的值。

第二反應是用js獲取width的值再傳給height,可是先不考慮能否實現,在CSS的任務中不應該考慮用JS。

最后是發(fā)現了兩個單位。

vw:相對于視口的寬度。視口被均分為100單位的vw

vh:相對于視口的高度。視口被均分為100單位的vh? ? (v for viewport)

與要求比較之后選用了vw,最終解決了自適應的問題。

查資料的過程中發(fā)現了一種有趣的方案:

為什么這樣也能自適應呢?width繼承父元素的寬度可以理解,可是padding-bottom不是繼承高度嗎(我原先的理解,top-bottom表示上下)?這樣還能保持正方形嗎?答案不是。


可以看到padding-bottom的%是繼承自父元素的寬度的,而且padding的其他三個位置也是這樣。

width和padding-bottom都繼承自同一對象,那么正方形打野? 啊呸,正方形格子就可以自適應了。

看到深度思考里有提到ide和文本編輯器的爭議。根據我一段時間來的體會,我覺得工具本身對于初學者來說并沒那么重要,初學者應該關注的是代碼本身。而且對于一個選擇困難癥患者來說,要避免讓各種選擇弄得自己很頭疼,你要這樣想:有人用,就說明它可以用。那么你就用,等哪天你用了一段時間,對它了解更深了,你覺得它不好用,那你就換別的,這時你的選擇是更加堅決的,因為你了解更多了。


最后,那么,今天就爭取搭建一個服務器吧。昨天用阿里云無腦搭了一個wordpress,今天要搭一個個人的網站用來部署github的項目。不過我看到一堆新的名詞真的很頭疼,什么SVN,什么什么咯。哎哎

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,121評論 1 92
  • 使用純 CSS 實現 500px 照片列表布局 文章很長,因為介紹了如何一步一步進化到最后接近完美的效果的,不想讀...
    HZ充電大喵閱讀 2,779評論 0 4
  • 真想變小呀 巨人站在鏡子前面 舉起自己的大手 又抬起大腳 很大很大很大的大腳 變小了多好 唱歌跑調不會被人笑 走路...
    燕子飛童詩童話閱讀 269評論 0 1
  • 你常把“夢想”掛在嘴邊,卻敗在不愿改變的懶惰上;你向往更好的生活,卻不愿跳出舒適區(qū)去爭取。要知道,每個夢想的背后都...
    墨荷雨煙閱讀 135評論 0 0
  • 文|域往 當我交上農藥學概論試卷的時候,我的心情是這樣的:今天是個好日子,心想的事兒都能成~ 交卷之前心情陰雨霏霏...
    域往閱讀 819評論 21 11

友情鏈接更多精彩內容