边框详讲---CSS必备的盒子模型知识!

盒子模型

 
盒子模型的四个部分:内容区、边框,内边距,外边距;前三者共同决定盒子可见框的大小。
 
边框
 
为元素设置边框
 
 
  .box1{
    
    width:100px;
    height:100px;
    background-color red;
    /*设置盒子内容区宽高及颜色。*/
     
    border-width:10px;
    border-color:yellow;
    border-style:solid;
    /*设置边框,三个样式缺一不可,缺了就直接不显示边框。*/
   }

 

 border-width
 
    使用border-width可以分别指定四个边框的宽度。
    
        指定四个值:按顺时针设置;
        
        指定三个值:分别设置给上 左右 下;
        
        指定两个值:分别设置给上下 左右;
        
        指定一个值:四边全为这个值。
        
        border-width:10px 20px 30px 40px;
        
        /*则上边框为10px,右边框为20px,以此类推*。/
        
        //方便起见,此规则自定义为“4321”。
  
  //题外话:如果你也知道3421...hhh
 
        
 border-color
    
    原理同4321有:
    
    border-color:red blue green;
    
    /*则上边框为红色,左右边框为蓝色,下边框为绿色。*/
 
 
 border-style
 
使用border-style来设置边框样式。
 
    可选值: none  默认值,没有边框;
    
    ​        solid   实线;
    
    ​        dotted  点状;
    
            dashed  虚线;
    
            double  双线;
    
        border-style同4321有:
        
        border-style:solid dotted;``
        
        /*上下边框为实线,左右边框为点状。*/
 
    
border   边框的简写形式
 
通过它可设置四个边框的样式、宽度、颜色(顺序无要求)。
 
    boeder:red solid 10px;
    
    /*这对四个边起作用。*/
    
    
border-top   border-bottom   border-right  border-left可单独用来设置四边。
 
border:red solid 10px;
 
border-top:yellow solid 20px;
 
/*除了上边框为黄色实线20px,其余三边均为红色实线10px*。/
 
 
border:red solid 10px;
 
border-top:none;
 
/*常用的去除不要的边的方法。*/
 
 
内边距
 
内边距指盒子的内容区与盒子边框之间的宽度。
 
内边距会影响可见框的大小;
 
元素的背景会延伸到内边距;
 
​    即如果给元素添加背景,背景会应用于内容和内边距组成的区域。
 
 
可通过padding-top padding-bottom  padding-right  padding-left来单独设置四边之一。
 
 
<style type="text/css">   
  .box1{
      width:100px;
      height:100px;
  }
  .box2{
      width:100%;     /*创建子元素box2来占满父元素box1的内容区,
      height:100%;    *注意:不占内边距*/
  }
</style>
 
 
外边距
 
外边距指当前盒子与其他盒子之间的距离;
 
不影响可见框的大小,但影响盒子的位置;
 
有四个方向的外边距:margin-top  margin-bottom  margin-right  margin-left  ;
 
    设置上、左边距时,会改变盒子自身的位置;
    
    设置下、右边距时,则会改变其他盒子的位置;
    
 
margin可设置auto;
 
  若只指定左/右外边距的margin为auto,
 
​       则会将外边距设置为最大值;
 
  若垂直方向设置为auto,则外边距默认为0;
 
​       即垂直方向的盒子会紧挨在一起。
 
  常用的使元素自动在父元素中居中的方法:
 
​       将left和right同时设置为auto。
 
 
margin   外边距的简写形式
 
    同样符合“4321方向规则”
    
    margin: 0  auto;
    
    /*将上下外边距设置为0,将左右外边距设置为auto,即这也是居中的写法。*/
 
 
垂直外边距的重叠
 
在网页中垂直方向的相邻外边距会发生外边距的重叠。
 
外边距的重叠指的是兄弟元素之间的相邻外边距会取最大值。
 
​     假设盒1和盒2为垂直方向的相邻兄弟元素,
 
​        a、给盒1设置底面外边距为100px,给盒2设置顶部外边距为100px。
 
​              那么两个盒子之间的效果还是100px。
 
​        b、把盒1设置底面外边距为100px,盒2的顶部外边距设置为200px,
 
​              那么两个盒子之间的距离就变成了200px(取最大值)。
 
 
 
若父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素。
 
​       即给子元素设置上外边距为100px时,子元素和父元素保持相对位置一起下移100px。
 
解决途径:
 
    法一:给父元素设置上边框,把父子隔开;
    
    法二:把父元素的内边距设置成 “能使子元素下移到你想要位置 ”的数值。
 
 
 
常用去除浏览器默认样式的代码
 
    *{
    
        margin:0;
        
        padding:0;
    
    }
 
 内联元素的盒模型
 
    内联元素不能设置width和height;
    
    能设置水平方向的内边距,也能设置垂直方向的,
    
    但垂直方向的内边距不会影响页面的布局(不会挤掉,而是覆盖);
    
    能设置边框,水平、垂直效果同“内边距”;
    
    支持水平方向的外边距,不支持垂直方向的。
    
 
display
 
可通过display样式来修改,将一个内联元素转化为块元素。
 
​   可选值:inline  将一个元素作为内敛元素显示;
 
​            block   将一个元素作为块元素显示;
 
​            inline-block  将一个元素转化为内联元素,使其既有内联元素的特点又有块元素的特点;
 
​                             既可设置宽高,又不会独占一行。【典型:image】
 
​            none:不显示元素,且元素在页面中也不会继续占有位置。
 
 
visibility
 
通过visibility来设置元素的隐藏和显示的状态。
 
​   可选值:visible  默认值,元素默认在页面显示;
 
​              hidden 元素会隐藏,但在页面中继续占有位置(显示空白)。
 
 
overflow
 
父元素默认将溢出内容在父元素外显示。
 
通过overflow可设置父元素如何处理溢出内容。
 
​   可选值:visible 默认值  不对一处内容处理;
 
​             hidden  溢出内容会被修剪,即不显示;
 
​             scroll   为父元素添加滚动条,通过滚动条可查看完整内容,
 
​                         该属性不管内容个是否溢出,都会添加水平和垂直方向的滚动条;
 
             auto     会根据需求自动添加滚动条。
 
posted @ 2020-03-08 00:09  前端老鸟  阅读(324)  评论(0编辑  收藏  举报