css

6 day06 CSS

6.1 显示与隐藏

6.1.1 display

none : 表示隐藏,元素不再占领页面空间常用

block : 表示块级元素的效果。

Inline : 表示内联元素的效果。

Inline-block : 表示内联块级元素——块级元素可以水平排列。

6.1.2 visibility

hidden : 表示隐藏——元素依然占据页面空间位置。

Visible : 默认值——表示显示。

6.2 内容溢出

概念 - 子元素的范围超出父元素,显示在父元素之外。

6.2.1 解决溢出——overflow

     * hidden - 表示超出部分隐藏 - 超出部分查看不了

     * scroll - 表示提供显示滚动条 - 不超出也有滚动条

     * auto - 表示自动

       * 如果有超出部分,提供显示滚动条

       * 如果没有超出部分,不提供滚动条

6.2.2 浮动

1. 文档流 - 页面中元素的默认排列规则

     * 块级元素 - 垂直排列

     * 内联元素 - 水平排列,自动换行

2. 浮动 - float

     * none - 默认值,表示不浮动

     * left - 表示左浮动

     * right - 表示右浮动

3. 特点

     * 兄弟元素

       * 后一个元素设置浮动,不能超过前一个元素

     * 父子元素

       * 子元素设置浮动,不能超出父元素

6.3 补充页面布局常规知识

6.3.1 套路(规律)

* 将表格中的行和列的概念引入页面布局

     * 将盒子模型的概念引入页面布局

       * 默认盒子模型 - content-box

       * 怪异盒子模型 - border-box常用

          * 实际宽度 = width

          * 实际高度 = height

6.3.2 高度塌陷(浮动的问题BFC(面试题)

* 高度塌陷的效果

     * 定义两个元素是父子结构,为子元素设置浮动(父元素不设置高度)

   * 注意

     * 高度塌陷的效果是符合父子结构的浮动效果

     * 在实际开发中,不希望出现这种效果

   * 解决方案  BFC(面试题)

     * 什么是 BFC

     * BFC 的开启方式

       * overflow:hidden/auto解决溢出

       * clear:both/left/right - 必须新增一个子元素(最后)

     * BFC 的问题

6.3.3 position定位

一、概念

 1  CSS 定位 - 表示的是某个元素在当前页面中的位置

     * 定位一定会有坐标轴的概念出现

        * 一个元素在当前页面的位置,其实就是一个坐标值(x,y)

     * CSS 定位就是将坐标值(x,y)转换成 CSS 中某个具体的属性使用

 2 定位的值

     * static - 默认值,表示静态定位

       * 注意 - 并没有坐标值的概念,按照文档流规则进行定位

     * absolute - 表示绝对定位

     * fixed - 表示固定定位

     * relative - 表示相对定位

  3 开启定位

     * HTML 页面中所有的元素,默认都是不开启定位

       * position:static - 没有坐标值

     * 通过 CSS position 属性开启定位

       * position 的值设置为非 static 的值

 4 偏移量

     * 概念

       * 偏移量 - 某个元素相对于初始位置的移动的距离

       * 一个元素在页面中只有两种移动效果

         * 垂直方向

         * 水平方向

     * 提供四种偏移量

       * top - 表示距离顶部的空间

       * right - 表示距离右边的空间

       * bottom - 表示距离下边的空间

       * left - 表示距离左边的空间

     * 偏移量的作用

       * 同时使用 top left - 常用方式

         * topleft就是坐标轴中的坐标值的概念 - (x,y) = (left,top)

       * 如果使用 bottom right

         * 当前元素定位在页面的底部时 - 使用 bottom

         * 当前元素定位在页面的右边时 - 使用 right

           * 至少可以使用 left 进行替换

6.3.4 static 默认(不开启定位)

看上文。

6.3.5 绝对定位

     * 特点

       * 绝对定位的元素脱离文档流

       * 绝对定位的元素呈现块级效果

       * 只是开启绝对定位,而不设置坐标值的话 - 位置不会发生变化

     * 定位效果

       * 绝对定位的元素的父元素是<body>,相对于页面定位

       * 绝对定位的元素的父元素不是<body>

         * 如果父元素没有开启定位,相对于页面定位

         * 如果父元素开启了定位,相对于父元素定位

 6.3.6 固定定位 - fixed

     * 固定定位是绝对定位的一种特殊定位

     * 固定定位只相对于浏览器窗口定位

 6.3.7相对定位 - relative

     * 注意

       * 开启相对定位的元素并没有脱离文档流

       * top left 的值为 0 时,相对定位的元素位置没有发生任何变化

       * 父元素是否开启定位,并不会影响当前子元素开启定位的效果

     * 定位参考

       * 相对于当前元素在文档流中的位置

 6.3.8 实际开发中的定位 - 父子元素

     * 父元素设置绝对定位,子元素设置绝对定位

     * 父元素设置绝对定位,子元素设置相对定位

     * 父元素设置相对定位,子元素设置相对定位

     * 父元素设置相对定位,子元素设置绝对定位

父亲相对——不脱离文档流;

儿子绝对——脱离文档流。

            TODO 讨论定位的四种情况

            TODO 1. 父元素设置绝对定位,子元素设置绝对定位

            TODO    * 父元素的绝对定位相对于当前页面

            TODO      * 设置偏移量时,父元素和子元素同时移动

            TODO      * 可以使用 overflow 解决内容溢出问题

            TODO    * 子元素的绝对定位相对于父元素

            TODO       * 设置偏移量时,只有子元素移动,而父元素不移动

            TODO       * 设置的偏移量超出父元素的范围,出现内容溢出

            TODO 2. 父元素设置绝对定位,子元素设置相对定位

            TODO    * 父元素的绝对定位相对于当前页面

            TODO      * 设置偏移量时,父元素和子元素同时移动

            TODO        * 实际上,子元素相对定位没有发生变化

            TODO      * 可以使用 overflow 解决内容溢出问题

            TODO    * 子元素的相对定位相对于初始文档流的位置

            TODO       * 设置偏移量时,只有子元素移动,而父元素不移动

            TODO       * 设置的偏移量超出父元素的范围,出现内容溢出

            TODO 3. 父元素设置相对定位,子元素设置相对定位

            TODO    * 父或子元素都是相对于初始文档流的位置

            TODO 4. 父元素设置相对定位,子元素设置绝对定位

            TODO    * 父元素的相对定位相对于初始文档流的位置

            TODO    * 子元素的绝对定位相对于父元素

            TODO 在实际开发中

            TODO * 作为父元素的定位,一般都使用相对定位

            TODO   * 不将父元素脱离文档流 - 不会出现覆盖现象

            TODO * 作为子元素的定位,一般都使用绝对定位

            TODO   * 我们对子元素的位置的判断更容易一些

         */

原文地址:https://www.cnblogs.com/huifang/p/7067264.html