css:盒子模型邊框(邊框、內外邊距)

来源:https://www.cnblogs.com/zhai1997/archive/2020/06/03/13035305.html
-Advertisement-
Play Games

1、概念 所謂盒子模型,就是把HTML頁面中的佈局元素看作是一個矩形的盒子,也就是一個盛裝內容的容器。css盒子模型本質上就是一個盒子,封裝周圍的HTML元素,它包括:邊框、外邊距、內邊距和實際內容 2、邊框 屬性:寬度、樣式、顏色 (1)普通方式 <html> <head> <meta chars ...


1、概念

所謂盒子模型,就是把HTML頁面中的佈局元素看作是一個矩形的盒子,也就是一個盛裝內容的容器。css盒子模型本質上就是一個盒子,封裝周圍的HTML元素,它包括:邊框、外邊距、內邊距和實際內容

 

2、邊框

屬性:寬度、樣式、顏色

(1)普通方式

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
             div{
                 width: 300px;
                 height: 200px;
                 border-width: 5px;
                 border-style: dashed;
                 border-color: red;             
             }
        </style>
    </head>

    <body>
    <div></div>
    </body>

</html>

(2)複合方式

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
             div{
                 width: 300px;
                 height: 200px;
                 border: 5px dashed red;         
             }
        </style>
    </head>

    <body>
    <div></div>
    </body>

</html>

 

 (3)邊框的局部設置

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
             div{
                 width: 300px;
                 height: 200px;
                 border-bottom: 5px dashed red;     
                 border-top:10px dotted purple;
                 border-right:3px dashed beige ;
                 border-left: 2px dotted bisque;    
             }
        </style>
    </head>

    <body>
    <div></div>
    </body>

</html>

 

 下麵的樣式會覆蓋上面的樣式:

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
             div{
                 width: 300px;
                 height: 200px;
                 border: 5px dashed red;     
                 border-top:10px dotted purple;
             }
        </style>
    </head>

    <body>
    <div></div>
    </body>

</html>

 

 (4)表格的細線邊框

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            table{
                width: 300px;
                height: 100px;
            }
            table,td{
                border: 1px solid blue;
                border-collapse:collapse;  <!--把相鄰的邊框合併在一起-->
                font-size: 14px;
                text-align: center;
                
            }
        </style>
    </head>

    <body>
    <table align="center" cellspacing="0">
        <tr>
            <th>1</th>
            <th>2</th>
            <th>3</th>
            <th>4</th>
            <th>5</th>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
    </body>

</html>

 

 (5)邊框會影響盒子的實際大小

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: chartreuse;
                border: 10px red solid;
            }
        </style>
    </head>

    <body>
           <div></div>
    </body>

</html>

 

 盒子的實際大小是內部顏色的大小,邊框會使得盒子變大,因此,實際測量的時候要減去邊框的寬度

(6)內邊距

padding屬性用於設置內邊距,即邊框與內容之間的距離

不加padding屬性:

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: chartreuse;
            }
        </style>
    </head>

    <body>
           <div>床前明月光,疑是地上霜</div>
    </body>

</html>

 

 內容與邊框的距離沒有辦法控制

添加padding屬性:

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: chartreuse;
                padding-left: 15px;
                padding-top: 10px;
            }
        </style>
    </head>

    <body>
           <div>床前明月光,疑是地上霜</div>
    </body>

</html>

 

 (7)內邊距:padding

 

 圖片來源:黑馬程式員pink老師

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: chartreuse;
                padding: 10px;
            }
        </style>
    </head>
    <body>
           <div>床前明月光,疑是地上霜</div>
    </body>

</html>

 

 (8)padding屬性對盒子大小的影響

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                background-color: chartreuse;
                padding: 10px;
            }
        </style>
    </head>
    <body>
           <div>床前明月光,疑是地上霜</div>
    </body>

</html>

定義的div的大小是100*100,但是實際的div大小是220*220,也就是說div的大小是加上內邊距之後的大小

 

 

3、盒子模型外邊距margin

(1)不設置外邊距:

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           div{
               width: 100px;
               height: 50px;
               background-color: mediumvioletred;
           }
        </style>
    </head>
    <body>
      <div>1</div>
      <div>2</div>
    </body>

</html>

 

 兩個盒子是連接到一起的

(2)設置外邊距:

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           div{
               width: 100px;
               height: 50px;
               background-color: mediumvioletred;
           }
           .div2{
               margin-top: 3px;
           }
        </style>
    </head>
    <body>
      <div>1</div>
      <div class="div2">2</div>
    </body>

</html>

 

 margin的簡寫方式和padding完全一致

(3)塊級元素水平居中

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           div{
               width: 600px;
               height: 50px;
               background-color: mediumvioletred;
               margin: 0 auto;
           }
        </style>
    </head>
    <body>
      <div></div>
    </body>
</html>

 

 (4)行內元素和行內塊元素水平居中:給父元素添加text-align

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           div{
               width: 600px;
               height: 50px;
               background-color: mediumvioletred;
               margin: 0 auto;
               text-align: center;
           }
        </style>
    </head>
    <body>
      <div>
          <span>大家好</span>
      </div>
    </body>
</html>

 

 行內塊元素:

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           div{
               width: 600px;
               height: 50px;
               background-color: mediumvioletred;
               margin: 0 auto;
               text-align: center;
           }
        </style>
    </head>
    <body>
      <div>
          <img src="#" />
      </div>
    </body>
</html>

 

 

4、嵌套塊元素的塌陷

(1)塌陷問題:

對於兩個嵌套關係(父子關係)的塊元素,父元素有上外邊距,同時,子元素也有上外邊距,此時父元素會塌陷較大的外邊距值

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           .father{
               width: 400px;
               height: 400px;
               background-color: purple;
               margin-top:50px ;
           }
           .son{
               width: 200px;
               height: 200px;
               background-color: paleturquoise;
               margin-top: 100px;
           }
        </style>
    </head>
    <body>
      <div class="father">
            <div class="son"></div>
      </div>
    </body>
</html>

 

 此時,子元素並沒有向下移動

 解決方案:

方案一:為父元素定義上邊框

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           .father{
               width: 400px;
               height: 400px;
               background-color: purple;
               margin-top:50px ;
               border: 1px solid red;
           }
           .son{
               width: 200px;
               height: 200px;
               background-color: paleturquoise;
               margin-top: 100px;
           }
        </style>
    </head>
    <body>
      <div class="father">
            <div class="son"></div>
      </div>
    </body>
</html>

 

 方案二:為父元素定義上內邊距

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           .father{
               width: 400px;
               height: 400px;
               background-color: purple;
               margin-top:50px ;
               padding: 1px;
           }
           .son{
               width: 200px;
               height: 200px;
               background-color: paleturquoise;
               margin-top: 100px;
           }
        </style>
    </head>
    <body>
      <div class="father">
            <div class="son"></div>
      </div>
    </body>
</html>

 

 方案三:為父元素添加:overflow:hidden

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
           .father{
               width: 400px;
               height: 400px;
               background-color: purple;
               margin-top:50px ;
               overflow: hidden;
           }
           .son{
               width: 200px;
               height: 200px;
               background-color: paleturquoise;
               margin-top: 100px;
           }
        </style>
    </head>
    <body>
      <div class="father">
            <div class="son"></div>
      </div>
    </body>
</html>

 

 

5、清除內外邊距

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
    
        </style>
    </head>
    <body>
      <div>
            <div>123</div>
      </div>
    </body>
</html>

 

 可以看到內容“123”並沒有考瀏覽器的邊緣顯示,而是有一個較小的邊距。

 

 有一個預設為8的外邊距,不同的網頁元素,內外邊距的預設值是不同的

內外邊距的清除:

<html>

    <head>
        <meta charset="utf-8">
        <title>盒子模型外邊距</title>
        <style>
          *{
              margin: 0;
              padding: 0;
          }
        </style>
    </head>
    <body>
    
     <div>
         123
     </div>
     
    </body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 教程 逆向 Flutter 應用 進展彙總 | Flutter 精彩不停,與您同在 插件 creditcard-slider Dart package for creating a credit card slider flutter-orientation A Flutter plugin for ...
  • 1.tcp為什麼要進行三次握手?不是2次,4次? 『兩次握手』:無法避免歷史錯誤連接的初始化,浪費接收方的資源;『四次握手』:TCP 協議的設計可以讓我們同時傳遞 ACK 和 SYN 兩個控制信息,減少了通信次數,所以不需要使用更多的通信次數傳輸相同的信息; 參考:https://draveness ...
  • github 的私有倉庫轉為公開 首先找到倉庫設置 然後 拉到下麵 如圖所示 將私有倉庫轉成公開。 ...
  • 1.組件化的分層 組件化分層的意義: 1.模塊間解耦合 2.模塊重用 3.提高開發的效率 組件的顆粒度劃分如下:(註意:必須是上層依賴下層,不可以平行層之間互相依賴,如果平行層之間有依賴的必要性,那麼應該把公共的部分,下沉到下一個層次,再進行依賴)  2.cocoapod的補充知識 當我們的項目用 ...
  • 1.關於SceneDelegate的理解 參考:https://juejin.im/post/5db6fb53f265da4d226e25f0 https://blog.csdn.net/u010713935/article/details/104754971 對於xcode11新工程的創建,多了一 ...
  • # 從零開始的前端生活-理解content(一) 替換元素 定義 我們把通過修改某個屬性值呈現的內容就可以被替換的元素被稱為"替換元素"。 比如 <img src="xxx.jpg"> ,我們只需修改屬性src的值,內容就會發生變化,這就是替換元素。 類似的有 <video>、<iframe>、< ...
  • web前端需要學習什麼知識?以下是我的一些分享,希望對你有幫助 想學好web前端,該從哪裡入手學習呢?零基礎學習web前端學習路線圖從哪裡可以找到呢?這裡為大家整理完整的零基礎 前端學習路線分享給大家。 適合零基礎學員的web前端學習路線分享給大家: 1、HTML5介紹 內容包括:(互聯網發展趨勢、 ...
  • Vue+Element 踩坑 1. 獲取後臺返回的數據,是個數組,迴圈後展示出來 <el-table-column :label="$t('common.cardModel.guz')" sortable="custom" prop="assetNo"> <template slot-scope=" ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...