純css實現(xiàn)高度與寬度成比例的效果(轉(zhuǎn))

這幾天做一個列表,要求是在每一個item中的圖片都能按照規(guī)定的比例顯示.對于image標(biāo)簽來說,如果是自然的顯示原圖片的比例的話,
下面的css代碼可以滿足:( 在booststrap中,也是下面的寫法)

.img{
    display: block;
    max-width: 100%;
    height: auto;
}

前面的話

描述

但是現(xiàn)在要求不一樣了,比如我要求每個圖片必須按照比如4:3的比例顯示出來,不用在乎圖片是否被拉伸變形.這樣的目的是實現(xiàn)圖片的響應(yīng)不同設(shè)備,保證圖片等比例.如果僅僅通過width和height屬性是不到的,即便height設(shè)置成百分比.

可以設(shè)置的height屬性的元素的高度基于包含它的塊級對象的百分比高度。

當(dāng)然,采用js的辦法肯定是可以解決的,但是用了js后,總是有一個被強(qiáng)X的感覺,((⊙o⊙)…).不想用js怎么辦.

解決

經(jīng)過一番谷歌之后,還是找到了我想要的答案,參考的文章在最后.人家說的比我是詳細(xì),多多向人家學(xué)習(xí)~~

文中作者采用的方法是利用了padding-top/padding-bottom屬性,根據(jù)他的解釋,`padding'如果是百分比的話,那這個百分比是相對于其父元素的寬度而言的

而作者使用到了另一個屬性overflow,另外,在計算 Overflow 時,是將元素的內(nèi)容區(qū)域(即 width / height 對應(yīng)的區(qū)域)和 Padding 區(qū)域一起計算的。換句話說,即使將元素的 overflow 設(shè)置為 hidden,“溢出”到 Padding 區(qū)域的內(nèi)容也會照常顯示。

這樣就能使用padding-top/padding-bottom來代替height屬性了.比如你想要讓元素的按在4:3的比例顯示,width設(shè)置成了30%,那么padding-top/padding-bottom只需要設(shè)置成為
40%就可以了.同時把height設(shè)為0.css代碼如下:

.img-3-4 {
  margin: 10px;
  padding-bottom: 30%;
  width: 40%;
  height: 0;
  background-color: #dbe0e4;
}

栗子如下:
點擊這里查看效果

我們發(fā)現(xiàn)不論背景圖片或者顏色是什么樣,我這個元素始終按照4:3的比例顯示

小結(jié)

  • 到這里可以發(fā)現(xiàn),要講的不僅僅是圖片img的怎么去按照固定的比例設(shè)置了,而是利用padding將元素設(shè)置為固定比例,核心就是利用padding屬性的值是百分比的話,是以父級元素的width走的.
  • padding真心十分好用,查閱一些資料,都說比margin的問題要少.
  • 今日頭條的wap首頁的列表也采用的這種方法.點擊查看 今日頭條的wap站
  • 基礎(chǔ)知識十分重要啊!!!基礎(chǔ)好+做的多,才會有思路.

參考

純CSS 實現(xiàn)高度與寬度成比例的效果

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

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,153評論 1 92
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 2,119評論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,437評論 0 11
  • 頁面中有若干個 item,其中每個 item 都向左浮動,并包含在自適應(yīng)瀏覽器窗口寬度的父元素中。 item 元素...
    閑淡拾憶閱讀 930評論 0 0
  • 使用純 CSS 實現(xiàn) 500px 照片列表布局 文章很長,因為介紹了如何一步一步進(jìn)化到最后接近完美的效果的,不想讀...
    HZ充電大喵閱讀 2,781評論 0 4

友情鏈接更多精彩內(nèi)容