Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
過前端開發(fā)的朋友都知道,要使文字在一個(gè)div容器垂直居中顯示是很簡(jiǎn)單的事,但是如果是要讓一張圖片在div容器中垂直顯示那就有點(diǎn)傷腦筋了,因?yàn)閳D片是個(gè)置換元素,有些特殊的特性,對(duì)于前端開發(fā)的大牛來說還好,解決方法有很多,比如什么利用js啊之類的,但是這些對(duì)于初學(xué)者來說就有些難度了,今天小編就把自己平時(shí)在項(xiàng)目中用的方法分享給大家,給大家一個(gè)參考。
其實(shí)小編用的方法也不是什么很高端的技術(shù),算是最low的方法吧,但是很實(shí)用,能兼容各種瀏覽器,為了演示,小編直接從某寶商家店鋪里拿了一張商品圖來做演示,因?yàn)樯唐穲D都是高清無碼的,且還很大,所以我們?cè)贑SS中把圖片的高度設(shè)置為200px,div容器的高度為300px,完整的代碼如下:
最終的運(yùn)行效果如下圖:
可以看到,這個(gè)圖片在div中水平、垂直都是在正中間,是不是很完美。這個(gè)原理也很簡(jiǎn)單,就是在div容器中加了個(gè) <i> 標(biāo)簽并把它的 display 屬性設(shè)置為 inline-block(行內(nèi)塊元素),讓它去撐開div容器的高度,再把圖片的 vertical-align 屬性設(shè)置為 middle 就可以垂直居中了,當(dāng)然這只是個(gè)演示,大家在實(shí)際的項(xiàng)目中可以利用 max-width、min-width、max-height、min-height 等屬性讓圖片根據(jù)需要自適應(yīng),以達(dá)到想要的效果。
當(dāng)然解決方法還有很多種,具體用什么方法需根據(jù)自身頁面布局去權(quán)衡,總之沒有最好的,只有最適合的,如果你有更好的方法也可以告訴小編哦,一起交流方法,共同進(jìn)步。
通常首選方法是使用flexbox居中內(nèi)容。只需三行代碼即可:display:flex,然后使用 align-items:center 和 justify-content:center 將子元素垂直和水平居中。
如下代碼:
html:
<div class="flexbox-centering">
<div>Centered content.</div>
</div>
css:
.flexbox-centering {
display: flex;
justify-content: center;
align-items: center;
height: 100px;
}
使用grid(網(wǎng)格)與flexbox非常相似,也是一種常見的技術(shù),尤其是布局中已經(jīng)使用網(wǎng)格的情況下。與前一種flexbox技術(shù)的唯一區(qū)別是它顯示為柵格。
如下代碼:
html:
<div class="grid-centering">
<div class="child">Centered content.</div>
</div>
css:
上效果圖:
這是一個(gè)用ext3.2.0、js、html、css寫的一個(gè)還算好看的登錄界面。
源代碼已上傳,下載地址請(qǐng)點(diǎn)擊:點(diǎn)擊打開鏈接
其主要難點(diǎn)在如何使用extjs來畫一個(gè)界面,接下來我們就主要看一下其中的html和js吧:
這里面主要是導(dǎo)入頁面所需的js和css文件,當(dāng)然還有一個(gè)亮點(diǎn)就是body標(biāo)簽上的 onkeydown事件屬性,主要用于監(jiān)聽鍵盤實(shí)現(xiàn)我們js中的enter鍵提交功能。然后看一下extjs的語言風(fēng)格吧:
這里要說的是:1、注意給屬性加標(biāo)記,能用id就用id,cls只是一個(gè)封裝過的class,和原生的class還是有區(qū)別的,比如給一個(gè)cls元素的height、padding定義樣式并不起作用。詳見:關(guān)于extjs中的cls ≠ class
2、在ext中建議用絕對(duì)定位,由于它底層是一個(gè)個(gè)的table、div塊,如果用相對(duì)定位的話偶爾是有偏差的,所以還是絕對(duì)定位方便直接啊。
3、window自帶居中效果,可以利用這一點(diǎn)讓元素在屏幕中居中。但是當(dāng)瀏覽器縮放的時(shí)候,這個(gè)window并不會(huì)動(dòng),每次都需要重新刷新一下才會(huì)改變一下。所以,在以上代碼的最后我們用給這個(gè)centerWindow添加了一個(gè)窗口自適應(yīng)居中的效果。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。