HTML最难的地方来了!这个我反复了很多遍, 包括现在写博客, 也对我自己算是一种温习, 我这块怕是没办法写的很好懂, 因为我自己还不能把我学到的准确通俗易懂的表达出来, 给自己记个笔记, 以后再来一点一点的改, 新手可以看看, 对于初学这块的人应该还是有点帮助的.

  CSS布局模型

  以下全部是个人初学HTML的一点理解, 哪里错了欢迎指正, 我也会改, 因为全程自学, 只能摸着石头过河, 拜托大神们了.

  CSS布局模型在我看来是和盒模型一样的最核心的概念, 但是布局模型是依托盒模型的, 它并不是准确意义上的布局样式或者是布局模板, 再通俗点说, CSS布局模型就是外在看到的样子, 而且他不是你看看书就能懂的, 而是需要多多的练习,

  布局模型主要有三种:

    1, 流动模型(Flow)

    2, 浮动模型(Float)

    3, 层模型(Layer)

  流动模型, 是默认的网页布局模式. 网页在默认状态下的HTML网页元素都是根据流动模型来分布网页内容的.

  特点: 块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布, 因为在默认状态下, 块状元素的宽度都为100%, 实际上块状元素都会以行的形式占据位置, 而内联元素都在在所处的包含元素内从左到右水平分布显示, 这基本上等同于对前面块级元素和内联元素的特性又做了一次总结.

  浮动模型

  浮动模型在我理解中也就是打破了Flow的一切规则, 它不再遵循流动模型的一切规则, 以一种自定义的方式将块级元素和内嵌元素重新布局. 默认下都是不浮动的, 但是可以定义为浮动, 只需要在CSS样式表中加入float这个属性, 代码示例:

  div{

    float:left;

    }

  这句话的意思就是将这个<div>块级元素设置为左浮动, 这个时候这个块级元素也不再具有块级元素的那些独占一行, 元素宽度等等特点了, 也就是当设置为float的那一刻, 块级和内嵌的特性就都消失了.

  层模型(这个可以讲一天)

  层布局模型在我看来就好像多个重叠的层级结构, 你通过代码对每个层级的位置进行精确控制, css定位了一组定位属性来支持布局模型, 这个我自己理解的也并没那么透彻所以只简单说说, 大家有兴趣的去百度百度看看别人的博客, 我个人理解必然不如人家, 只能说给自己写个学习笔记而已.

  层模型的三种形式:

    1, 绝对定位(position:absolute)

    2, 相对定位(position:relative)

    3, 固定定位(position:fixed)

  1, 绝对定位

  下面完全不用书本上那种严谨的语言, 用我自己的理解给大家说, 绝对的意思就是, 一个层级放在另一个层级上面, 也就是一块放在另一块上, 子层级在父层级上面的精确坐标就是绝对定位, 给它一个绝对的值让他不会乱动, 同样的, 父层级移动了, 子层级也会跟着动, 也就是说这两个相对的层级用绝对的布局拴住了, 学习这你就使劲的敲就行了. 同时给大家一点层级的概念, <body>里面有各种块, 比如<div>, 那么一块<div>就可以理解为一个层级, 你对这个<div>的属性做设置, 绝对定位, 那么<div>就和<body>栓死了, 同样的<div>里面有一个<p>, <p>也设置绝对定位, 这个时候<p>的层级就是相对<div>了, <div>动, <p>也会在<div>里面乖乖的跟着走, 综上, 这就是绝对定位!

  代码示例下

  div{

    width:200px;

    heigth:300px;

    border:2px red solid;

    position:absolute;

    left:100px;

    top:50px;

    }

  p{

    position:absolute;

   }

  这个时候<p>是<div>内部标签的话, <p>相对<div>就已经锁死了, 那么这个时候我们修改p样式表, 修改p在布局中的位置, 比如用盒子模型修改外间距, 修改p在div中的布局, 然后再去修改div的布局, 会发现p的层级还会在div上, 紧紧的困在一起了. 感觉这种布局应该是最常用的.

  2, 相对定位

  相对定位首先是将这一层级, 类似float方式浮动起来, 然后通过设置left, right, top, bottom属性来确定这一层级相较于自己原本的位置, 但是这一层级本质上还是在原来那里, 也就可以理解为视觉看到的是一个投影, 它本来还在那呢, 所以相对定位是不会影响其他位置元素的布局的, 因为它是单独浮动出来的. 这个不太好理解, 需要大家自己多写多练. 感觉这种布局应该是那种动画什么的很常用, 或者弹出的窗口? 我不确定啊, 不太敢说了.

  3, 固定定位

  这个好解释效果, 平常看网站那些小广告, 右下角啥的, 你划着屏幕, 他就在那里, 不上不下, 这个效果就是固定定位, 它的定位并不是跟着布局走的, 而是跟着相对浏览器走的. 严谨一点的说法是, 它的相对移动的坐标是网页窗口本身. 由于视图本身是固定的, 它不会随浏览器窗口的滚动条滚动而变化, 除非你在屏幕中移动浏览器窗口的屏幕位置, 或改变浏览器窗口的显示大小, 因此固定定位的元素会始终位于浏览器窗口内视图的某个位置, 不会受文档流动影响, 这与background-attachment:fixed;(定义背景图片随滚动轴的移动方式)属性功能相同. 这个也不多介绍了, 和相对定位一样, 多写就好了.

  这三种定位方式是可以混在一起用的, 比如父元素用绝对定位, 子元素用相对定位等等, 是可以很灵活的布局的, 学第一遍可能会懵, 第二遍会好一点, 第三遍基本就能懂了, 我学东西也是这个原则, 一个东西要学三遍才可以算是学了.

熟悉HTML CSS布局模型的更多相关文章

  1. 浅析css布局模型1

    css是网页的外衣,好不好看全凭css样式,而布局是css中比较重要的部分,下面来分析一下常见的几种布局. 流动模型 流动模型是网页布局的默认模式,也是最常见的布局模式,他有两个特点: 1.块状元素都 ...

  2. HTML+CSS学习笔记 (12) - CSS布局模型

    标签:HTML+CSS css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是 ...

  3. 从零开始学习前端开发 — 6、CSS布局模型

    一.css布局模型 1.流动模型(Flow) 元素在不设置css样式时的布局模型,是块元素就独占一行,是内联元素就在一行逐个进行显示 2.浮动模型(Float) 使用float属性来进行网页布局,给元 ...

  4. 从零开始学习html(十二)CSS布局模型——上

    一.css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了. 布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之 ...

  5. CSS布局模型学习

    转自:http://www.cnblogs.com/erliang/p/4092192.html CSS布局模型学习   参考链接慕课网:HTML+CSS基础课程 知识基础 1. 样式 内联 嵌入 外 ...

  6. CSS 布局模型

    css布局模型 布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上.又不同于我们常说的 CSS 布局样式或 CSS 布局模板.假设说布局模型是本.那么 CSS ...

  7. 前端之CSS布局模型

    一.css布局模型: 流动模型(Flow) 浮动模型(Float) 层模型(Layer) 1.流动模型: 页面在没有设置任何css样式,元素按照本身的特性在浏览器中显示,这样的布局模型称为流动模型: ...

  8. html学习第三天—— 第12章——css布局模型

    清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上,又不同于我们常说的 ...

  9. css布局模型

    ---恢复内容开始--- 在清楚了CSS盒模型的基本概念,盒模型类型,我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是CSS最基本,最核心的概念.但布局模型是建立在盒型基础之上,又不同 ...

随机推荐

  1. poj 3414 Pots bfs+模拟

    #include<iostream> #include<cstring> #define fillA 1 #define pourAB 2 #define dropA 3 #d ...

  2. 访问外网 ML2 的配置 - 每天5分钟玩转 OpenStack(103)

    通过 router 可以实现位于不同 vlan 中的 instance 之间的通信. 接下来要探讨的问题是 instance 如何与外部网络通信. 这里的外部网络是指的租户网络以外的网络. 租户网络是 ...

  3. SubSonic3.0使用例子

    前段时间开发的框架使用了SubSonic2.2以后,觉得开发效率提高了不少,后期维护起来也非常方便,不由的喜欢上了SubSonic.中间有想过升级到更高版本,但度娘一下就放弃了,只有极少的中文版说明, ...

  4. iOS开发之新浪微博山寨版代码优化

    之前发表过一篇博客“IOS开发之新浪围脖”,在编写代码的时候太偏重功能的实现了,写完基本功能后看着代码有些别扭,特别是用到的四种cell的类,重复代码有点多,所以今天花点时间把代码重构一下.为了减少代 ...

  5. ssh整合问题总结--在添加商品模块实现图片(文件)的上传

    今天在做毕设(基于SSH的网上商城项目)中碰到了一个文件上传的需求,就是在后台管理员的商品模块中,有一个添加商品,需要将磁盘上的图片上传到tomcat保存图片的指定目录中: 完成这个功能需要两个步,第 ...

  6. ssh整合问题总结--运行项目时报java.lang.StackOverflowError(堆栈溢出)异常

    今天在整合ssh项目中,碰到一个异常,当我提交购物车数据到订单时,浏览器报了一个这样的异常. 当时,我就吓坏了.尼玛,这不是内存溢出了吗?吓得我赶紧去检查了每一个有遍历语句的代码,结果没有发现一个死循 ...

  7. DotNet项目中的一些常用验证操作

    在项目中需要对用户输入的信息,以及一些方法生成的结果进行验证,一般在项目中较多的采用js插件或js来进行有关信息的校验,但是从项目安全性的角度进行考虑,可对系统进行js注入. 如果在后台对用户输入的信 ...

  8. SDN/NFV若干问题

    1.首先谈一谈网络技术和组网技术的关系 网络可分为两层:业务网.承载网.业务网主要是组织业务系统,而承载网主要是用来传输信息流:包括传送网(点到点数据专线).数据网(端到端连接).内容分发网(点到多点 ...

  9. 2.Java基础之Runtime对象

    毕向东老师Java基础学习笔记——Runtime对象 今天学习Java中的Runtime对象后,感觉这个对象对我们主要有以下几点用处. 1.使用java代码打开本地可执行文件,比如打开一个计算器. 2 ...

  10. Hibernate —— HQL、QBC检索方式

    一.HQL 检索方式 以双向的一对多来测试 HQL 检索方式.以 Department 和 Employee 为例. 建表语句: CREATE TABLE department ( dept_id ) ...