Beware of box model size (留心盒子模型大小)

文章為csslint中文版譯文,點擊原文可查看英文版,如遇到翻譯錯誤或錯別字啥的,請留言指出~ 譯文內容不定期更新~ 返回目錄

盒子模型是CSS當中最常誤解的內容之一。"盒子模型 (Box model)"會參考一系列盒子屬性來最終確定元素的顯示。盒子的最里層為 內容。內容被內邊距包裹,內邊距之外再由邊框包裹。盒子最終的寬度也就由以上的屬性相互影響,是不是有些小困惑。來,看下面的例子:

.mybox {
    border: 1px solid black;
    padding: 5px;
    width: 100px;
}

新手可能會覺得擁有mybox類的元素寬度為100像素。但實際上呢,寬度是112像素,這是因為寬度最終由 內容 內邊距 邊框相加而得。當開發人考慮到以上屬性組合時,也會因為不同的想法行為產生錯誤。

通過將box-sizing屬性值設置為border-box,可以使絕大多數游覽器(現代游覽器)遵循 寬高是 元素本身的大小,例子如下:

.mybox {
    box-sizing: border-box;
    border: 1px solid black;
    padding: 5px;
    width: 100px;
}

那么現在,這個擁有mybox類的元素,實際寬度就為100像素了,內邊距與邊框 將占據其中的空間,剩下的88像素將是內容的寬度.

規則詳情

規則 ID: box-model

此規則 意在消除潛在的盒子模型大小問題。因此,規則將在以下情況出現警告:

1.width被與border,border-left,border-right,padding,padding-left,padding-right屬性同時使用時

2.height被與border,border-top,border-bottom,padding,padding-top,padding-bottom屬性同時使用時

如果box-sizing屬性已指定,則假定你已非常清楚盒子模型的規則,以上的情況,此規則將不會出現警告。

以下的例子將會出現警告:

/* width and border */
.mybox {
    border: 1px solid black;
    width: 100px;
}

以下的例子將 不會 出現警告:

/* width and border with box-sizing */
.mybox {
    box-sizing: border-box;
    border: 1px solid black;
    width: 100px;
}

/* width and border-top */
.mybox {
    border-top: 1px solid black;
    width: 100px;
}

/* height and border-top of none */
.mybox {
    border-top: none;
    height: 100px;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,815評論 1 92
  • 移動開發基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,521評論 0 6
  • 閱讀目錄移動開發基本知識點 calc基本用法box-sizing的理解及使用理解display:box的布局理解f...
    張憲宇閱讀 1,568評論 0 1
  • 一.邊框 (上) 1.什么邊框? 邊框就是環繞在標簽寬度和高度周圍的線條 2.邊框屬性的格式 2.1連寫(同時設置...
    壹點微塵閱讀 367評論 0 0
  • 引言 這次給大家帶來了CSS-盒子模型部分的筆記,大家一同交流?? 認識盒子模型之前,先來了解一下CSS元素的分類吧...
    zhaolion閱讀 4,338評論 9 85