zoukankan      html  css  js  c++  java
  • CSS盒子模型

    概述:盒子模型属于CSS 三大模块之一,分别是:盒子模型、浮动、定位

    一、盒子边框之border

     1. 语法描述

    语法: border-width
          border-style  设置边框样式
              none: 没有边框
              solid: 边框为单实线 (最为常用)
              dashed: 边框为虚线
              dotted: 边框为点线
              double: 边框为双实线
          border-color
    综合写法:border: 1px blue solid;

     

    2. 对表格知识小补充之处理表格的细线边框

      border-collapse: collapse;  合并两个相邻单元格的边框

    3.圆形边距border-radius

    border-radius: 100px; 一个参数代表上下左右
    border-radius: 10px 40px;  /*左上角和右下角是10px 右上角和左下角是40 (对角线)*/
    border-radius: 10px 40px 80px;  /*左上角是10px 右上角和左下角是40  右下角是80(按照顺时针走的)*/
    border-radius: 10px 40px 80px 100px;  /*左上角是10px 右上角40 右下角是80  左下角是100(按照顺时针走的)*/

    二、内边距padding

    1. padding用法

    padding 属性用于设置内边距,指边框与内容之间的距离
    padding-top
    padding-right
    padding-bottom
    padding-left
    
    padding: 20px padding如果只写一个值表示上下左右都是20
    padding:10px 30px; 上下10 左右30
    padding: 10px 30px 50px; 上10 左右30 下50
    padding: 10px 20px 30px 40px; 上右下左 (顺时针)
    
    内边距(margin)
    顺序跟margin一样 一般不设置右边 (因为看不出效果)
    
    设置外边距盒子居中 (需要满足的条件)
    1.必须是块级元素
    2.盒子必须指定宽度
    然后给盒子左右的边距都设置为auto, 就可以实现了。

    2.容易混淆点

      2.1 文字居中和盒子居中

        文字居中(text-align: center;)
        盒子居中 margin: 0 auto;

      2.2 插入图片和背景图片的调整混淆

    调整图片大小
    section img {
                 400px;
                height: 300px;
            }
    背景图片更改大小
    background: #FFF url(image/denglun.jpg) 30 50 no-repeat;
                background-size: 200px 210px;
    
    背景图片不占位置
    
    3. 一般情况下,背景图片适合做一些小图标,产品展示就用插入图片

      

      2.3 清楚原生盒子自带的padding和margin  (主要为了浏览器之间的兼容,以及更好的调整样式)   

    body,ul,li {
                margin: 0;
                padding: 0;    
            }

      

      2.4 注意事项及盒子塌陷解决方法

    行内元素只有左右外边距  没有上下
    在IE6一下的版本margin是不生效的 其它浏览器效果也很差
    所以尽量不给行内元素指定上下内外边距就好了
    
    外边距合并
    出现在垂直的块级盒子 以最大的边距为准
    解决方案,避免 只给一个盒子设置边距
    
    塌陷原因
    对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中年较大者,即使父元素上外边距为0 
    也会发生合并 俗称塌陷 盒子塌陷解决方案: 1. 可以为父元素定义1像素的上边框或上内边距 2. 可以为元素添加overflow:hidden border: 1px solid red; 解决外边距合并的问题 padding: 1px; overflow: hidden; /* 触发BFC*/

      

      2.5 盒子模型的高度和宽度计算

    外盒尺寸(元素空间尺寸)
        空间尺寸 width + border + padding + margin
    
    内盒尺寸(元素大小)
        width + border + padding
    以上区别在于margin
    
    ps:padding 不会影响盒子大小的两种情况
    1.如果一个盒子没有设置宽度 设置padding就不会影响宽度
    2.继承下来的

      

      2.6 调整盒子布局时的顺序以及css新增属性

    盒子模型稳定性
    width > padding > margin
    
    cssd新增属性
    box-sizing盒模型,可指定:
    content-box : 以前的那种 会让盒子变大
    border-box: 除了margin以外 padding和border 都是包含在盒子里面的 不会撑开盒子。

      

      2.7 小知识点补充之取消li标签的点

    ul {
                list-style: none;  /*那些已经学习过排序*/
        }

    三、盒子阴影 (比文字阴影多了两个属性)

    h-shadow 水平阴影 必须 允许负值
    b-shadow 垂直阴影 必须 允许负值
    blur     模糊距离 可选
    spread   阴影的尺寸
    color    阴影的颜色
    inset    将外部(outset)阴影改为内部阴影
    box-shadow: 5px 5px 3px 4px rgba(0,0,0, .4) inset;
    如果是外面阴影  不用写否则会不生效

    四、文档流介绍

    普通流(标准流)、浮动、定位
    
    普通流:一个网页标内标签元素 自上而下
    浮动:指设置了浮动属性的元素会脱离标准普通流的控制 float
        属性值 left right none   默认是左浮动
        浮动首先创建包含块的概念(包裹)也就是说浮动的元素是找离它最近的腹肌元素对齐 但是不会超出内边距的范围,也就是说padding和border的距离
    小结:一个父盒子中的子盒子,如果其中一个子级有浮动,则其他也需要浮动 这样才能一行对齐
    
    浮动影响盒子显示模式
    如果块级元素添加浮动之后,具有行内块的特性
    元素大小完全取决于定义的大小,默认是内容的大小
    
    总结:浮动的目的就是为了让多个块级元素在同一行显示

    五、版心和布局流程

    版心和布局流程
    版心指网页中主题内容所在的区域,一般在浏览器窗口中水平居中显示,常见的值969px 980px  1000px 1200px
    
    布局流程
    1.确定页面的版心(可视区)
    2.分页页面中的行模块,以及每个行模块中的列模块
    3.制作HTML页面,css文件
    4.css初始化,然后开始运用盒子模型的原理,通过DIV+CSS布局来控制网页的各个模块

     

  • 相关阅读:
    Swift # Apple Pay集成
    GitHub Top 100 简介
    一些常用算法
    CocoaPods 建立私有仓库
    安装 CocoaPods & Alcatraz
    iOS程序 # 启动过程
    Apache & WebDav 配置(二)
    SVN & Git (二)
    SVN & Git (一)
    poj 3169 Layout (差分约束)
  • 原文地址:https://www.cnblogs.com/guniang/p/11904764.html
Copyright © 2011-2022 走看看