CSS布局基础

CSS布局基础
1.块区域介绍
   1:  <body>
   2:    <div>
   3:      <p>This is a pargraph.</p>
   4:    </div>
   5:  </body>

p 元素的包含块是 div 元素,因为作为块级元素,表单元格或行内元素,这是最近的祖先元素,类似的,div的包含块是 body. 因此,p的布局依赖于 div的布局,而div的布局则依赖于 body的布局。

块级元素会自动重启一行。

2. 块级元素

正常流布局

一般的,一个元素的width被定义为从左内边界到右内边界,height则是从上内边界到下内边界的距离。

不同的宽度,高度,内边距和外边距相结合,就可以确定文档的布局。

水平布局

简单规则,正常流中块级元素框的水平部分 总和 就等于父元素的 width . 假设一个div中有两个段落,这两个段落的外边距设置为 1 em,段落内容宽度 width 在加上其左,右内边距,边框或外边距加在一起正好是div内容的width.

7大属性,margin-left, border-left, padding-left, width, padding-right, border-right, margin-right

这 7 个属性的值加在一起必须是父块元素的width值. ( 其中 margin-left, margin-right, width 可以设置成auto ) 设置成 auto, 会按照以上规则自动匹配到父块的宽度,例如 7个属性的和必须为 400像素,没有设置内边距或边距 ( 默认为 0) 而右外边距和width设置为100px, 左外边距为  auto,那么左外边距的宽度将是200px. 可以用 auto 弥补实际值与所需综合的差距。注:如果3个可以设置auto,都没设置成auto,而且宽度加在一起还不够父块区域的宽度的话,会默认将margin-right设置成 auto来满足总和与父块相等的要求。

如果两个外边距设置成 auto,那么,它们会是等长的,因此将元素在其父亲元素中居中。

如果这3个属性都设置成auto, 那么, 外边距会是0,而让 width  尽可能的长。

可以使用百分数,但是边框的宽度不能是百分数。

垂直布局

7大属性,margin-top, border-top, padding-top, height, padding-bottom, border-bottom, margin-bottom , 同样,这7个属性的值的总和是父元素 height 值。

其中 , margin-top, height, margin-bottom 也可以设置成 auto. ( 如果 margin-top, margin-bottom设置成 auto, 那么它们就会自动设置成 0 ).

3.浮动与定位( 确认基本布局 )

1) 浮动

一个元素浮动时,其他内容会“环绕”该元素,浮动元素要设置一个width.

float ( left , right , none ) , none 的情况一般用在文档内部,用来覆盖式样表,一般很少使用 none.

浮动元素会自动生成一个块级框。

浮动元素规则

浮动元素不能超过包含它的块的左右边界。(1,2 左右边界受限 )

浮动元素之前如果出现浮动元素,则必须在该浮动元素之后(不能覆盖 ) ( 2 左边受限 )

如果浮动元素加一起太宽,会自动向下。。(宽度受限 )

垂直方向要顶头不能超过块区域,同样不能超过在它上面的浮动元素。( 上边界受限 )

第一个浮动元素之后,第二个在它的下边,因为他们,第3个在它的右边。( 2 上边受限 )

浮动元素的顶端,不能比之前所有浮动元素或块级别元素的顶端更高 ( 顶端受限 )

浮动元素之间左右的边界不能覆盖,如下1,2,3, 之间不能覆盖 ( 元素之间受限 )

浮动元素会尽可能高的放置

浮动元素会尽可能向左向右

clear , 可以防止指定了 clear 元素的两边存在浮动元素

2) 定位

利用定位,可以准确的定义元素框相对于其正常位置应该出现在哪里,或者相对于父元素,另一个元素甚至浏览器窗口。

position : static | relative | absolute | fixed

static : 元素框正常生成

relative : 元素框偏移某个距离

absolute : 元素框从文档流完全删除,并相对于其包含块定。包含块可能是文档中的另一个元素或初始包含块。

fixed : 类似 absolute,不过其包含块是视窗本身。

包含块:

根元素( html或body ) , 初始包含块是一个视窗大小的矩形.

非根元素 :

- 非根元素, 如果其 position是 relative 或  static, 则包含块由最近的块级框,表单元格或行内块构成。

- 非根元素, 如果其 position是 absolute , 包含块为最近的 position值不是 static的祖先元素

这里有一点很重要,元素可以定位到其包含块的外面。

时间: 2025-01-14 11:54:55

CSS布局基础的相关文章

CSS布局基础汇总

常见布局种类 一列布局 两列布局 三列布局 CSS中的定位机制 网页简单布局之结构与表现的原则 CSS元素隐藏 CSS中清除浮动最优方法 DIVCSS规范命名集合 DIVCSS命名参考表 导入样式及脚本 传统方式 新规范 常见布局种类 一列布局 自上而下的,一般头部进行固定宽度,高度设置为自动 两列布局 自适应的两列布局:width用百分比+float: 固定宽度的两列布局:width:具体值/父级元素的宽度确定,width+百分比:+float; 如果没有加float的话,不能实现并排的两列布

div+css布局基础知识理解

牛腩新闻发布系统用到了很多的BS的技术,而我们看到的精美的网页很大一部分是由div+css技术实现的,div+css是一种网页布局方式.<div>是HTML的标签,它构成的是块级元素,在有它标记的内容的前后都会换行符,在web页面上表现为一个div元素的前后都会自动的换行.它可以将大的页面分解为多个部分.然后在css中可以分别的对这些部分进行样式的设置,而且和table布局相比div+css将内容和样式表现分离开. 要学习一样技术就要从掌握它的基础概念开始,就来看看在div+css中的基础概念

CSS布局基础--BFC

1,什么是BFC BFC(Block Formatting Context)块级格式化上下文,它就是一个环境,HTML元素在这个环境中按照一定规则进行布局.一个环境中的元素不会影响到其他环境中的布局.它是W3C CSS2.1规范中的一个概念,是一个独立的渲染区域,只有Block-level box参与,它规定了内部的Block-level box如何布局,并且这个区域与外部毫不想干, 2,生成BFC 下面的方法可以创建一个新的BFC (1)浮动元素,float: left | right (2)

css基础css页面布局基础

样式可以在HTML中定义,也可以在一个单独的外部样式文件中定义.样式可以分为嵌入式样式表,外部样式表,内联样式表. 外部样式表:首先要建一个后缀为.css的样式表文件,然后在web文档中的<head>段使用<link>标记,这样就可以将一个外部样式表文件链接到文档中. 语法:<link rel="stylesheet" type="text/css" href="样式表的url"/> 嵌入式样式表:在web文档

CSS基础学习十九:CSS布局之图文混排,图像签名,多图拼接和图片特效

学习了CSS布局的定位和浮动,我们可以简单地做出很多排版和内容拼接.今天就来做几个简单的实例展示现在 流行的DIV+CSS布局的方便好用之处.顺便也说一下CSS3新增的样式属性box-shadow和属性transform. 一图文混排 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

CSS基础学习十八:CSS布局之浮动

CSS布局中说到定位就不得不提浮动,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动 框的边框为止.由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样. 一float属性的定义和用法 float属性:设置元素浮动 可能的值: none 不浮动,在文档流内,默认 left  左浮动,脱离文档流 right 右浮动,脱离文档流 inherit 规定应该从父元素继承 float属性的值. float属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文

百度前端技术学院--零基础CSS布局

怎么预览 GitHub 项目里的网页? 一. 在项目源代码页面链接前缀那加上http://htmlpreview.github.com/?举个例子:需要打开的项目页面https://github.com/aisinvon/aisinvon.github.io/blob/master/index.html给加上前缀http://htmlpreview.github.com/?最终链接http://htmlpreview.github.io/?https://github.com/aisinvon/

现在主流网站为什么都用div+css布局而不是用table

由于刚刚接触前端,一直觉得table布局在代码上看起来比div+css更整洁,div+css布局的页面,一堆的<div><div><div>...</div></div></div>看起来都让人犯密集恐惧症,那么为什么现在的主流网站还都乐此不疲呢?为什么div+css反而成了一种主流布局方式呢?一直对此不解.这篇文章好像是解决了我的问题,先摘录过来,以便查阅. 以下内容摘自:http://www.divcss5.com/wenji/w

&lt;转载&gt;Div+Css布局教程(-)CSS必备知识

目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的高度(Height:45px;). Background:设置对象的背景颜色.背景图像. 1.背景颜色 background:#09F; 2.背景图像 background:url(file:///C|/Users/Administrator/Desktop/huipu.jpg) repeat-x;