zoukankan      html  css  js  c++  java
  • CSS传统布局之display属性+float属性+position属性

    这三个属性是传统网页布局中经常用到的属性。

    读这篇文章之前,希望你对css布局模型已经有了一定的了解。因为本文的三个属性是和css三个布局模型紧密联系在一起的。因此,如若你并不了解,我推荐你先看一下css布局模型这篇文章。

    一、display属性

    The display property specifies the type of box used for an HTML element.

    display属性是与盒模型紧密相连的属性,大多数情况下定义了元素是block-level,inline-level还是inline-block-level, 当然还有很多其它的值。关于display属性详细的内容可以点这里,或是百度谷歌搜索即可。

    二、float属性

    float:none; 默认值,没有浮动,正常文档流。

    float:right; 元素须浮动在其所在块元素的右侧。

    float:left;  元素须浮动在其所在块元素的左侧。

    float:initial; initial关键字,定义了float属性值应该为默认值,即none

    float:inherit; 从父元素继承属性值。

    按照张鑫旭博客中的说法,浮动的意义仅仅是文字环绕显示而已,浮动的本质是浮动的本质是“包裹及破坏”,我觉得这个说法不错。而目前我们大量适用于页面的整体布局中,确实是违背了这个属性的原意。

    三、position属性

    position:static;     默认值,Elements render in order, as they appear in the document flow,正常的标准文档流

    position:relative;  The element is positioned relative to its normal position. 未脱离标准文档流,相对自身正常位置移动。

    position:absolute; The element is positioned relative to its first positioned (not static) ancestor element.脱离文档流

    position:fixed;      The element is positioned relative to the browser window.  脱离文档流

    请注意以下:

    未脱离文档流,即浏览器按照dom结构从上而下,从左而右对页面进行渲染时,某元素按照顺序出现在页面中。

     脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。

    float和position都可以让元素脱离文档流,但是两者依然有些许差异如下:

    1. float:left 和float:righ可以使一个元素脱离正常的文档流,然后被安放到它所在容器的的左端或者右端,但是所在容器的其他的文本和行内元素围绕它安放。(这一点再次说明了浮动的本意,即仅仅是行级元素的环绕而已)
    2. position:absolute和position:fixed会使该元素脱离文档流,同时其他盒子与其他盒子内的文本都会无视它,因此可能会出现该元素覆盖在其他元素之上的情况。

     这篇文章适合和css的核心之一布局模型结合起来看,可能更有效果。

    (The End)
  • 相关阅读:
    C#三元运算符
    WIN系统查询版本
    C# switch 语句
    C#反编译
    AssemblyInfo.cs 文件信息
    win系统如何在桌面显示我的电脑
    MVC传值前台
    js去除html标记
    打开页面跳转到区域下的控制器
    Hive常用操作之数据导入导出
  • 原文地址:https://www.cnblogs.com/oneplace/p/5271364.html
Copyright © 2011-2022 走看看