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