• Css布局属性详解


    display

    1.块级 block

    • 此元素前后会带有换行符
    • 此元素可以设置width,height属性。
    • 块级元素即使设置了宽度,仍然是独占一行(除非浮动或者position),这里设置的宽度是显现内容的宽度,缺省为父容器宽度
    • 可以设置margin和padding属性

    常用:div,form,table,p,pre,h1~h6,dl,ol,ul

    块级元素水平居中:margin:0 auto;

    2.内联 inline

    • 元素前后没有换行符
    • 设置width,height属性无效,宽度就是它的文字或图片的宽度,不可改变
    • 此元素水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。即内联元素行高固定,不受上下的内外边距影响。(!这里的内联指的是非替换元素)

    2.1 非替换元素:指内容包含在文档中的元素。span,a,strong,em,label,select,textarea,br

    2.2 替换元素:根据元素的标签和属性,来决定元素的具体显示内容。img(根据src属性判断图文信息),input(根据type属性显示输入框还是单选按钮)等

    内联元素水平居中:text-align:center;

    3.行内元素 inline-block

    • 将对象呈现为inline对象,但是对象的内容作为block对象呈现,使其既具有block的宽度高度特性又具有inline的同行特性

    注意,在导航栏使用li变成inline-block时,li之间的换行符会使li模型之间有间隙,最好用<–!–>把换行符替换

    常用:button、script、iframe

    float

    使使用该布局的元素脱离文档流,后面的非float元素会无视该元素进行布局,而该元素会漂浮在原来的位置,有可能遮盖后来的非float元素。

    这个大家应该都很熟悉,我就讲一讲元素坍塌。在一个元素里面,因为子元素设置了float脱离文档流,从而无法计算子元素的扩张高度,所以这个父元素会发生坍塌,高度为0,而子元素漂浮在父元素的位置上。

    所以就有了很多种清除浮动的方法:

    1. 在子元素后面添加一个元素清除浮动。

      <div style=”clear:both;”>

      <br clear=”all” />

      副作用是会在后面添加了DOM节点

    2. 触发浏览器重排,撑开元素重新计算布局

      如: 
      父元素设置 
      *zoom:1, 
      *position: fixed/absolute, 
      *display: inline-block, 
      *float, 
      等都是可以触发

    3. 用after伪元素清除浮动

    .clearfix:after {
        clear: both;
        content: ".";   
        display: block;
        height: 0;  //高度为0且hidden让该文本彻底隐藏
        visibility: hidden;
    }
    .clearfix {
        *zoom: 1;
    }

     

    position

    1. static

    • 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)
    • *

    2. fixed

    • 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。

    3. absolute

    • 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位(常在父元素使用relative禁锢子元素absolute的范围)
    • 指定left/top/right/bottom,则该元素仍处于正常文档流的定位点(就是相当于位置不变)
    • 若指定left/top/right/bottom,则元素浮起,

      3.1 会遮盖普通元素(这里的和float表现不一样,absolute是类似于index-z的漂浮,float是让文字文本环绕的漂浮)

      3.2 会发生高度塌陷(都是因为脱离文档流计算不到高度)

    !(absolute是绝对脱离文档流,float只是脱离了文档流的dom空间但是还占据着文字空间,所以float还有办法可以处理高度塌陷)

    原生js隐藏,使用display:none/block会影响原来的inline-block的元素,以及重排重绘开销大,这时可以使用 
    absolute + top:xxx 或 absolute + visibility:hidden

    4. relative

    • 生成相对定位的元素,相对于其正常位置进行定位。
     
     
  • 相关阅读:
    sscanf 与 ssprintf 用法 (转载--https://www.cnblogs.com/Anker/p/3351168.html)
    PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)
    PYTHON网络爬虫与信息提取[BeautifulSoup](单元四)
    PYTHON网络爬虫与信息提取[网络爬虫协议](单元二)
    Python网络爬虫与信息提取[request库的应用](单元一)
    scikit-learn实现ebay数据分析 的随笔
    machine leanring 笔记 vectorization
    machine learning 笔记 normal equation
    machine leanring 笔记 octave命令笔记
    UVa 1354 天平难题 Mobile Computing
  • 原文地址:https://www.cnblogs.com/ZpandaZ/p/7397082.html
Copyright © 2020-2023  润新知