CSS

CSS3盒模型

字號+ 編輯: Snake 修訂: 德玛西亚 來源: 慕课网 2023-09-08 我要說兩句(0)

在講CSS布局之前,先了解一些知識,在CSS中,html中的標簽元素大體被分爲三種不同的類型:塊狀元素、内聯元素(又叫行内元素)和内聯塊狀元素。然後再學習CSS3盒模型!

12-1 元素分類

在講CSS布局之前,先了解一些知識,在CSS中,html中的標簽元素大體被分爲三種不同的類型:塊狀元素、内聯元素(又叫行内元素)和内聯塊狀元素。

  • 常用的塊狀元素有:

<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
  • 常用的内聯元素有:

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
  • 常用的内聯塊狀元素有:

<img>、<input>

12-2 塊級元素

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

設置display:block就是將元素顯示爲塊級元素。

如下代碼就是將内聯元素a轉換爲塊狀元素,從而使a元素具有塊狀元素特點。

a{
    display:block;
}

塊級元素特點:

1、每個塊級元素都從新的一行開始,並且其後的元素也另起一行。

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

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

12-3 内聯元素

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

當然塊狀元素也可以通過代碼display:inline將元素設置爲内聯元素。

如下代碼就是將塊狀元素div轉換爲内聯元素,從而使 div 元素具有内聯元素特點。

div{
  display:inline;
 }
......

<div>我要變成内聯元素</div>

内聯元素特點:

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

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

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

内聯元素之間有一個間距問題

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>行内元素標簽</title>
    <style type="text/css">
    a,
    span,
    em {
        background: pink;
        /*設置a、span、em標簽背景顔色都爲粉色*/
    }
    </style>
</head>
<body>
    <a href="http://www.baidu.com">百度</a>
    <a href="http://www.wkwkk.com">聞課</a>
    <span>33333</span>
    <span>44444</span><em>555555</em>
</body>
</html>

333333333.png

12-4 内聯塊狀元素

内聯塊狀元素(inline-block)就是同時具備内聯元素、塊狀元素的特點,代碼display:inline-block;就是將元素設置爲内聯塊狀元素。(css2.1新增),<img>、<input>標簽就是這種内聯塊狀標簽。

inline-block 元素特點:

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

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

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>内聯塊狀元素</title>
        <style type="text/css">
            a{
        display:inline-block;
        width:30px;
        height:30px;
        background:pink;
        text-align:center;
        }
        </style>
    </head>
    <body>
        <a>1</a>
        <a>2</a>
        <a>3</a>
        <a>4</a>
    </body>
</html>

圖片4.png

12-5 none不佔據位置

none設置此元素不會被顯示,當想要元素隱藏的時候可以使用此值。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>none</title>
    <style type="text/css">
    p {
        display:none;
    }
    </style>
</head>
<body>
    <p>我愛學習</p>
</body>
</html>

運行後,文字不會顯示出來!

12-6 什麽是盒模型

<div><ul><ol><p><h><table>等塊級元素,都具備盒子模型的特征。

 圖片6.jpg

12-7 寬度和高度

盒模型寬度和高度和我們平常所說的物體的寬度和高度理解是不一樣的,css内定義的寬(width)和高(height),指的是填充以裡的内容範圍。

因此一個元素實際寬度:

(盒子的寬度)=左邊界+左邊框+左填充+内容寬度+右填充+右邊框+右邊界。

 圖片7.jpg

元素的高度也是同理。

css代碼:

div{
  width:200px;
  padding:20px;
  border:1px solid red;
  margin:10px;    
}

html代碼:

<body>
   <div>文本内容</div>
</body>

元素的實際長度爲:10px+1px+20px+200px+20px+1px+10px=262px。在chrome瀏覽器下可查看元素盒模型,如下圖:

 圖片8.jpg

12-8 背景色

網頁中的標簽不論是行内元素還是塊狀元素都可以給它設置一個背景色。

爲標簽設置背景顔色可以使background-color:顔色值來實現。

div{
    background-color:red;
}//爲塊狀元素設置
a{
    background-color:green;
}//爲行内元素設置
 <!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>背景色</title>
        <style type="text/css">
            div{
                background-color:red;
            }
            a{
                background:yellow;
            }
        </style>
    </head>
    <body>
        <div>
            <h1>聞課</h1>
            <p>聞課<a href="#">展示</a>平台</p>
        </div>
    </body>
</html>

4.png

12-9 使用border爲盒子添加邊框(一)

盒子模型的邊框就是圍繞著内容及補白的線,這條線你可以設置它的粗細、樣式和顔色(邊框三個屬性)。

如下面代碼爲 div 來設置邊框粗細爲 2px、樣式爲實心的、顔色爲紅色的邊框:

div{
  border:2px  solid  red;
}

上面是 border 代碼的縮寫形式,可以分開寫:

div{
  border-width:2px;
  border-style:solid;
  border-color:red;
}

注意:

1、border-style(邊框樣式)常見樣式有:

dashed(虛線)| dotted(點線)| solid(實線)。

2、border-color(邊框顔色)中的顔色可設置爲十六進制顔色,

如:border-color:#888;//前面的井號不要忘掉。

3、border-width(邊框寬度)中的寬度也可以設置爲:

thin | medium | thick(不是很常用),最常還是用像素(px)。

<!DOCYTPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>邊框</title>
        <style type="text/css">
            p{
                border:2px dotted #ccc;
            }
        </style>
    </head>
    <body>
        <h1>勇氣</h1>
        <p>以前我是一個膽小鬼! </p>
        <p>現在我超越自己,做勇敢的人!</p>
    </body>
</html>

3.png

12-10 使用border爲盒子添加邊框(二)

如果想爲p標簽單獨設置下邊框,其它三邊不設置邊框樣式,css 樣式中允許只爲一個方向的邊框設置樣式:

div{
    border-bottom:1px solid red;
}

同樣可以使用下面代碼實現其它三邊(上、右、左)邊框的設置:

border-top:1px solid red;
border-right:1px solid red;
border-left:1px solid red;
<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
    <title>邊框</title>
    <style type="text/css">
    li {
       border-bottom:1px dotted red; 
    }
    </style>
</head>
<body>
    <ul>
        <li>別讓不會說話害了你</li>
        <li>二十七八嵗就應該有的見識</li>
        <li>別讓不好意思害了你</li>
    </ul>
</body>
</html>

5.png 

12-11 使用border-radius設置圓角

元素邊框的圓角效果可以使用border-radius屬性來設置。圓角可分爲左上、右上、右下、左下。如下代碼:

div{
    border-radius: 20px 10px 15px 30px;
}

效果:

 圖片12.jpg

也可以分開寫:

div{
    border-top-left-radius: 20px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 30px;
}

如果四個圓角都爲10px;可以這麽寫:

div{ 
    border-radius:10px;
}

如果左上角和右下角圓角效果一樣爲10px,右上角和左下角圓角一樣爲20px,可以這麽寫:

div{ 
    border-radius:10px 20px;
}

需要特別注意的:一個正方形,當設置圓角效果值爲元素寬度一半時,顯示效果爲圓形。例如:

div {
  width: 200px;
  height: 200px;
  border: 5px solid red;
  border-radius: 100px;
}

效果:

 圖片13.jpg

也可以寫爲百分比50%

div {
  width: 200px;
  height: 200px;
  border: 5px solid red;
  border-radius: 100px;
}

12-12 使用padding爲盒子設置内邊距(填充)

元素内容與邊框之間是可以設置距離的,稱之爲“内邊距(填充)”。填充也可分爲上、右、下、左(順時針)。

div{
    padding:20px 10px 15px 30px;
}

效果:

 圖片14.jpg

順序一定不要搞混。可以分開寫上面代碼:

div{
  padding-top:20px;
  padding-right:10px;
  padding-bottom:15px;
  padding-left:30px;
}

如果上、右、下、左的填充都爲10px;可以這麽寫

div{
    padding:10px;
}

如果上下填充一樣爲10px,左右一樣爲20px,可以這麽寫:

div{
    padding:10px 20px;
}

12-13 使用margin爲盒子設置外邊距(邊界)

元素與其它元素之間的距離可以使用邊界(margin)來設置。邊界也是可分爲上、右、下、左。如下代碼:

div{
    margin:20px 10px 15px 30px;
}

效果:

 圖片15.jpg

也可以分開寫:

div{
  margin-top:20px;
  margin-right:10px;
  margin-bottom:15px;
  margin-left:30px;
}

如果上右下左的邊界都爲10px;可以這麽寫:

div{ 
    margin:10px;
}

如果上下邊界一樣爲10px,左右一樣爲20px,可以這麽寫:

div{ 
    margin:10px 20px;
}

padding和margin的區別:padding在邊框裡,margin在邊框外。

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 多個高度相同, 屬性inline-block的div,有的div沒有内容而有的div有内容,有内容的會下沉?

  • 讓整個網頁全局變成黑白色調的css代碼

  • CSS生成内容

  • CSS3外輪廓屬性

我要說說
網上賓友點評