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 国产精品麻豆久久久,97av免费视频,亚洲国产国产综合一区首页

          整合營銷服務商

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

          免費咨詢熱線:

          CSS 元素分類與水平居中

          CSS 元素分類與水平居中

          素分類

          在講解CSS布局之前,我們需要提前知道一些知識,在CSS中,html中的標簽元素大體被分為三種不同的類型:

          塊狀元素、內聯元素(又叫行內元素)和內聯塊狀元素。

          常用的內聯元素有:

          <a>、<span>、<br/>、<sub>、<sup>、<label>、<b>、<i>、<u>、<del>

          常用的塊狀元素有:

          <div>、<p>、<h1>...<h6>、<ol>、<ul>、<li>、<dl>、<dt>、<dl>、<table>、<marquee>、<form>、<pre>

          常用的內聯塊狀元素(又叫行內塊元素)有:

          <img>、<input>

          內聯元素(行內)

          在html中,<span>、<a>、<label>、<input>、 <img>、 <strong> 和<em>就是典型的內聯元素(行內元素)(inline)元素。

          當然塊狀元素也可以通過代碼display:inline將元素設置為內聯元素。如下代碼就是將塊狀元素div轉換為內聯元素,從頁使用div元素具有內聯元素特點。

          div{display:inline}

          內聯元素(行內)特點:

          1、和其他元素都在一行上;

          2、元素的高度、寬度、行高及頂部和底部邊距不可設置;(padding可以設置)

          3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。

          塊級元素

          什么是塊級元素?在html中<div>、<p>、<h1>、<form>、<ul> 和 <li>就是塊級元素。

          設置display:block就是將元素顯示為塊級元素。如下代碼就是將內聯元素a轉換為塊狀元素,從而使a元素具有塊狀元素特點。

          a{display:block;}

          塊級元素特點:

          1、每個塊級元素都從新的一行開始,并且其后的元素也另起一行。(真霸道,一個塊級元素獨占一行)

          2、元素的高度、寬度、行高以及頂和底邊距都可設置。

          3、元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。

          內聯塊狀元素(行內塊)

          內聯塊狀元素(inline-block)就是同時具備內聯元素、塊狀元素的特點,

          代碼display:inline-block就是將元素設置為內聯塊狀元素。(css2.1新增),<img>、<input>標簽就是這種內聯塊狀標簽。

          inline-block元素特點:

          1、和其他元素都在一行上;

          2、元素的高度、寬度、行高以及頂和底邊距都可設置。

          提示:下一小節是用視頻動畫來講解css中的盒模型。

          塊元素盡量采用div嵌套, 行內元素盡量采用span嵌套

          顯示模式的轉換

          塊級、行內 、行內塊元素三者是可以相互轉換的。

          display 顯示 的意思

          block 塊

          inline 行內


          塊級 → 行內元素 display: inline;

          <style>
          div{
              width:100px;
              height:100px;
              background-color:#036;
              display:inline;
          }
          </style>

          行內元素 → 塊級元素 display: block;

          <style>
          a{
              width:100px;
              height:100px;
              background-color:#960;
              display:block
          }
          </style>

          行內和塊級 → 行內塊 display:inline-block;

          span{
              width:100px;
              height:100px;
              background-color:#960;
              didplay:inline-block;
          }

          水平居中設置-行內元素

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

          html代碼:

          <body>
          <div class="txtCenter">我是文本,哈哈,我想要在父容器中水平居中顯示。</div>
          <div class="imgCenter"><img src="http://img.mukewang.com/52da54ed0001ecfa04120172.jpg" /></div>
          </body>

          css代碼:

          <style>
          div.txtCenter{
          text-align:center;
          }
          div.imgCenter{
          text-align:center;
          }
          </style>

          水平居中設置-定寬塊狀元素

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

          滿足定寬和塊狀兩個條件的元素是可以通過設置"左右margin"值為"auto"來實現居中的。我們來看個例子就是設置div這個塊狀元素水平居中:

          第一種方法

          html代碼:

          <body>
          <div>我是定寬塊狀元素,哈哈,我要水平居中顯示。</div>
          </body>

          css代碼:

          <style>
          div{
          border:1px solid red;/*為了顯示居中效果明顯為 div 設置了邊框*/
          width:500px;/*定寬*/
          margin:20px auto;/* margin-left 與 margin-right 設置為 auto */
          }
          </style>

          也可以寫成:

          margin-left:auto;
          margin-right:auto;

          注意:元素的"上下margin"是可以隨意設置的。這種水平居中的方法兩個2個條件缺一不可

          第二種方法

          html代碼:

          <body>
          <div>我是定寬塊狀元素,哈哈,我要水平居中顯示。</div>
          </body>

          css代碼:

          <style>
          div{
          border:1px solid red;/*為了顯示居中效果明顯為 div 設置了邊框*/
          width:500px;/*定寬*/
          position:absoute;
          left:50px;
          margin-left:-25px;
          }
          </style>

          水平居中設置-不定寬塊狀元素

          在實際工作中我們會遇到需要為"不定寬度的塊狀元素"設置居中,比如網頁上的分頁導航,因為分頁的數量是不確定的,所以我們不能通過設置寬度來限制它的彈性。

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

          加入table標簽

          設置display;inline方法

          設置position:relative和left:50%;

          (1)第一種方法:

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

          第二步:為這個table設置"左右margin auto"(這個和定寬塊狀元素的方法一樣)。舉例如下:

          html代碼:

          <div>
          <table>
          <tbody>
          <tr><td>
          <ul>
          <li><a href="#">1</a></li>
          <li><a href="#">2</a></li>
          <li><a href="#">3</a></li>
          </ul>
          </td></tr>
          </tbody>
          </table>
          </div>

          css代碼:

          <style>
          table{
          margin:0 auto;
          }
          ul{list-style:none;margin:0;padding:0;}
          li{float:left;display:inline;margin-right:8px;}
          </style>

          (2)第二種方法:

          改變塊級元素的dispaly為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;
          }
          .container ul{
          list-style:none;
          margin:0;
          padding:0;
          display:inline;
          }
          .container li{
          margin-right:8px;
          display:inline;
          }
          </style>

          這種方法相比第一種方法的優勢是不用增加無語義標簽,簡化了標簽的嵌套深度,

          但也存在著一些問題:它將塊狀元素的display類型改為inline,變成了行內元素,所以少了一些功能,比如設定長度值。

          (2)第三種方法:

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

          代碼如下:

          <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>

          這種方法可以保留塊狀元素仍以display:block的形式顯示,優點不添加無語議表標簽,不增加嵌套深度,

          但它的缺點是設置了position:relative,帶來了一定的副作用。

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

          隱性改變display類型

          有一個有趣的現象就是當為元素(不論之前是什么類型元素,display:none除外)設置以下2個句之一:

          position:absolute

          float:left或float:right

          元素會自動變為以display:inline-block的方式顯示,當然就可以設置元素的width和height了且默認寬度不占滿父元素。

          如下面的代碼,小伙伴們都知道a標簽是行內元素,所以設置它的width是沒有效果的,但是設置為position:absolute以后,就可以了。

          <div class="container">
          <a href="#" title="">進入課程請單擊這里</a>
          </div>

          css代碼

          <style>
          .container a{
          position:absolute;
          width:200px;
          background:#ccc;
          }
          </style>

          如何讓一段文字水平居中且垂直居中

          <div>水平垂直居中</div>
          div{
          width:200px;height:200px; /*設置div的大小*/
          border:1px solid green; /*邊框*/
          text-align: center; /*文字水平居中對齊*/
          line-height: 200px; /*設置文字行距等于div的高度*/
          overflow:hidden;
          }

          text-align 和margin auto 區別

          text-align 可以讓塊級元素里面的文字內容居中對齊.

          文字內容==(圖片 input 行內元素 行內塊元素)

          但是對于里面的塊級元素無效

          讓一個塊級元素居中對齊 : margin:0 auto;

          【實例】

          <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8" />
          <title>趙麗穎的圖片</title>
          <style type="text/css">
          body{
          text-align:center; /* 所有的元素居中 */
          }
          div{ /*塊元素的居中方法*/
          width:600px;
          margin:30px auto;
          }
          .img1{ /*行內塊元素的居中方法 */
          display:block;
          width:600px;
          margin:30px auto;
          }
          .img2{ /*行內塊元素的居中方法 */
          position:relative;
          left:50%;
          margin-left:-300px;
          }
          .form1 input{
          width:200px; /*塊容器包裹下的行內塊元素居中方法*/
          margin:10px auto;
          }
          .img3{ /*塊容器包裹下的行內塊元素居中方法*/
          text-align:center;
          }
          </style>
          </head>
          <body>
          <div><img src="../../photo/趙麗穎.jpeg" /></div>
          <img class="img1" src="../../photo/趙麗穎.jpeg" />
          <img class="img2" src="../../photo/趙麗穎.jpeg" />
          <div class="form1">
          <form action="" method="get" accept-charset="utf-8">
          <label>電子郵箱: <input type="text" name="email" value="" placeholder="請輸入電子郵箱"/></label><br/>
          <label>密碼: <input type="password" name="password"/></label><br/>
          <label for="address">地址</label>
          <input type="text" name="address" id="address" placeholder="請輸入地址" />
          </form>
          </div>
          
          <div class="img3">
          <img src="../../photo/趙麗穎.jpeg" />
          </div>
          
          </body>
          </html>

          CSS布局水平居中實戰

          方法一:margin + width

          <!Doctype html>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
          <title>css布局水平居中margin + width</title>
          <style type="text/css">
          * {
          margin: 0;
          padding: 0;
          }
          .box {
          width: 100px;
          margin: 0 auto;
          background: red;
          }
          </style>
          </head>
          <body>
          <div class="box">Demo</div>
          </body>
          </html>

          說明:這個水平居中方法, 我們最熟悉了, 也是最常用的, width可以固定px也可以使用百分比

          方法二:table + margin

          <!Doctype html>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
          <title>css布局水平居中table + margin</title>
          <style type="text/css">
          * {
          margin: 0;
          padding: 0;
          }
          .box {
          display: table;
          margin: 0 auto;
          background: red;
          }
          </style>
          </head>
          <body>
          <div class="box">Demo</div>
          </body>
          </html>

          說明:display: table在表現上類似block元素,但是寬度為內容寬。無需設置父元素樣式 (支持 IE 8 及其以上版本) 兼容 IE 8 一下版本需要調整為<table>

          方法三:inline-block + text-align

          <!Doctype html>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
          <title>css布局水平居中inline-block + text-align</title>
          <style type="text/css">
          * {
          margin: 0;
          padding: 0;
          }
          .content {
          text-align: center;
          }
          .box {
          display: inline-block;
          background: red;
          }
          </style>
          </head>
          <body>
          <div class="content">
          <div class="box">Demo</div>
          </div>
          </body>
          </html>

          說明:兼容性佳(甚至可以兼容 IE 6 和 IE 7)

          方法四:absolute + margin-left

          <!Doctype html>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
          <title>css布局水平居中absolute + margin-left</title>
          <style type="text/css">
          * {
          margin: 0;
          padding: 0;
          }
          .content {
          position: relative;
          }
          .box {
          position: absolute;
          left: 50%;
          width: 100px;
          margin-left: -50px;
          background: red;
          }
          </style>
          </head>
          <body>
          <div class="content">
          <div class="box">Demo</div>
          </div>
          </body>
          </html>

          說明:寬度固定相比于使用transform, 有兼容性更好

          方法五:absolute + transform

          <!Doctype html>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
          <title>css布局水平居中absolute + transform</title>
          <style type="text/css">
          * {
          margin: 0;
          padding: 0;
          }
          .content {
          position: relative;
          }
          .box {
          position: absolute;
          left: 50%;
          transform: translateX(-50%);
          background: red;
          }
          </style>
          </head>
          <body>
          <div class="content">
          <div class="box">Demo</div>
          </div>
          </body>
          </html>

          說明:絕對定位脫離文檔流, 不會對后續元素的布局造成影響。transform為 CSS3 屬性, 有兼容性問題

          方法六:flex + justify-content

          級元素:div , p , form, ul, li , ol, dl, form, address, fieldset, hr, menu, table

          行內元素:span, strong, em, br, img , input, label, select, textarea, cite,

          內聯元素(inline element)a - 超鏈接

          b - 粗體(不推薦)br - 換行

          em - 強調

          font - 字體設定(不推薦)

          i - 斜體

          img - 圖片

          input - 輸入框

          label - 表格標簽

          select - 選擇框

          small - 小字體文本

          span - 常用內聯容器,定義文本內區塊

          strong - 粗體強調

          sub - 下標

          sup - 上標

          textarea - 多行文本輸入框

          塊元素(block element)* blockquote - 塊引用

          * center - 居中

          * div - 常用塊級容易,也是css layout的主要標簽

          * dl - 定義列表

          * form - 交互表單

          * h1 - 大標題

          * h2 - 副標題

          * h3 - 3級標題

          * h4 - 4級標題

          * h5 - 5級標題

          * h6 - 6級標題

          * hr - 水平分隔線

          * ol - 排序表單

          * p - 段落

          * pre - 格式化文本

          * table - 表格

          * ul - 無序列表

          塊級元素和行內元素的區別:

          1)塊級元素會獨占一行,其寬度自動填滿其父元素寬度

          行內元素不會獨占一行,相鄰的行內元素會排列在同一行里,知道一行排不下,才會換行,其寬度隨元素的內容 而變化

          2) 塊級元素可以設置 width, height屬性,行內元素設置width, height無效

          3) 塊級元素可以設置margin 和 padding. 行內元素的水平方向的padding-left,padding-right,margin-left,margin-right 都產生邊距效果,但是豎直方向的padding-top,padding-bottom,margin-top,margin-bottom都不會產生邊距效果。

          文章自留地:

          成笑笑博客_一個.Net和安卓技術狂愛者博客。

          主要以發布和分享.Net和安卓文章為主,爭做全棧開發工程師,愛學習,愛挑戰,愛編程。用技術改變生活。

          歡迎關注,微信公眾號:net知識分享(net4k8k)[做個12k的技術員].博客網址:www.chengxiaoxiao.com.

          歡迎加入qq技術交流群:538742639.

          們先分析一下整個網頁的結構,整體內容采用的是一個兩列布局,導航無限延長的背景,并且添加了分割符號

          素材:

          第一步: 去掉默認的HTML間距。

          *{padding:0;margin:0;}

          Ps(我們可以在后期進行修改,根據網頁中使用的HTML元素的個數如body,h1,div等)

          第二步:按效果圖頭部灰色背景但是無限延長

          HTML代碼:

          <div class="top">

          <div id="top">

          <p>讀書屋歡迎您!</p>

          </div>

          </div>

          兩個DIV嵌套,<div class="top">這個需要100%添加背景,而內側<div id="top"> 實現居中布局就可以了

          .top{width:100%;background:#f5f5f5;height:35px;}

          解釋:寬度100%,添加背景顏色,設定高度,這樣在縮放網頁,始終可以看到灰色的背景

          #top {width:970px;margin:0 auto;}

          解釋:網頁寬度970像素,使id=top的div元素進行居中margin:0 auto;

          #top p{font-size:13px;line-height:35px;}

          解釋:改變文字大小,就一行宣傳文字,通過行高(和高度一樣時間)實現垂直居中line-height:35px;

          第三步:logo的實現,采用典型的以圖換字的方式,有利于SEO

          HTML代碼:

          <div id="header">

          <h1>

          <a href="#">css教程</a>

          </h1>

          </div>

          CSS編碼:

          #header h1 a{

          background:url(images/logo.png) no-repeat 0 50%;

          display:block;

          width:215px;height:60px;

          text-indent:-9999px;

          }


          主站蜘蛛池模板: 无码日韩人妻AV一区二区三区| 亚洲综合无码一区二区| 亚洲福利视频一区| 国产日韩精品一区二区三区| 日韩人妻无码一区二区三区99| 亚洲A∨精品一区二区三区| 亚洲欧美日韩一区二区三区 | 一区二区福利视频| 激情亚洲一区国产精品| 无码国产伦一区二区三区视频| 亚洲一区视频在线播放| 免费一区二区三区四区五区| 国产精品无码一区二区三区毛片| 亚洲国产老鸭窝一区二区三区| 国产福利视频一区二区| 免费国产在线精品一区| 日本一区免费电影| 日本一区二区高清不卡| 欧洲精品一区二区三区| 国产精品成人99一区无码| 亚洲av乱码一区二区三区按摩| AV鲁丝一区鲁丝二区鲁丝三区 | 日韩精品一区在线| 鲁丝丝国产一区二区| 婷婷亚洲综合一区二区| 国产综合视频在线观看一区| 国产女人乱人伦精品一区二区 | 久久久久成人精品一区二区| 亚洲综合无码精品一区二区三区| AV无码精品一区二区三区宅噜噜| 国产精品第一区第27页| 国产成人精品无码一区二区三区| 果冻传媒董小宛一区二区| 久久精品一区二区三区资源网| 久久精品一区二区三区资源网| 国产电影一区二区| 国产成人一区二区三区免费视频| 国产一区二区视频免费| 国产在线精品一区二区高清不卡| 国产成人一区二区三区在线| 亚洲天堂一区二区三区|