zoukankan      html  css  js  c++  java
  • 盒子模型之CSS3学习--边框(Border)

    盒子模型之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

  • 相关阅读:
    The model backing the 'XXX' context has changed 错误
    MVC5+EF6 入门完整教程四
    MVC5 + EF6 完整入门教程三
    MVC5 + EF6 入门完整教程二
    每日总结9.11
    setTextColor的几个注意事项
    selector使用注意事项
    每日总结9.9
    android popWindow使用注意事项
    有关TextView的drawaleTop属性
  • 原文地址:https://www.cnblogs.com/010101-/p/9777369.html
Copyright © 2011-2022 走看看