問(wèn)題1. 對(duì)下圖這個(gè)布局,先說(shuō)需求,圖片是用戶上傳,需要正方形展示,面對(duì)用戶上傳圖片的比例不定,請(qǐng)問(wèn)會(huì)怎樣讓它完美展現(xiàn)在自己的盒子里呢?
問(wèn)題2. 只用css實(shí)現(xiàn)這個(gè)布局, 三張圖片寬度平分寬度,間距保持10px不變,用flex?百分比?vw? 我試過(guò)flex和百分比加calc()和vw 圖片高度和寬度怎樣保持一致呢?
我想了解一下大家的經(jīng)驗(yàn)和方式 謝謝大家
看你的問(wèn)題應(yīng)該主要是卡在了這個(gè)圖片寬高相等上邊了,這里有一個(gè)解決辦法,使用padding-bottom/top來(lái)獲取width。
用::after處理高度,撐開(kāi)容器,::before渲染實(shí)際內(nèi)容
同時(shí),外層容器使用margin: -$gap$ /2來(lái)實(shí)現(xiàn)移除四周的空隙
Online Demo: https://codepen.io/Jiasm/pen/...
這里用的是background-color模擬,你要用圖片的話,直接寫(xiě)成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;
}問(wèn)題1:你目前的情況是高度定,寬度不定,想要保證按原圖的比例展現(xiàn)圖片,使用js獲取圖片的原始寬、高,然后按原始寬高計(jì)算要展示的寬度,如下:
var img = new Image()
img.src = "url.png";
var naturalWidth = img.naturalWidth,
naturalHeight= img.naturalHeight;
// 假如要展示的圖片寬度是 showHeight,則要展示的圖片寬度如下
var showWidth = (showHeight / naturalHeight)*showHeight
問(wèn)題2:在無(wú)法保證用戶上傳的圖片寬高比一致的情況,只能保證展示的是頂寬或者定高,這種布局建議使用flex
問(wèn)題1:圖片用background,background-size:cover,如果涉及懶加載或者不能用background,不太好搞,要去比較寬高或者剪裁了,一般都是后端剪裁好尺寸傳回來(lái)。
如果同意展示圖片全部,上下或左右有空白的話也可以像下面這樣。
.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%);
}
問(wèn)題2:列表項(xiàng)容器padding:5px;box-sizing:border-box;display:inline-block,列表容器給出兩邊的留白,設(shè)置font-size:0;防止項(xiàng)之間的間隙,都不需要用flex的。
//css
.box {
width: 500px;
}
.img-box {
width: 33.33%;
height: 0;
padding-bottom: 33.3%;
box-sizing: border-box;
float: left;
border-right: 10px solid #ffffff;
margin-bottom: 10px;
background: #000 no-repeat center center;
background-size: contain;
}
.img-box:nth-child(3n) {
border-right: none;
}
//html
<div class="box">
<div class="img-box" style="background-image: url(http://pic1.win4000.com/wallpaper/5/532931489604e.jpg)"></div>
<div class="img-box" style="background-image: url(http://img.zcool.cn/community/0108185543f09e0000019ae906d8f6.jpg@1280w_1l_2o_100sh.jpg)"></div>
<div class="img-box" style="background-image: url(http://img.zcool.cn/community/01626057ff29a1a84a0d304f3b5991.jpg@1280w_1l_2o_100sh.jpg)"></div>
<div class="img-box" style="background-image: url(http://pic1.win4000.com/wallpaper/5/532931489604e.jpg)"></div>
<div class="img-box" style="background-image: url(http://img.zcool.cn/community/0108185543f09e0000019ae906d8f6.jpg@1280w_1l_2o_100sh.jpg)"></div>
<div class="img-box" style="background-image: url(http://img.zcool.cn/community/01626057ff29a1a84a0d304f3b5991.jpg@1280w_1l_2o_100sh.jpg)"></div>
</div>北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。