整合營銷服務商

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

          免費咨詢熱線:

          多種方法來實現網站導航水平居中

          今天的內容中,廊坊網站建設公司的技術人員將分享下網站導航水平居中設置的方法,其實辦法有很多,以CSS代碼為例,這種代碼操作很方便,后期修改的時候也簡單,以下是詳細的實例操作。

          方法一:使用display:inline-block控制

          這個方法比較簡單,是將容器轉成display:inline-block行內塊級元素,然后就可以直接用text-align:center使其達到水平居中效果。HTML代碼中需要一個div來包圍這個導航菜單。

          方法二:使用position:relative解決

          position:relative定位方法來讓元素水平居中,一般來說小編推薦這方法,因為代碼多了個div去包住,當然這些是根據情況來使用的。將定位div設為浮動,再定位left:50%,然后導航定位至left:-50%。

          方法三:使用display:table解決

          HTML代碼實例

          <ul class="navbar">

          <li><a href="/">Home</a></li>

          </ul>

          CSS代碼實例

          .navbar {

          display:table;

          margin:0 auto;

          }

          .navbar li {

          display:table-cell;

          }

          .navbar li + li {

          padding-left:20px;

          }

          方法四:使用display:inline-flex解決

          HTML代碼實例操作

          <div class="navbar">

          <ul>

          <li><a href="/">Home</a></li>

          </ul>

          </div>

          CSS代碼代碼編寫

          .navbar {

          text-align:center;

          }

          .navbar > ul {

          display:-webkit-inline-box;

          display:-moz-inline-box;

          display:-ms-inline-flexbox;

          display:-webkit-inline-flex;

          display:inline-flex;

          }

          .navbar li + li {

          margin-left:20px;

          }

          提示:瀏覽器兼容問題,目前這個代碼不支持IE7及以下版本的IE瀏覽器。

          其實這些方法很好的解決了網站導航菜單居中的問題,使用CSS編寫有助于后期的修改,極大的方便了我們的操作和節省了寶貴的時間。在以后的內容中,小編還將會繼續為朋友們分享更多更有價值的知識。

          原創文章出自暢想網絡,轉載地址:http://www.e-wkj.cn/xw/2316.html

          平居中設置

          我們在實際工作中常會遇到需要設置水平居中的場景,比如為了美觀,文章的標題一般都是水平居中顯示的。

          這里我們又得分兩種情況:行內元素 還是 塊狀元素 ,塊狀元素里面又分為定寬塊狀元素,以及不定寬塊狀元素。今天我們先來了解一下

          行內元素

          如果被設置元素為文本、圖片等行內元素時,水平居中是通過給父元素設置 text-align:center 來實現的。

          定寬塊狀元素

          當被設置元素為 塊狀元素 時用 text-align:center 就不起作用了,這時也分兩種情況:定寬塊狀元素和不定寬塊狀元素。

          如果是定寬塊狀元素。(定寬塊狀元素:塊狀元素的寬度width為固定值。)

          滿足定寬和塊狀兩個條件的元素是可以通過設置“左右margin”值為“auto”來實現居中的。

          不定寬塊狀元素

          不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多):

          1. 加入 table 標簽
          2. 設置 display: inline 方法:與第一種類似,顯示類型設為 行內元素,進行不定寬元素的屬性設置
          3. 設置 position:relative 和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達到居中的目的

          第一種做法:

          為什么選擇方法一加入table標簽? 是利用table標簽的長度自適應性---即不定義其長度也不默認父元素body的長度(table其長度根據其內文本長度決定),因此可以看做一個定寬度塊元素,然后再利用定寬度塊狀居中的margin的方法,使其水平居中。

          第一步:為需要設置的居中的元素外面加入一個 table 標簽 ( 包括 <tbody>、<tr>、<td> )。

          第二步:為這個 table 設置“左右 margin 居中”(這個和定寬塊狀元素的方法一樣)。

          舉例如下:

          html代碼:

          <div>
           <table>
           <tbody>
           <tr><td>
           <ul>
           <li>我是第一行文本</li>
           <li>我是第二行文本</li>
           <li>我是第三行文本</li>
           </ul>
           </td></tr>
           </tbody>
           </table>
          </div>
          

          css代碼:

          <style>
          table{
           border:1px solid;
           margin:0 auto;
          }
          </style>
          

          第二種做法:

          改變塊級元素的 display 為 inline 類型(設置為 行內元素 顯示),然后使用 text-align:center 來實現居中效果。如下例子:

          html代碼:

          <body>
          <div class="container">
           <ul>
           <li><a href="#">1</a></li>
           <li><a href="#">2</a></li>
           <li><a href="#">3</a></li>
           </ul>
          </div>
          </body>
          

          css代碼:

          <style>
          .container{
           text-align:center;
          }
          /* margin:0;padding:0(消除文本與div邊框之間的間隙)*/
          .container ul{
           list-style:none;
           margin:0;
           padding:0;
           display:inline;
          }
          /* margin-right:8px(設置li文本之間的間隔)*/
          .container li{
           margin-right:8px;
           display:inline;
          }
          </style>
          

          這種方法相比第一種方法的優勢是不用增加無語義標簽,但也存在著一些問題:它將塊狀元素的 display 類型改為 inline,變成了行內元素,所以少了一些功能,比如設定長度值。

          方法三:

          通過給父元素設置 float,然后給父元素設置 position:relative 和 left:50%,子元素設置 position:relative 和 left: -50% 來實現水平居中。

          我們可以這樣理解:假想ul層的父層(即下面例子中的div層)中間有條平分線將ul層的父層(div層)平均分為兩份,ul層的css代碼是將ul層的最左端與ul層的父層(div層)的平分線對齊;而li層的css代碼則是將li層的平分線與ul層的最左端(也是div層的平分線)對齊,從而實現li層的居中。

          代碼如下:

          <body>
          <div class="container">
           <ul>
           <li><a href="#">1</a></li>
           <li><a href="#">2</a></li>
           <li><a href="#">3</a></li>
           </ul>
          </div>
          </body>
          

          css代碼:

          <style>
          .container{
           float:left;
           position:relative;
           left:50%
          }
          .container ul{
           list-style:none;
           margin:0;
           padding:0;
           
           position:relative;
           left:-50%;
          }
          .container li{float:left;display:inline;margin-right:8px;}
          </style>
          

          這三種方法使用得都非常廣泛,各有優缺點,具體選用哪種方法,可以視具體情況而定。

          例一:子元素水平垂直居中

          頁面布局常遇見需要子元素完全居中顯示,因此在此總結常見方案。

          讓黃色塊在父容器(灰色塊)中水平、垂直居中

          黃色方塊:寬高100px

          灰色方塊:寬高400px

          下列方法1到方法7,變換前后的圖像都是上面2張圖(圖標注了長度)

          默認代碼:

           <!DOCTYPE html>
           <html lang="zh-CN">
           
           <head>
               <meta charset="UTF-8">
               <title>完全居中</title>
               <style>
                   .parent {
                       width: 400px;
                       height: 400px;
                       background-color: gray;
                   }
           
                   .children {
                       width: 100px;
                       height: 100px;
                       background-color: yellow;
                   }
               </style>
           </head>
           
           <body>
               <div class="parent">
                   <div class="children"></div>
               </div>
           </body>
           </html>

          下列方法1到方法7,里css代碼都是基于上方默認代碼

          方法1:彈性布局+主/側軸中間對齊

           .parent {
               /* 彈性布局 */
               display: flex;
               /* 主軸對齊方式:居中 */
               justify-content: center;
               /* 側軸對齊方式(單行):居中 */
               align-items: center;
           }

          方法2:彈性布局+margin自動

           .parent {
               /* 彈性布局 */
               display: flex;
           }
           .children {
               margin: auto;
           }

          方法3:定位(子絕父相)+margin

           .parent {
               position: relative;
           }
           
           .children {
               position: absolute;
               left: 0;
               right: 0;
               top: 0;
               bottom: 0;
               margin: auto;
           }

          方法4:直接計算

          分析過程:使用外邊距推中間黃色盒子,距離頂端(400-100)/2= 150 px

           .parent {
               /* 因為margin塌陷問題(子容器的外邊距會被父容器用掉):此處需要顯示指明父容器溢出方式 */
               overflow: auto;
           }
           
           .children {
               /* 上下150px,左右自動 */
              margin: 150px auto;
           }

          方法5: Transform屬性

          這種方法使用CSS的transformposition屬性。這種方法在某些情況下可能比Flexbox或Grid更簡單:

            .children {
               position: relative;
               left: 50%;
               top: 50%;
                /* 
                transform:2/3D變換關鍵字
                translate是2D位移關鍵字
                   x與y都-50%,是因為坐標原點默認是左上角,在left與top移動50%后,黃色盒子處于中心點右下方,因此需要讓黃色盒子xy都減去一半
                */
               transform: translate(-50%, -50%);
           }

          方法6:Grid布局

          CSS Grid也是一個強大的布局工具,它也可以用來實現子元素的水平和垂直居中。以下是一個例子:

           .parent {
               display: grid;
               justify-items: center;/* 水平居中 */
               align-items: center;/* 垂直居中 */
           }

          方法7:使用表格布局

          通過display設置為table-cell,然后使用text-align 、vertical-align實現水平居中和垂直居中。

           .parent {
               display: table-cell;
               text-align: center;
               vertical-align: middle;
           }
           
           .children {
               display: inline-block;
           }

          方法8:變化成行內塊

          若父元素寬高確定,子元素寬高不確定,用

          將children設為行內元素,運用text-align即可實現水平居中,再借助vertical-align在垂直方向上達到居中效果。最后,將children的行高設定為默認值(line-height具有可繼承性,需單獨調整子元素的行高)。

           <!DOCTYPE html>
           <html lang="zh-CN">
           <head>
               <meta charset="UTF-8">
               <title>完全居中</title>
               <style>
                   .parent {
                       width: 400px;
                       height: 400px;
                       background-color: gray;
                       text-align: center;
                       line-height: 400px;
                   }
                    
                   .children {
                       background-color: yellow;
                       display: inline-block;
                       vertical-align: middle;
                       line-height: initial;
                   }
               </style>
           </head>
           
           <body>
               <div class="parent">
                   <div class="children">child</div>
               </div>
           </body>
           </html>

          初始

          居中


          更多精彩,請關注微信公眾號:碼圈小橙子


          主站蜘蛛池模板: 精品一区二区三区东京热| 亚洲欧美日韩一区二区三区在线 | 日韩毛片一区视频免费| 亚洲AV网一区二区三区| 国产一国产一区秋霞在线观看| 亚洲国产一区视频| 美女啪啪一区二区三区| 亚洲国产欧美日韩精品一区二区三区| 日韩一本之道一区中文字幕| 奇米精品视频一区二区三区| 国产精品亚洲一区二区无码| 成人日韩熟女高清视频一区| AV天堂午夜精品一区二区三区| 一区二区三区国模大胆| 亚洲AV日韩综合一区| 日韩精品无码一区二区三区AV| 久久久久人妻一区精品性色av| 国产婷婷色一区二区三区深爱网| 久久精品无码一区二区三区| 国产日韩精品一区二区在线观看播放| 亚洲成人一区二区| 国产成人一区二区三区精品久久| 亚洲一区二区女搞男| 男人免费视频一区二区在线观看| 精品国产AⅤ一区二区三区4区 | 精品国产一区二区二三区在线观看| 亚洲一区二区三区AV无码| 国产av福利一区二区三巨| 全国精品一区二区在线观看| 亚洲一区精品中文字幕| 一区二区三区无码视频免费福利| 色综合视频一区二区三区| 波多野结衣在线观看一区 | 亚洲av乱码中文一区二区三区| 亚洲爆乳无码一区二区三区| 国产丝袜视频一区二区三区| 国产精品区AV一区二区| 亚洲日本一区二区一本一道| 福利视频一区二区牛牛| 国产亚洲一区二区三区在线不卡 | 中文字幕精品一区|