zoukankan      html  css  js  c++  java
  • 盒子模型(CSS重点)

    其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都是细节。要求这三部分,无论如何也要学的非常精通。

    所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。

    盒子模型(Box Model)

    所有的文档元素(标签)都会生成一个矩形框,我们成为元素框(element box),它描述了一个文档元素在网页布局汇总所占的位置大小。因此,每个盒子除了有自己大小和位置外,还影响着其他盒子的大小和位置。

    盒子边框(border)

    语法:

    border : border-width || border-style || border-color 

    边框属性—设置边框样式(border-style)

    边框样式用于定义页面中边框的风格,常用属性值如下:

    none:没有边框即忽略所有边框的宽度(默认值)

    solid:边框为单实线(最为常用的)

    dashed:边框为虚线  

    dotted:边框为点线

    double:边框为双实线

     

     <style>
            div {
                /* 盒子宽高 */
                 300px;
                height: 200px;
                /* 边框粗细 */
                /* border- 2.5px; */
                /* 边框颜色 */
                /* border-color: #ffc0cb; */
                /* 实线边框 */
                /* border-style: solid; */
                /* 点线边框 */
                /* border-style: dotted; */
                /* 虚线边框 */
                /* border-style: dashed; */
                /* 边框简写 */
                border: 2px solid pink;
                /* 设置上边框为蓝色,其余为粉色  利用层叠性 */
                border-top: 2px solid skyblue;
                /* 设置下边框为虚线 */
                border-bottom: 2px dashed pink;

            }
        </style>
     

    盒子边框写法总结表

       
    设置内容 样式属性 常用属性值
    上边框 border-top-style:样式; border-top-宽度;border-top-color:颜色;border-top:宽度 样式 颜色;  
    下边框 border-bottom-style:样式;border- bottom-宽度;border- bottom-color:颜色;border-bottom:宽度 样式 颜色;  
    左边框 border-left-style:样式; border-left-宽度;border-left-color:颜色;border-left:宽度 样式 颜色;  
    右边框 border-right-style:样式;border-right-宽度;border-right-color:颜色;border-right:宽度 样式 颜色;  
    样式综合设置 border-style:上边 [右边 下边 左边]; none无(默认)、solid单实线、dashed虚线、dotted点线、double双实线
    宽度综合设置 border-上边 [右边 下边 左边]; 像素值
    颜色综合设置 border-color:上边 [右边 下边 左边]; 颜色值、#十六进制、rgb(r,g,b)、rgb(r%,g%,b%)
    边框综合设置 border:四边宽度 四边样式 四边颜色;  

    表格的细线边框

    以前学过的html表格边框很粗,这里只需要CSS一句话就可以美观起来。

    table{ border-collapse:collapse; } collapse 单词是合并的意思

    border-collapse:collapse; 表示边框合并在一起。

    圆角边框(CSS3)

    语法格式:

    border-radius: 左上角  右上角  右下角  左下角;

     

    <style>
            .yuan-xing {
                 200px;
                height: 200px;
                pink;
                /* 设置半径为20的圆弧 */
                /* border-radius: 20px; */
                /* 设置半径为100 的圆弧(圆) */
                /* border-radius: 100px; */
                /* 半径为高度和宽度的一半 */
                border-radius: 50%;
            }

            .juxing {
                 300px;
                height: 100px;
                pink;
                /* 半径为高度的一半 */
                border-radius: 50px;
                /* 椭圆 */
                /* border-radius: 50%; */
            }

            .butong {
                 200px;
                height: 200px;
                pink;
                /* 两个值的圆角 */
                /* border-radius: 20px 40px; */
                /* 三个值的圆角 */
                /* border-radius: 10px 30px 60px; */
                /* 四个值的圆角 */
                /* border-radius: 10px 30px 60px 80px; */
                /* 一个圆角 */
                border-top-left-radius: 20px;
            }
        </style>

    内边距(padding)

    padding属性用于设置内边距。 是指 边框与内容之间的距离。

     

    padding-top:上内边距

    padding-right:右内边距

    padding-bottom:下内边距

    padding-left:左内边距

    注意: 后面跟几个数值表示的意思是不一样的。

    值的个数表达意思
    1个值 padding:上下左右边距 比如padding: 3px; 表示上下左右都是3像素
    2个值 padding: 上下边距 左右边距 比如 padding: 3px 5px; 表示 上下3像素 左右 5像素
    3个值 padding:上边距 左右边距 下边距 比如 padding: 3px 5px 10px; 表示 上是3像素 左右是5像素 下是10像素
    4个值

    padding:上内边距 右内边距 下内边距 左内边距 比如: padding: 3px 5px 10px 15px; 表示 上3px 右是5px 下 10px 左15px 顺时针

     
     
    案例:
     
     <style>
            .nav {

                border-top: 3px solid #ff8500;
                border-bottom: 1px solid #edeef0;
                height: 41px;
                #fcfcfc;
            }

            .nav a {
                display: inline-block;
                text-decoration: none;
                font-size: 12px;
                color: #4c4c4c;
                line-height: 41px;
                padding: 0 10px;
            }

            .nav a:hover {
                #f1f1f1;
                color: #ff8500;
            }
        </style>
     

    外边距(margin)

    margin属性用于设置外边距。 设置外边距会在元素之间创建“空白”, 这段空白通常不能放置其他内容。

    margin-top:上外边距

    margin-right:右外边距

    margin-bottom:下外边距

    margin-left:上外边距

    margin:上外边距 右外边距 下外边距 左外边

    取值顺序跟内边距相同。

    外边距实现盒子居中

    可以让一个盒子实现水平居中,需要满足一下两个条件:

    1. 必须是块级元素。

    2. 盒子必须指定了宽度(width)

    然后就给左右的外边距都设置为auto,就可使块级元素水平居中。

    实际工作中常用这种方式进行网页布局,示例代码如下:

    .header{ 960px; margin:0 auto;}

    文字盒子居中图片和背景区别

    1. 文字水平居中是 text-align: center

    2. 盒子水平居中 左右margin 改为 auto

    text-align: center; /*  文字居中水平 */
    margin: 10px auto;  /* 盒子水平居中 左右margin 改为 auto 就阔以了 */
    1. 插入图片 我们用的最多 比如产品展示类

    2. 背景图片我们一般用于小图标背景 或者 超大背景图片

    section img {
    200px;/* 插入图片更改大小 width 和 height */
    height: 210px;
    margin-top: 30px; /* 插入图片更改位置 可以用margin 或padding 盒模型 */
    margin-left: 50px; /* 插入当图片也是一个盒子 */
    }

    aside {
    400px;
    height: 400px;
    border: 1px solid purple;
    background: #fff url(images/sun.jpg) no-repeat;

    background-size: 200px 210px; /* 背景图片更改大小只能用 background-size */
    background-position: 30px 50px; /* 背景图片更该位置 用 background-position */
    }

    清除元素的默认内外边距

    为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距:

    * {
      padding:0;         /* 清除内边距 */
      margin:0;          /* 清除外边距 */
    }

    注意: 行内元素是只有左右外边距的,是没有上下外边距的。 内边距,在ie6等低版本浏览器也会有问题。

    我们尽量不要给行内元素指定上下的内外边距就好了。

    content宽度和高度

    使用宽度属性width和高度属性height可以对盒子的大小进行控制。

    width和height的属性值可以为不同单位的数值或相对于父元素的百分比%,实际工作中最常用的是像素值。

    大多数浏览器,如Firefox、IE6及以上版本都采用了W3C规范,符合CSS规范的盒子模型的总宽度和总高度的计算原则是:

      /*外盒尺寸计算(元素空间尺寸)*/
    Element空间高度 = content height + padding + border + margin
    Element 空间宽度 = content width + padding + border + margin
    /*内盒尺寸计算(元素实际大小)*/
    Element Height = content height + padding + border (Height为内容高度)
    Element Width = content width + padding + border (Width为内容宽度)

    注意:

    1、宽度属性width和高度属性height仅适用于块级元素,对行内元素无效( img 标签和 input除外)。

    2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。

    3、如果一个盒子没有给定宽度/高度或者继承父亲的宽度/高度,则padding 不会影响本盒子大小

    盒子模型布局稳定性

    建议 优先使用 宽度 (width) 其次 使用内边距(padding) 再次 外边距(margin)。

      width >  padding  >   margin   

    原因:

    1. margin 会有外边距合并 还有 ie6下面margin 加倍的bug(讨厌)所以最后使用。

    2. padding 会影响盒子大小, 需要进行加减计算(麻烦) 其次使用。

    3. width 没有问题(嗨皮)我们经常使用宽度剩余法 高度剩余法来做。

    CSS3盒模型

    CSS3中可以通过box-sizing 来指定盒模型,即可指定为content-box、border-box,这样我们计算盒子大小的方式就发生了改变。

    可以分成两种情况:

    1、box-sizing: content-box 盒子大小为 width + padding + border  content-box:此值为其默认值,也就是传统盒模型,其让元素维持W3C的标准Box Mode

    2、box-sizing: border-box 盒子大小为 width 就是说 padding 和 border 是包含到width里面的

     

    移动端可以全部使用除CSS3盒子模型,PC端如果完全需要兼容,就用传统模式,如果不考虑兼容性,就选择CSS3盒模型

    盒子阴影

    语法格式:

    box-shadow:水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色  内/外阴影;

    1. 前两个属性是必须写的。其余的可以省略。

    2. 外阴影 (outset) 但是不能写 默认值

     

    div {
    200px;
    height: 200px;
    border: 10px solid red;
    /* box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4); */
    /* box-shadow:水平位置 垂直位置 模糊距离 阴影尺寸(影子大小) 阴影颜色 内/外阴影; */
    box-shadow: 0 15px 30px rgba(0, 0, 0, .4);

    }

  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/llanq123/p/13808321.html
Copyright © 2011-2022 走看看