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 果贷一区二区三区在线,99热国产免费,天天综合网在线

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          實現div水平垂直居中的7種方式

          前端面試中,CSS相關的問題一般不會問的太多,但是有一個問題經常被選為面試題。那就是:div 水平垂直居中你有哪些辦法?

          這道題可以考察候選人對CSS布局方式的理解,而且非常貼近日常工作,比較適合作為面試題。今天我就幫大家梳理一下CSS實現div水平垂直居中的方法,建議收藏。


          為了演示,首先創建兩個嵌套的 div,然后設置一下大小和背景顏色這樣比較容易看出效果。代碼如下:

          // html
          <div class="outer outer-box">
            <div class="inner inner-box"></div>
          </div>
          
          // css
          <style>
          .outer {
            height: 100px;
            width: 100px;
            background-color: royalblue;
          }
          .inner {
            height: 50px;
            width: 50px;
            background-color: red;
          }
          <style>

          設置完的效果就是這樣,然后我們需要把內部的div 水平垂直居中。準備就緒,正式開始。我們分別使用 Flex 布局,Position布局, Grid布局三種方式。


          flex布局

          Flex 是Flexible Box的縮寫,意為”彈性布局”。Flexible Box 模型是一種一維的布局模型,一次只能處理一個維度上的布局。flex布局有兩根軸線,主軸和交叉軸。flex就是根據這兩個軸線布局元素。

          1.1 對外層div設置flex布局

          在外層 div 上設置 justify-content: center; align-items: center; 屬性, display 設置為 flex。即可實現水平垂直居中。

          1.2 內外div分別設置


          結果如下圖:

          Flex實現水平處置居中


          Position布局

          Position布局是傳統的布局方式,position屬性指定定位方式,利用CSS盒模型實現定位布局。

          2.1 內部div使用 margin 屬性居中

          2.2 內部 div 使用 transform 屬性居中

          實現結果如下:

          Grid布局

          Grid(網格)布局被稱為最強大的CSS布局方案,它可以將一個頁面劃分為幾個主要區域,以及定義這些區域的大小、位置、層次等關系。

          上面這種布局,Grid非常擅長。Flex布局屬于一維布局,Grid布局可以將容器分為行和列,對單元格進行布局,屬于二維布局。


          3.1 外層div使用 place-content 屬性

          3.2 外層div使用Grid布局

          3.3 內外div分別設置

          實現結果如下:

          總結

          常見的問題也不見得簡單,前端知識還是常學常新的。了解不同類型的CSS布局方式,對處理實際問題也很有幫助。

          以上就是CSS實現div水平垂直居中的7種方式。如果你有別的方式,歡迎和大家一起分析。

          如果覺得文章對您有幫助,歡迎收藏,轉發~

          端面試題中經常會出現這個問題,接下來,小郭就帶你揭秘幾種最常見的答案。

          關注我!了解更多前端干貨!

          先設定一個html結構以及css的基本樣式。

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>如何讓div實現水平居中</title>
          </head>
          <body>
              <div id="dad">
                  <div id="son"></div>
              </div>
          </body>
          </html>

          css樣式

          #dad{
              width: 400px;
              height: 200px;
              border: 3px solid green;
              margin: 30px auto;
          }
          #son{
              width: 100px;
              height: 100px;
              background: purple;
          }

          方法一:純margin

          /*css處添加下面代碼*/
          #son{
          		margin:0 auto;
          }

          方法二:position定位

          /*css處添加下面代碼*/
          #dad{
              position: relative;
          }
          #son{
              position: absolute;
          		left:50%;
              margin-left:-50px;
          }
          /*注意:margin-left是負值,是#son這個div寬的一半*/?

          方法三:flexbox

          /*css處添加下面代碼*/
          #dad{
              display: flex;
              justify-content: center;    
          }
          /*注意:彈性盒子的大部分屬性都是寫在父級上的*/

          以上三種是最常見的,下期我們來講講其他奇形怪狀的方法~

          關注我,帶你了解更多前端干貨!

          學前端,就選銳盈課堂!

          自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定制課程,今年年初我花了一個月整理了一份最適合2019年學習的web前端學習干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以關注我的頭條號并在后臺私信我:前端,即可免費獲取

          Html5-CSS之五大居中方式

          你是不是也對元素居中的知識點很是模糊?是不是苦于找不到一個總結的通俗易懂的說明?是不是自己懶得去總結?恭喜你,搜到這篇博客! 這是鄙人在前端的學習與實踐中總結出的元素的五大居中方式,黏貼了代碼并對代碼做了解釋,希望對迷茫的有所幫助!

          下面的居中示例中,統一使用了同一個div作為父元素和p作為子元素

          設置一個div,并且設置了div的寬高邊框,div里面設置一個塊元素p,設置了它的寬高和背景色

          css居中方式1

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>五大居中1</title>
          <style>
          *{margin:0;}
          div{width:200px;height:300px;border:2px solid #000;margin:200px auto;
          text-align:center;font-size:0;
          }
          div p{width:100px;height:100px;background:#666;
          display:inline-block;vertical-align:middle;
          }
          div:after{content:"";display:inline-block;height:100%;vertical-align:middle;}
          </style>
          </head>
          <body>
          <div>
          	<p></p>
          </div>
          </body>
          </html>
          

          這里利用了偽元素讓子元素p在div盒子里左右水平居中只需要在它的父元素div里加text-align:center;垂直方向居中需要在父元素后面加了一個偽元素,并使得樣式為inline-block;height:100%;就是和父元素一樣高,vertical-align:middle;垂直居中,也就是p元素相對與偽元素居中,由于偽元素和div一樣高,所以相當于p元素在div里垂直居中。

          css居中方式2

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>五大居中2</title>
          <style>
          *{margin:0;}
          div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}
          p{position:absolute;left:0;bottom:0;right:0;top:0;margin:auto;width:100px;height:100px;background:#f99;}
          </style>
          </head>
          <body>
          <div>
          	<p></p>
          </div>
          </body>
          </html>
          

          這里利用了定位居中

          子元素p設置position:absolute脫離文檔流,默認以html作為父元素,所以我們給父元素div設置position:relative;使得p以div為父元素做位置的變動,left:0;tight:0;top:0;bottom:0;(只有設置了定位的元素才可以使用這種方式來移動),最后margin:auto;就會水平和垂直都居中。

          css居中方式3

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>五大居中3</title>
          <style>
          *{margin:0;}
          div{display:flex;justify-content:center;align-items:center;width:300px;height:400px;border:1px solid #000;margin:100px auto;}
          p{width:100px;height:100px;background:#f99;}
          </style>
          </head>
          <body>
          <div>
          	<p></p>
          </div>
          </body>
          </html>
          

          這里利用了彈性盒居中

          父元素div設置成彈性盒樣式,justify-content:center;主軸居中

          align-items:center;垂直居中(而且這兩個只能設置在父元素上,彈性盒知識)

          css居中方式4

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>五大居中4</title>
          <style>
          *{margin:0;}
          div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}
          p{width:100px;height:100px;background:#f99;position:absolute;
          left:50%;top:50%;margin:-50px 0 0 -50px;}
          </style>
          </head>
          <body>
          <div>
          	<p></p>
          </div>
          </body>
          </html>
          

          利用定位線左上角居中,然后左移子元素寬度的一半,再上移子元素高度的一半。

          css居中方式5

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>五大居中5</title>
          <style>
          *{margin:0;}
          div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}
          p{position:absolute;width:100px;height:100px;background:#f99;left:50%;top:50%;
          	transform:translate(-50%,-50%);}
          </style>
          </head>
          <body>
          <div>
          	<p></p>
          </div>
          </body>
          </html>
          

          利用動畫移動屬性transform

          結語

          相信看了上面的有關Html5、css的元素五大居中方式,你們就可以解決自己的小問題了,但是也要養成一個總結的好習慣。好記性不如爛筆頭!以前留下來的話語總是有他的道理。Come on!

          原文鏈接:https://blog.csdn.net/qq_38110274/article/details/102756968


          主站蜘蛛池模板: 97久久精品午夜一区二区| 国产亚洲一区二区在线观看| 人妻无码视频一区二区三区| 日本一区二区三区免费高清| 国产熟女一区二区三区四区五区| 日本免费电影一区二区 | 高清一区二区三区| 天堂国产一区二区三区| 精品视频午夜一区二区| 中文字幕av日韩精品一区二区| 精品天海翼一区二区| 麻豆国产在线不卡一区二区 | 风间由美在线亚洲一区| 亚洲国产视频一区| 无码少妇精品一区二区免费动态| 狠狠做深爱婷婷综合一区 | 精品久久久久中文字幕一区| 国产在线无码视频一区| 精品国产免费观看一区| 精品久久久久久无码中文字幕一区| 日产一区日产2区| 国产在线视频一区二区三区98| 视频一区视频二区日韩专区| 日韩一区二区三区在线| 国产主播一区二区三区在线观看| 久久精品无码一区二区三区不卡 | 亲子乱av一区二区三区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 亚洲视频一区调教| 乱码精品一区二区三区| 亚洲午夜精品一区二区公牛电影院| 久久一区二区三区精品| 秋霞无码一区二区| 性色AV一区二区三区天美传媒| 人妻互换精品一区二区| 国产人妖视频一区二区破除| 美女视频免费看一区二区 | 亚洲国模精品一区| 国产乱码一区二区三区爽爽爽 | 国产精品一区二区三区久久| 精品一区二区三区中文|