實(shí)習(xí)第三十四天(純Css實(shí)現(xiàn)Div高度根據(jù)自適應(yīng)寬度(百分比)調(diào)整)

在響應(yīng)式布局要求下,很多能自動(dòng)調(diào)整尺寸的元素能夠做到高寬自適應(yīng),如img戚宦,通過{width:50%;height:auto;}實(shí)現(xiàn)圖片高度跟隨寬度比例調(diào)整。

然而锈嫩,用的最多的Div卻不能做到自動(dòng)調(diào)整(只能從父級(jí)繼承受楼,或者自行指定px,要么給百分比祠挫,但是這個(gè)百分比是根據(jù)父級(jí)的高度來(lái)計(jì)算的那槽,不是根據(jù)元素自身的寬度,那么就做不到Div的寬高達(dá)成一定的比例)等舔。

要實(shí)現(xiàn)這種功能(div的高度:寬度=1:1)骚灸,有以下幾種處理方式

  • 1,直接指定div的寬高+zoom來(lái)實(shí)現(xiàn)自適應(yīng)

div{width:50px;heigth:50px;zoom:1.1;}

這樣能達(dá)到初步的等寬高div慌植,但是局限性太大

  • 2甚牲,通過js動(dòng)態(tài)判斷div的寬度來(lái)設(shè)置高度
div{width:50%;}

window.onresize = function(){div.height(div.width);}

也能實(shí)現(xiàn)等寬高div,但是總覺得有點(diǎn)別扭

  • 3蝶柿,通過寬高單位來(lái)設(shè)置
div{width:20vw;height:20vw;/*20vw為屏幕可視寬的20%*/}

但是很多設(shè)備不支持這個(gè)屬性丈钙,兼容性太差

  • 4,通過float來(lái)設(shè)置
#aa{background:#aaa;;}
#bb{background:#ddd;;float:left} 
#cc{background:#eee;;float:right}

<div id="aa">父div 
  <div id="bb">子div</div> 
  <div id="cc">子div</div> 
  <div style="clear:both">就是這個(gè)用于clear錯(cuò)誤的</div>
</div>

能夠讓父級(jí)元素aa根據(jù)子元素的高度自動(dòng)改變高度(在子元素里放置自適應(yīng)元素)來(lái)調(diào)整高寬比一致交汤,然而太麻煩

  • 5雏赦,終于到最終大殺器了劫笙,通過padding來(lái)實(shí)現(xiàn)此功能

通過以上幾個(gè)方案的實(shí)驗(yàn),發(fā)現(xiàn)寬度的自適應(yīng)是根據(jù)viewport的width來(lái)調(diào)整的星岗,比如{width:50%}就是瀏覽器可視區(qū)域的50%填大,resize之后也會(huì)自動(dòng)調(diào)整。

而height指定百分比后俏橘,他會(huì)自行找到viewport的height來(lái)調(diào)整允华,跟width一毛錢關(guān)系沒有,自然兩者不能達(dá)到比例關(guān)系了寥掐。通過這個(gè)思路靴寂,要找到一個(gè)能跟viewport的width扯上裙帶關(guān)系的屬性,就能解決這個(gè)問題了召耘。

這個(gè)屬性就是padding百炬,padding是根據(jù)viewport的width來(lái)調(diào)整的,巧就巧在padding-top和padding-bottom也是根據(jù)viewport的width來(lái)計(jì)算的污它,那么通過設(shè)置這個(gè)屬性就能跟width達(dá)成某種比例關(guān)系了收壕,

我們首先指定元素的width為父級(jí)元素的50%(父級(jí)元素為任意有高寬的元素,不能指定特定父級(jí)元素轨蛤,否則影響此方案的通用性)

.father{width:100px;height:100px;background:#222}

.element{width:50%;background:#eee;}

這個(gè)時(shí)候我們?cè)僭O(shè)置element的height為0,padding-bottom:50%;

.element{width:50%;height:0;padding-bottom:50%;background:#eee;}

element就變成了一個(gè)寬度50%虫埂,高度為0(但是他有50%width的padding-bottom)的正方形了祥山,效果如下圖灰白色的div

這個(gè)時(shí)候可能有人要問了,這個(gè)div的高度為0掉伏,那如果我要在element里放置元素呢缝呕,那豈不是overflow了,這里就要提到overflow屬性了斧散,它的計(jì)算是包括div的content和padding的供常,也就是說(shuō),

原來(lái)你的div可能是個(gè){width:50px;height:50px;padding:0}的div鸡捐,現(xiàn)在變成{width:50px;height:0;padding-bottom:50px;}的div了栈暇,尺寸還是一樣的,通過指定這個(gè)div的子元素的定位箍镜,一樣可以正常顯示

這樣就可以通過設(shè)定父級(jí)元素father源祈、我們需要的元素element、子級(jí)元素datail來(lái)實(shí)現(xiàn)任意情況下該需求(div寬高定比例)色迂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末香缺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歇僧,更是在濱河造成了極大的恐慌图张,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,185評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異祸轮,居然都是意外死亡兽埃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門倔撞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讲仰,“玉大人,你說(shuō)我怎么就攤上這事痪蝇”啥福” “怎么了?”我有些...
    開封第一講書人閱讀 157,684評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵躏啰,是天一觀的道長(zhǎng)趁矾。 經(jīng)常有香客問我,道長(zhǎng)给僵,這世上最難降的妖魔是什么毫捣? 我笑而不...
    開封第一講書人閱讀 56,564評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮帝际,結(jié)果婚禮上蔓同,老公的妹妹穿的比我還像新娘。我一直安慰自己蹲诀,他們只是感情好斑粱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,681評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脯爪,像睡著了一般则北。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痕慢,一...
    開封第一講書人閱讀 49,874評(píng)論 1 290
  • 那天尚揣,我揣著相機(jī)與錄音,去河邊找鬼掖举。 笑死快骗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塔次。 我是一名探鬼主播滨巴,決...
    沈念sama閱讀 39,025評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俺叭!你這毒婦竟也來(lái)了恭取?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,761評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤熄守,失蹤者是張志新(化名)和其女友劉穎蜈垮,沒想到半個(gè)月后耗跛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,217評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡攒发,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,545評(píng)論 2 327
  • 正文 我和宋清朗相戀三年调塌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惠猿。...
    茶點(diǎn)故事閱讀 38,694評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羔砾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出偶妖,到底是詐尸還是另有隱情姜凄,我是刑警寧澤,帶...
    沈念sama閱讀 34,351評(píng)論 4 332
  • 正文 年R本政府宣布趾访,位于F島的核電站态秧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扼鞋。R本人自食惡果不足惜申鱼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,988評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望云头。 院中可真熱鬧捐友,春花似錦、人聲如沸溃槐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)竿痰。三九已至,卻和暖如春砌溺,著一層夾襖步出監(jiān)牢的瞬間影涉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工规伐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蟹倾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,427評(píng)論 2 360
  • 正文 我出身青樓猖闪,卻偏偏與公主長(zhǎng)得像鲜棠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子培慌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,580評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容