div寬度設置width:100%后再設置padding或margin超出父元素的解決辦法
一、總結
一句話總結:直接加上box-sizing:border-box;即可解決上述問題。
1、box-sizing
的三個屬性分別是什么?
根據意思來記很好記的
值一、content-box (向外邊框)
值二、border-box (向內邊框)
值三、inherit (繼承爸爸)
2、設置邊框的樣式用什么屬性?
box-sizing
box-sizing:border-box;
二、div寬度設置width:100%后再設置padding或margin超出父元素的解決辦法
1、相關知識
語法
1
|
box-sizing: content-box|border-box|inherit;
|
值一、content-box (向外邊框)
這是由 CSS2.1 規定的寬度高度行為。
寬度和高度分別應用到元素的內容框。
在寬度和高度之外繪制元素的內邊距和邊框。
值二、border-box (向內邊框)
為元素設定的寬度和高度決定了元素的邊框盒。
就是說,為元素指定的任何內邊距和邊框都將在已設定的寬度和高度內進行繪制。
通過從已設定的寬度和高度分別減去邊框和內邊距才能得到內容的寬度和高度。
值三、inherit (繼承爸爸)
規定應從父元素繼承 box-sizing 屬性的值。
2、代碼
<!DOCTYPE html>
<
html
>
<
head
>
<
style
>
div.container
{
width:100%;
border:1em solid;
padding:15px;
box-sizing:border-box;
}
div.box
{
box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
width:100%;
border:1em solid red;
float:left;
padding:15px;
}
</
style
>
</
head
>
<
body
>
<
div
class
=
"container"
>
<
div
class
=
"box"
>這個 div 占據左半部分。</
div
>
</
div
>
</
body
>
</
html
>
|