整合營銷服務商

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

          免費咨詢熱線:

          CSS3盒模型尺寸的計算方法,box-sizing屬

          CSS3盒模型尺寸的計算方法,box-sizing屬性的使用,你知道嗎?

          SS3中有關增強用戶界面的屬性中具備一個名為box-sizing的屬性,該屬性用于設置CSS3盒模型寬度和高度的計算方法。本篇文章小海前端(頭條號)為大家來介紹該屬性的取值以及具體的用法。

          承接文章:CSS3對塊級元素實現了陰影效果,類似于Photoshop中的圖層樣式

          技術等級:中級 | 適合有一定的CSS基礎的人士閱讀。

          希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。

          CSS3所提供的增強用戶界面的屬性以及與此相關的屬性比較多,小海前端(頭條號)將分幾次對其進行講解。所包含的所有增強用戶界面的屬性包括:

          • box-shadow

          • box-sizing

          • overflow-x

          • overflow-y

          • resize

          • outline

          • outline-width

          • outline-style

          • outline-color

          • outline-offset

          • pointer-events

          • user-select

          • appearance

          • content

          • counter-increment

          • counter-reset

          • quotes

          本篇文章為大家講解第二個增強用戶界面屬性:盒模型計算公式box-sizing。

          一、認識box-sizing屬性:

          在默認的盒模型中,當設置了寬度和高度后,若又使用了padding屬性,則盒子的寬度和高度會由于paddin屬性的存在而增大。要想依舊保持原有的寬度和高度,需要從寬高中減去padding屬性的取值。

          CSS3增加了box-sizing屬性來改善上述問題的存在。

          CSS3 使用box-sizing屬性調整盒模型尺寸的就算方式

          該屬性可以取下列值:

          • content-box,默認值,盒模型的padding和border的大小不包括在盒模型的width和height中。

          • border-box,盒模型的padding和border的大小包括在盒模型的width和height中。

          二、content-box取值的理解:

          例1:在頁面中有一個id屬性取值為box1的塊級元素。設置box1的寬度和高度均為700像素。為該塊級元素設置一個50像素的填充距離,再為該塊級元素設置一個25像素的邊框距離。CSS3代碼如下所示。

          #box{

          width:700px; height:700px;

          border:solid 20px #ff5857;

          padding:50px;

          box-sizing: content-box;

          }

          因為content-box取值的含義是padding和border得大小不包括在盒模型的width和height中,因此最終盒模型的尺寸計算公式如下所示:

          • 盒模型的寬度=width + padding-left-width*2 + border-left-width*2;

          • 盒模型的高度=height + padding-left-height*2 + border-left-height*2

          因此例1中#box的實際尺寸為:

          • 寬度=700px + 50px*2 + 25px*2=850px

          • 高度=700px + 50px*2 + 25px*2=850px

          如果仍希望最終的實際尺寸保持700px*700px的大小,那就需要從寬度和高度中減去padding和border的大小。

          • width=700px - 50px*2 - 25px*2=550px

          • height=700px - 50px*2 - 25px*2=550px

          最終的CSS3代碼如下所示。

          #box{

          width:550px; height:550px;

          border:solid 20px #ff5857;

          padding:50px;

          box-sizing: content-box;

          }

          三、border-box取值的理解:

          例2:仍采用例1中的塊級元素,設置box-sizing屬性的取值為padding-box,CSS3代碼如下所示。

          #box{

          width:700px; height:700px;

          border:solid 20px #ff5857;

          padding:50px;

          box-sizing: border-box;

          }

          因為border-box取值的含義是padding和border得大小都包括在盒模型的width和height中,因此最終盒模型的尺寸計算公式如下所示:

          • 盒模型的寬度=width

          • 盒模型的高度=height

          因此例1中#box的實際尺寸為:

          • 寬度=700px

          • 高度=700px

          這樣就不要從width和height中減去任何數據,就可以得到希望的尺寸了。

          小海聲明

          在頭條上發表的這些文章都是從前端開發的基礎開始一步一步講起的。我非常希望能有更多的前端開發初學者通過我寫的文章,逐步學到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學過程中的經驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設計版面,讓版面更加豐富,激發閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費小海老師很久的時間。

          希望收藏了這篇文章的你同時也可以關注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經過系統的歸納和總結的。塌下心來認真閱讀,你一定會學到對你有用的知識。

          關注“小海前端”,我會繼續為大家奉上更加深入的前端開發文章,也希望更多的初學者跟著學下去,我們共同將前端開發的路努力堅持的走下去。

          文章預告

          明天的文章中,繼續為大家講解CSS3中有關增強用戶界面的屬性。

          天學習下css的盒子模型,這是一種布局模式,所謂盒子模型,就是將所有元素表示為一個個矩形的盒子(box)。CSS 決定這些盒子的大小、位置以及屬性(例如顏色、背景、邊框尺寸)。


          一個CSS盒子模型主要由以下幾個部分組成:

          1. 內容(Content):這是盒子模型的中心,包含了元素的“真實”內容,比如文本、圖片、視頻等。內容區域的大小可以通過width和height屬性來直接設置。

          1. 內邊距(Padding):內邊距位于內容區域與邊框之間的空間。它可以是正值或零,但不能是負值。內邊距是透明的,會占用布局空間。你可以使用padding-top、padding-right、padding-bottom、padding-left或簡寫屬性padding來設置內邊距。



          1. 邊框(Border):邊框環繞在內邊距和內容之外。邊框可以是實線、虛線等,并可以擁有自己的樣式、寬度和顏色。邊框是盒子模型的可見部分之一,可以通過border-style、border-width、border-color或簡寫屬性border來設置邊框的樣式、寬度和顏色。



          1. 外邊距(Margin):外邊距是邊框之外的透明區域,用于分隔相鄰的盒子。外邊距可以是正值或負值,負值的外邊距會導致盒子相互重疊。外邊距是透明的,不會占用背景色或背景圖片的空間,但會占用布局空間。你可以使用margin-top、margin-right、margin-bottom、margin-left或簡寫屬性margin來設置外邊距。

          這些組成部分共同定義了CSS盒子的總尺寸和布局方式。了解盒子模型對于掌握CSS布局至關重要,因為幾乎所有的頁面布局都是基于盒子模型的。

          Web開發中,理解和掌握HTML5盒模型是至關重要的。盒模型不僅是CSS布局的基礎,而且它直接影響著頁面元素如何在瀏覽器中呈現。本文旨在深入探討盒模型的各個組成部分以及它們如何影響網頁布局。

          盒模型基礎

          盒模型是CSS布局的核心概念,它決定了文檔中的元素如何定位,以及它們之間的空間關系。一個元素的盒模型由以下幾部分構成:

          • 內容(Content):元素的文本和圖像等實際內容。
          • 內邊距(Padding):內容區域與邊框之間的空間。
          • 邊框(Border):圍繞在內邊距和內容外的可見線。
          • 外邊距(Margin):元素與其他元素之間的外部空間。

          每個部分都對元素的最終尺寸和頁面布局有著直接影響。

          盒模型的類型

          標準盒模型

          在標準盒模型中,元素的width和height屬性僅包括內容區域。內邊距和邊框的寬度是額外計算的。

          box-sizing: content-box;
          

          IE盒模型(怪異模式)

          在IE盒模型中,元素的width和height包括內容、內邊距和邊框。

          box-sizing: border-box;
          

          現代瀏覽器支持box-sizing屬性,允許開發者選擇使用哪種盒模型。

          布局影響

          邊距合并

          當兩個垂直外邊距相遇時,它們會合并成一個外邊距,這通常稱為邊距合并(margin collapsing)。這個現象會影響布局,特別是在構建垂直間距時。

          盒模型和響應式設計

          在響應式設計中,盒模型的理解尤為重要。使用border-box可以簡化計算,因為元素的寬度包含了內邊距和邊框,這使得元素的尺寸更容易控制。

          浮動和清除

          浮動元素會影響盒模型,因為它們脫離了正常的文檔流。清除浮動則是為了防止相鄰元素的盒子相互覆蓋。

          定位

          絕對定位和相對定位的元素有著不同的盒模型表現。絕對定位元素的外邊距不會與其他外邊距合并,而相對定位元素可能會影響其周圍元素的布局。

          盒子尺寸計算

          當涉及到內邊距和邊框時,計算元素的實際尺寸可能會變得復雜。理解盒模型有助于精確計算和預測元素的實際占位。

          最佳實踐

          為了更好地控制布局,以下是一些推薦的最佳實踐:

          • 默認情況下使用box-sizing: border-box;,這樣可以讓元素尺寸的計算更直觀。
          • 明確設置所有元素的外邊距和內邊距,避免不必要的繼承和不確定性。
          • 在進行布局設計時,始終考慮到邊距合并的可能性。
          • 使用開發者工具來檢查和調試盒模型的尺寸,確保布局按預期進行。

          示例

          <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Box Model Layout Example</title>
          <style>
            * {
              box-sizing: border-box;
            }
          
            body {
              font-family: 'Arial', sans-serif;
              margin: 0;
              padding: 0;
              background-color: #f4f4f4;
            }
          
            .header {
              background-color: #333;
              color: #fff;
              padding: 20px;
              text-align: center;
            }
          
            .sidebar {
              background-color: #f9f9f9;
              padding: 20px;
              border-right: 2px solid #ddd;
              float: left;
              width: 20%;
              height: calc(100vh - 40px); /* Full height minus header and footer */
            }
          
            .main-content {
              padding: 20px;
              float: left;
              width: 80%;
            }
          
            .footer {
              background-color: #333;
              color: white;
              text-align: center;
              padding: 10px;
              clear: both;
            }
          
            .box {
              background-color: #007bff;
              color: white;
              padding: 10px;
              margin: 10px 0;
              border: 3px solid #0056b3;
            }
          </style>
          </head>
          <body>
          
          <div class="header">
            <h1>My Website</h1>
          </div>
          
          <div class="sidebar">
            <h2>Sidebar</h2>
            <p>This is the sidebar area.</p>
          </div>
          
          <div class="main-content">
            <h2>Main Content</h2>
            <p>This is the main content area.</p>
            <div class="box">Box Model Example</div>
          </div>
          
          <div class="footer">
            <p>Footer Content</p>
          </div>
          
          </body>
          </html>
          

          結語

          盒模型是網頁布局的基石,它決定了元素如何在頁面上占據空間。作為一名前端工程師,深入理解盒模型的工作原理對于創建精確和靈活的布局至關重要。隨著技術的發展,雖然我們有了更多的布局工具和框架,但盒模型仍然是所有布局決策的基礎。掌握它,你將能夠更加自信和高效地設計和構建現代Web頁面。


          主站蜘蛛池模板: 精品国产福利在线观看一区| 无码视频一区二区三区在线观看| 国产亚洲自拍一区| 久久久久久人妻一区精品| 国产精品区一区二区三| 精品一区二区在线观看| 在线一区二区观看| 乱精品一区字幕二区| 国产福利一区二区在线视频| 怡红院美国分院一区二区 | 丝袜无码一区二区三区| 亚洲日韩国产欧美一区二区三区| 中文字幕人妻无码一区二区三区| 国产无吗一区二区三区在线欢| 国产成人精品日本亚洲专一区| 精品国产亚洲一区二区在线观看 | 在线成人一区二区| 日韩精品乱码AV一区二区| 99久久精品国产高清一区二区| 免费国产在线精品一区| 欧洲精品码一区二区三区| 亚洲av无一区二区三区| 国产电影一区二区| 2022年亚洲午夜一区二区福利| 亚洲一区二区三区无码中文字幕| 亚洲免费一区二区| 鲁大师成人一区二区三区| 国内精品视频一区二区三区| 亚洲熟女综合一区二区三区| 91久久精品午夜一区二区| 日韩精品中文字幕无码一区| 中文字幕av无码一区二区三区电影| 亚洲一区二区三区在线视频| 一区二区免费国产在线观看| 免费一区二区三区四区五区| 国产伦精品一区二区三区无广告| 国产成人av一区二区三区在线 | 日韩精品一区二区三区中文| 无码人妻久久一区二区三区| 亚洲一区二区三区电影| 亚洲第一区视频在线观看 |