1. 程式人生 > >前端初步預習(六)------盒子模型之border

前端初步預習(六)------盒子模型之border

結構 search 藍色邊框 長度 自助餐 wid 等於 搜索 mes

盒子模型之border

  邊框相關屬性

  border-width 控制邊框的大小  用長度賦值

  border-style 控制邊框的樣式  none 沒有邊框  solid 實線  dotted 點線  dashed 虛線  double 雙線條

  border-color 控制邊框的顏色  四種顏色表示法

  border-top 控制上邊框的樣式  

  border-right 控制右邊框的樣式  

  border-bottom 控制下邊框的樣式  

  border-left 控制左邊框的樣式

  其實四條邊也是復合屬性:

  border-top可以分成這麽幾個屬性:

border-top-color  border-top-width  border-top-style  (剩下三條邊以此類推)

  邊框連寫

  理論上:沒有順序,皆可省略

  案例:表格邊框、四彩盒子、表單邊框

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    table {
      width: 800px;
      height: 300px
; border: 1px solid #000; border-collapse: collapse;/*去掉邊框:細線*/ } th,td { border: 1px solid #000; } </style> </head> <body> <table> <caption><h3>今日小說排行榜</h3></caption> <thead> <tr> <th>排名</th> <th>關鍵詞</th> <th>趨勢</th> <th>今日搜索</th> <th>最近七日</th> <th>相關鏈接</th> </tr> </thead> <tbody> <tr > <td >1</td> <td >鬼吹燈</td> <td ><img src="img/up.jpg" width="13" height="11" /></td> <td >65589</td> <td >45</td> <td ><a href="#">貼吧</a>&nbsp;<a href="#">圖片</a>&nbsp;<a href="#">百科</a></td> </tr> <tr> <td>2</td> <td>盜墓筆記</td> <td><img src="img/down.jpg" width="13" height="11" /></td> <td>1</td> <td>456</td> <td><a href="#">貼吧</a>&nbsp;<a href="#">圖片</a>&nbsp;<a href="#">百科</a></td> </tr> </tbody> </table> </body> </html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            width: 500px;
            height: 500px;
            background-color: #999;
            border-top: 10px solid red;
            border-right: 15px dashed blue;
            border-bottom: 20px dotted yellow;
            border-left: 25px double green;
        }
    </style>
</head>
<body>
<!-- 四彩盒子 -->
    <div></div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
  input{
      width:150px;
      height:18px;
      outline-style:none;  /*取消藍色邊框*/
      
      }
.username{
    border:1px dashed #ccc;
    background-color:#E7EEFE;
    
    color:blue;
    }
.username:focus{   /*獲得焦點的狀態*/
    border:1px dashed pink;
    background-color:#FFF7FB;
    color:pink;
    
    }
.email{
    border:0 none;
    border-bottom:1px dashed red;
    }
.search{
    border:1px solid #ccc;
    color:#ccc;
    background:url(search.png) no-repeat right center;
    }
</style>
</head>

<body>
用戶名: <input type="text" class="username" /><br />
<br />
郵 箱: <input type="text"  class="email"/><br />
<br />
<label for="txt">搜索一下</label>: <input type="text" id="txt"  class="search" value="請輸入..." />

</body>
</html>

  盒子模型之padding

  內邊距:控制內容和邊框之間的距離

  padding屬性和padding連寫

  padding-top 上內邊距  padding-right 右內邊距  padding-bottom 下內邊距  padding-left 左內邊距

  四種連寫

  1 只寫一個值  padding : 10px;  代表四個方向都是第一個數字

  2 寫兩個  padding : 10px 20px;  表示:上下內邊距等於第一個數字,左右內邊距等於第二個數字

  3 寫三個  padding: 10px 20px 30px;  表示:上內邊距=第一個數字,左右內邊距等於第二個數字,下內邊距等於第三個數字

  4 寫四個  padding: 10px 20px 30px 40px;  表示:上右下左分別對應各個數字

  paddingborder對盒子的影響

  設置paddingborder會對盒子的實際大小造成影響

  盒子的實際寬度 = 設置在css裏的寬度 + 水平的paddding + 水平的border

  盒子的實際高度 = 設置的高度 + 垂直的padding + 垂直的border

  但是是要註意:

  如果是存在父子關系的時候

  如果子盒子沒有設置寬度,並且子盒子的padding+border沒有超過父盒子的寬度,子盒子的寬度是不會改變的

  如果子盒子的padding+border超過父盒子的寬度,會被paddingborder撐開寬度

  案例:

  padding的作用、padding計算題

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            border: 1px solid #000;
            width: 500px;
            height: 500px;
            padding: 10px;
        }
    </style>
</head>
<body>
    <div>
        我是盒子中的內容
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        /*問題:大盒子寬為500px,高為300px,
                在大盒子正中心有一個小盒子
                小盒子寬為300px,高為150px,
                請用padding將結構寫出來
        */
        .father {
            width: 300px;
            height: 150px;
            padding: 75px 100px;
            background-color: red;
        }
        .son {
            width: 300px;
            height: 150px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

  盒子模型之margin

  外邊距屬性和外邊距連寫

  margin-top 控制盒子的上外邊距

  margin-right 控制盒子的右外邊距

  margin-bottom 控制盒子的下外邊距

  margin-left 控制盒子的左外邊距

  margin的連寫和padding是一樣的

  垂直塌陷(合並)現象

  當兩個盒子垂直分布,同時給兩個盒子設置了相對的margin值,兩個盒子之間的實際距離,取決於連個margin值中的最大

  包含塌陷(合並)現象

  當給子盒子設置margin-top的時候,有可能會把父盒子一起帶跑

  如何解決:

  1給父盒子設置邊框

  2、給父盒子設置overflowhidden

  案例:列表顯示

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">

        <style>
             ul{
                  list-style:none;
             }
             ul li{
                  background:url(li.gif) no-repeat  left 4px;

                 padding-left: 25px;

             }
             li a{
                  text-decoration: none;
             }

             a:hover{
                 color: #9E7878;
                 text-decoration: underline;
             }
        </style>
    </head>
    <body>

         <ul>
             <li><a href="#">大明星:姜潮魔性拜年道晚安</a></li>
             <li><a href="#">軟萌正太徐浩演繹《小幸運》</a></li>
             <li><a href="#">漫威絕逼好看的電影鏡頭合集</a></li>
             <li><a href="#">從沒見過這麽搞笑的祖孫組合</a></li>
             <li><a href="#">史上最容易挨揍的自助餐吃法</a></li>
         </ul>
    </body>
</html>

 給行內元素設置marginpadding的問題

  給行內元素設置margin-topmargin-bottom沒有效果

  給行內元素設置垂直padding的時候,能夠增加高度,位置不會依賴於padding撐開的位置

  以後給行內元素控制位置,不要用垂直的paddingmargin

    我們通常使用行高控制行內元素的垂直位置

  margin:0 auto;的秘密

  margin-leftmaring-right同時是auto的時候,會讓子元素(塊級)居中顯示

  能將設置了寬度的塊級元素相對於其父元素水平居中

  通常會使用它來將頁面的版心居中

  將行內元素和行內塊級元素居中

  給容器設置text-aligncenter

前端初步預習(六)------盒子模型之border