第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個圖片布局加自適應(yīng)的請教探討

一個圖片布局加自適應(yīng)的請教探討

瀟湘沐 2019-03-23 19:15:18
問題1. 對下圖這個布局,先說需求,圖片是用戶上傳,需要正方形展示,面對用戶上傳圖片的比例不定,請問會怎樣讓它完美展現(xiàn)在自己的盒子里呢?問題2. 只用css實現(xiàn)這個布局, 三張圖片寬度平分寬度,間距保持10px不變,用flex?百分比?vw? 我試過flex和百分比加calc()和vw 圖片高度和寬度怎樣保持一致呢?我想了解一下大家的經(jīng)驗和方式 謝謝大家
查看完整描述

5 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊

  1. 傳統(tǒng)做法是寫一個div,然后把圖片搞成這個div的背景圖,加個定位居中和cover做填充;或者你如果只用img的話也可以試試object-fit屬性,也是寬高取值直接cover就好。

  2. 布局可以用inline-block或者flex應(yīng)該都可以,如果間距都知道的話直接calc配合vw/vmin應(yīng)該就行了,寬高都用一樣的就行了。


查看完整回答
反對 回復(fù) 2019-03-30
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

問題1:圖片用background,background-size:cover,如果涉及懶加載或者不能用background,不太好搞,要去比較寬高或者剪裁了,一般都是后端剪裁好尺寸傳回來。


如果同意展示圖片全部,上下或左右有空白的話也可以像下面這樣。


.parent{

    width:200px;

    height:200px;

    position:relative;

}

.child{

    max-width:100%;

    max-height:100%;

    width:auto;

    height:auto;

    position:absolute;

    top:50%;

    left:50%;

    -webkit-transform:translate(-50%,-50%);

    transform:translate(-50%,-50%);

}

https://img1.sycdn.imooc.com//5c9f259c000130fa03850258.jpg

問題2:列表項容器padding:5px;box-sizing:border-box;display:inline-block,列表容器給出兩邊的留白,設(shè)置font-size:0;防止項之間的間隙,都不需要用flex的。

查看完整回答
反對 回復(fù) 2019-03-30
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊

問題1:你目前的情況是高度定,寬度不定,想要保證按原圖的比例展現(xiàn)圖片,使用js獲取圖片的原始寬、高,然后按原始寬高計算要展示的寬度,如下:
var img = new Image()
img.src = "url.png";
var naturalWidth = img.naturalWidth,

naturalHeight= img.naturalHeight;

// 假如要展示的圖片寬度是 showHeight,則要展示的圖片寬度如下
var showWidth = (showHeight / naturalHeight)*showHeight
問題2:在無法保證用戶上傳的圖片寬高比一致的情況,只能保證展示的是頂寬或者定高,這種布局建議使用flex


查看完整回答
反對 回復(fù) 2019-03-30
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊

看你的問題應(yīng)該主要是卡在了這個圖片寬高相等上邊了,這里有一個解決辦法,使用padding-bottom/top來獲取width。
::after處理高度,撐開容器,::before渲染實際內(nèi)容

同時,外層容器使用margin: -$gap$ /2來實現(xiàn)移除四周的空隙

Online Demo: https://codepen.io/Jiasm/pen/...
這里用的是background-color模擬,你要用圖片的話,直接寫成background-url+background-size: 100% 100%即可

.wrap {

    border: 1px solid blue;

    width: 400px;

}


.border {

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    margin: -5px; /* fill panel */

}


.item {

    width: 33.33%;

    position: relative;

}


.item::before {

    display: block;

    content: '';

    width: 100%;

    padding-top: 100%;

}


.item::after {

    content: '';

    position: absolute;

    top: 5px;

    left: 5px;

    right: 5px;

    bottom: 5px;

    background: red;

}


查看完整回答
反對 回復(fù) 2019-03-30
  • 5 回答
  • 0 關(guān)注
  • 410 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號