CSS布局(盒模型,浮动,定位,动画效果)

  1. 元素在文档流中特点:

    	**- 块元素**
             - 块元素会在页面中独占一行(自上向下垂直排列)
              - 默认宽度是父元素的全部(会把父元素撑满)	
              - 默认高度是被内容撑开(子元素)
    
    
    
        **- 行内元素**
            - 行内元素不会独占页面的一行,只占自身的大小
            - 行内元素在页面中左向右水平排列,如果一行之中不能容纳下所有的行内元素
                则元素会换到第二行继续自左向右排列(书写习惯一致)
            - 行内元素的默认宽度和高度都是被内容撑开
    
  2. 盒子模型

    内容区(content),元素中的所有的子元素和文本内容都在内容区中排列  
                            width 设置内容区的宽度
                            height 设置内容区的高度       
    
    边框(border),边框属于盒子边缘,边框里边属于盒子内部
                        边框的宽度 border-width
                        边框的颜色 border-color
                        边框的样式 border-style
    内边距(padding)
                        - 内容区和边框之间的距离是内边距
                            padding-top
                            padding-right
                            padding-bottom
                            padding-left
     外边距(margin)
                        - 外边距不会影响盒子可见框的大小
                        - 但是外边距会影响盒子的位置
                        - 一共有四个方向的外边距:
                            margin-top
                                - 上外边距,设置一个正值,元素会向下移动
                            margin-right
                                - 默认情况下设置margin-right不会产生任何效果
                            margin-bottom
                        - 下外边距,设置一个正值,其下边的元素会向下移动
                    margin-left
                        - 左外边距,设置一个正值,元素会向右移动
    
                    - margin也可以设置负值,如果是负值则元素会向相反的方向移动
    
  3. overflow 属性
    使用 overflow 属性来设置父元素如何处理溢出的子元素

                可选值:
                    visible,默认值 子元素会从父元素中溢出,在父元素外部的位置显示
                    hidden 溢出内容将会被裁剪不会显示
                    scroll 生成两个滚动条,通过滚动条来查看完整的内容
                    auto 根据需要生成滚动条
    
  4. 行内元素的盒模型

    - 行内元素不支持设置宽度和高度
    - 行内元素可以设置padding,但是垂直方向padding不会影响页面的布局
    - 行内元素可以设置border,垂直方向的border不会影响页面的布局
    - 行内元素可以设置margin,垂直方向的margin不会影响布局
    
  5. box-sizing 用来设置盒子尺寸的计算方式(设置width和height的作用)

        可选值:
              content-box 默认值,宽度和高度用来设置内容区的大小
              border-box 宽度和高度用来设置整个盒子可见框的大小
               width 和 height 指的是内容区 和 内边距 和 边框的总大小
    
  6. box-shadow 用来设置元素的阴影效果,阴影不会影响页面布局

           第一个值 水平偏移量 设置阴影的水平位置 正值向右移动 负值向左移动
           第二个值 垂直偏移量 设置阴影的水平位置 正值向下移动 负值向上移动
           第三个值 阴影的模糊半径
           第四个值 阴影的颜色
    
  7. border-radius: 用来设置圆角 圆角设置的圆的半径大小

  8. 浮动:通过浮动可以使一个元素向其父元素的左侧或右侧移动

    	可选值:
              none 默认值 ,元素不浮动
              left 元素向左浮动
              right 元素向右浮动
    	**浮动的特点:**
               1、浮动元素会完全脱离文档流,不再占据文档流中的位置
               2、设置浮动以后元素会向父元素的左侧或右侧移动,
               3、浮动元素默认不会从父元素中移出
               4、浮动元素向左或向右移动时,不会超过它前边的其他浮动元素
               5、如果浮动元素的上边是一个没有浮动的块元素,则浮动元素无法上移
               6、浮动元素不会超过它上边的浮动的兄弟元素,最多最多就是和它一样高
    
  9. 元素设置浮动以后,将会从文档流中脱离,从文档流中脱离后,元素的一些特点也会发生变化

      **脱离文档流的特点:**
             块元素:
                 1、块元素不在独占页面的一行
                 2、脱离文档流以后,块元素的宽度和高度默认都被内容撑开
    
             行内元素:
                 行内元素脱离文档流以后会变成块元素,特点和块元素一样
    
             脱离文档流以后,不需要再区分块和行内了
    
  10. BFC(Block Formatting Context) 块级格式化环境

    - BFC是一个CSS中的一个隐含的属性,可以为一个元素开启BFC
        开启BFC该元素会变成一个独立的布局区域
            - 元素开启BFC后的特点:
                1.开启BFC的元素不会被浮动元素所覆盖
                2.开启BFC的元素子元素和父元素外边距不会重叠
                3.开启BFC的元素可以包含浮动的子元素
    
            - 可以通过一些特殊方式来开启元素的BFC:
                1、设置元素的浮动(不推荐)
                2、将元素设置为行内块元素(不推荐)
                3、将元素的overflow设置为一个非visible的值
                    - 常用的方式 为元素设置 overflow:hidden 开启其BFC 以使其可以包含浮动元素
    
  11. clear(clearfix 这个样式可以同时解决高度塌陷和外边距重叠的问题)

          -作用:清除浮动元素对当前元素所产生的影响
          -可选值:
              left 清除左侧浮动元素对当前元素的影响
              right 清除右侧浮动元素对当前元素的影响
              both 清除两侧中最大影响的那侧
    
         	 原理:
              设置清除浮动以后,浏览器会自动为元素添加一个上外边距,
                  以使其位置不受其他元素的影响
    
  12. 定位(position)- 使用position属性来设置定位

       可选值:
         static默认值,元素是静止的没有开启定位
          relative 开启元素的相对定位
          absolute 开启元素的绝对定位
          fixed 开启元素的固定定位(参照与浏览器视口,元素不会随网页的滚动条滚动)						
          sticky 开启元素的粘滞定位(可以在元素到达某个位置时将其固定)
    
  13. 绝对定位
    - 当元素的position属性值设置为absolute时,则开启了元素的绝对定位

         - 绝对定位的特点:
             1.开启绝对定位后,如果不设置偏移量元素的位置不会发生变化
             2.开启绝对定位后,元素会从文档流中脱离
             3.绝对定位会改变元素的性质,行内变成块,块的宽高被内容撑开
             4.绝对定位会使元素提升一个层级
             5.绝对定位元素是相对于其包含块进行定位的(一般是开启相对定位的包含块)
    
  14. 包含块( containing block )
    -正常情况下:
    包含块就是离当前元素最近的祖先块元素

                <div><span><em>hello</em></span></div>
             - 绝对定位的包含块:
                 包含块就是离它最近的开启了定位的祖先元素,
                     如果所有的祖先元素都没有开启定位则根元素就是它的包含块

             - html(根元素、初始包含块)
  1. 水平布局

        left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度
    
  2. 垂直方向布局

        top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含块的高度
    
  3. z-index 指定元素的层级

        *z-index*需要一个整数作为参数
        	值越大元素的层级越高,元素的层级越高越优先显示
    
  4. 字体相关的样式

        color 用来设置字体颜色
        font-size 字体的大小
            和font-size相关的单位
            em 相当于当前元素的一个font-size
            rem 相对于根元素的一个font-size
        font-family 字体族(字体的格式)
            可选值:
                serif  衬线字体
                sans-serif 非衬线字体
                monospace 等宽字体
                    - 指定字体的类别,浏览器会自动使用该类别下的字体
    
            - font-family 可以同时指定多个字体,多个字体间使用,隔开
                字体生效时优先使用第一个,第一个无法使用则使用第二个 以此类推
    
  5. 行高(line height)

           -行高指的是文字占有的实际高度
           - 可以通过line-height来设置行高
               行高可以直接指定一个大小(px em)
               也可以直接为行高设置一个整数
                   如果是一个整数的话,行高将会是字体的指定的倍数
           - 行高经常还用来设置文字的行间距
               行间距 = 行高 - 字体大小
    
       字体框
           - 字体框就是字体存在的格子,设置font-size实际上就是在设置字体框的高度
    
       行高会在字体框的上下平均分配
    
  6. text-align 文本的水平对齐

        可选值:
             left 左侧对齐
             right 右对齐
             center 居中对齐
             justify 两端对齐
    
  7. vertical-align 设置元素垂直对齐的方式

         可选值:
              baseline 默认值 基线对齐
              top 顶部对齐
              bottom 底部对齐
              middle 居中对齐
    
  8. text-decoration 设置文本修饰

        可选值:
               none 什么都没有
               underline 下划线
               line-through 删除线
               overline 上划线
    
  9. white-space 设置网页如何处理空白

          可选值:
              normal 正常
              nowrap 不换行
              pre 保留空白
    
  10. background-image 设置背景图片

          - 可以同时设置背景图片和背景颜色,这样背景颜色将会成为图片的背景色
          - 如果背景的图片小于元素,则背景图片会自动在元素中平铺将元素铺满
          - 如果背景的图片大于元素,将会一个部分背景无法完全显示
          - 如果背景图片和元素一样大,则会直接正常显示
    
  11. background-repeat 用来设置背景的重复方式

        可选值:
               repeat 默认值 , 背景会沿着x轴 y轴双方向重复
               repeat-x 沿着x轴方向重复
               repeat-y 沿着y轴方向重复
               no-repeat 背景图片不重复
    
  12. background-position 用来设置背景图片的位置

        设置方式:
            通过 top left right bottom center 几个表示方位的词来设置背景图片的位置
                使用方位词时必须要同时指定两个值,如果只写一个则第二个默认就是center
    
            通过偏移量来指定背景图片的位置:
                水平方向的偏移量 垂直方向变量
    
  13. 设置背景的范围

         background-clip 
             可选值:
                 border-box 默认值,背景会出现在边框的下边
                 padding-box 背景不会出现在边框,只出现在内容区和内边距
                 content-box 背景只会出现在内容区
    
         background-origin 背景图片的偏移量计算的原点
                 padding-box 默认值,background-position从内边距处开始计算
                 content-box 背景图片的偏移量从内容区处计算
                 border-box 背景图片的变量从边框处开始计算
    
  14. 渐变

**linear-gradient()**:线性渐变,颜色沿着一条直线发生变化
		background-image: linear-gradient(red,yellow,#bfa,orange);
			  to left
              to right
              to bottom
              to top
              deg deg表示度数
              turn 表示圈

**radial-gradient()** 径向渐变(放射性的效果)
		radial-gradient(大小 at 位置, 颜色 位置 ,颜色 位置 ,颜色 位置)
              大小:
                  circle 圆形
                  ellipse 椭圆
                  closest-side 近边	
                  closest-corner 近角
                  farthest-side 远边
                  farthest-corner 远角
              位置:
                  top right left center bottom 
  1. 过渡(transition)

       - 通过过渡可以指定一个属性发生变化时的切换方式
       - 通过过渡可以创建一些非常好的效果,提升用户的体验
       	transition-property: 指定要执行过渡的属性 
       	transition-duration: 指定过渡效果的持续时间
       	transition-timing-function: 过渡的时序函数
       	transition-delay: 过渡效果的延迟,等待一段时间后在执行过渡
    
  2. 动画(animation)

       -设置动画效果,必须先要设置一个关键帧,关键帧设置了动画执行每一个步骤
       animation-duration: 动画的执行时间
       animation-delay:动画的延时
       animation-iteration-count 动画执行的次数 
       animation-direction: 指定动画运行的方向
       animation-play-state: 设置动画的执行状态
       animation-fill-mode: 动画的填充模式
    
  3. 变形(transform)

       -是指通过CSS来改变元素的形状或位置
                  -   变形不会影响到页面的布局
                  - transform 用来设置元素的变形效果
                      - 平移:
                          translateX() 沿着x轴方向平移
                          translateY() 沿着y轴方向平移
                          translateZ() 沿着z轴方向平移
                              - 平移元素,百分比是相对于自身计算的
      -旋转可以使元素沿着x y 或 z旋转指定的角度
                          rotateX()
                          rotateY()
                          rotateZ()
      -元素进行缩放的函数:
                      scaleX() 水平方向缩放
              scaleY() 垂直方向缩放
              scale() 双方向的缩放
    
  4. 弹性盒

      -flex-direction 指定容器中弹性元素的排列方式
      -flex-wrap:  设置弹性元素是否在弹性容器中自动换行
      -justify-content:如何分配主轴上的空白空间(主轴上的元素如何排列)
      -align-items: 元素在辅轴上如何对齐
      -flex-grow:  弹性元素的缩减系数
    
  5. 媒体查询

       语法: @media 查询规则{}
           媒体类型:
               all 所有设备
               print 打印设备
               screen 带屏幕的设备
               speech 屏幕阅读器
               - 可以使用,连接多个媒体类型,这样它们之间就是一个或的关系
    
           可以在媒体类型前添加一个only,表示只有。
               only的使用主要是为了兼容一些老版本浏览器
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值