css的布局主要分为三种布局:盒子布局,浮动布局,定位布局。

1.盒子布局


html5 css 展示 布局 css设置布局_外边距

如图所示,我们需要将整个css视为一个大的盒子,其中每一个元素当作盒子的一个个组成成分。

其中每一个元素之间的分界线我们一般是使用border属性来展现。

border 简写属性在一个声明设置所有的边框属性。

border-width

规定边框的宽度。参阅:border-width 中可能的值。

border-style

规定边框的样式。参阅:border-style 中可能的值。

border-color

规定边框的颜色。参阅:border-color 中可能的值。

inherit

规定应该从父元素继承 border 属性的设置。

 而其中border本身还可以定义自身分界线的表现形式:

dotted

定义点状边框,在大多数浏览器中呈为实线

dashed

定义虚线,在大多数浏览器中呈为虚线

solid

(默认)定义实线

double

定义双线,双线宽度等于b度等于border-with的值

padding属性:设置 p 元素的 4 个内边距

这个简写属性设置元素所有内边距的宽度,

或者设置各边上内边距的宽度。行内非替换元素上设置的内边距不会影响行高计算;因此,如果一个元素既有内边距又有背景,从视觉上看可能会延伸到其他行,有可能还会与其他内容重叠。元素的背景会延伸穿过内边距。不允许指定负边距值。(注:不能取负值)

例子 1


padding:10px 5px 15px 20px;

  • 上内边距是 10px
  • 右内边距是 5px
  • 下内边距是 15px
  • 左内边距是 20px

例子 2


padding:10px 5px 15px;


  • 上内边距是 10px
  • 右内边距和左内边距是 5px
  • 下内边距是 15px

例子 3


padding:10px 5px;


  • 上内边距和下内边距是 10px
  • 右内边距和左内边距是 5px

例子 4


padding:10px;


  • 所有 4 个内边距都是 10px

默认值为0

margin:设置 p 元素的 4 个外边距

这个简写属性设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度。

块级元素的垂直相邻外边距会合并,而行内元素实际上不占上下外边距。行内元素的的左右外边距不会合并。同样地,浮动元素的外边距也不会合并。允许指定负的外边距值,不过使用时要小心。

注释:允许使用负值。

例子 1


margin:10px 5px 15px 20px;


  • 上外边距是 10px
  • 右外边距是 5px
  • 下外边距是 15px
  • 左外边距是 20px

例子 2


margin:10px 5px 15px;


  • 上外边距是 10px
  • 右外边距和左外边距是 5px
  • 下外边距是 15px

例子 3


margin:10px 5px;


  • 上外边距和下外边距是 10px
  • 右外边距和左外边距是 5px

例子 4


margin:10px;


  • 所有 4 个外边距都是 10px

默认值为0

 元素分类

块级元素 :独占一行,可以设置宽和高------div. p. hn. 等


内联元素:不会自动换行,设置宽和高的时候是不起作用的 span a 等




其中块级元素和内联元素可以相互转换



diplay:


none

此元素不会被显示。

block

此元素将显示为块级元素,此元素前后会带有换行符。

inline

默认。此元素会被显示为内联元素,元素前后没有换行符。

inline-block

行内块元素。(CSS2.1 新增的值)

list-item

此元素会作为列表显示。

run-in

此元素会根据上下文作为块级元素或内联元素显示。

compact

CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。

marker

CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。

table

此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

inline-table

此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。

table-row-group

此元素会作为一个或多个行的分组来显示(类似 <tbody>)。

table-header-group

此元素会作为一个或多个行的分组来显示(类似 <thead>)。

table-footer-group

此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。

table-row

此元素会作为一个表格行显示(类似 <tr>)。

table-column-group

此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。

table-column

此元素会作为一个单元格列显示(类似 <col>)

table-cell

此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

table-caption

此元素会作为一个表格标题显示(类似 <caption>)

inherit

规定应该从父元素继承 display 属性的值。

2.浮动布局



通过设置 float 属性进行布局



none ----- 不浮动



left -------- 对象向左浮动,而后面的内容会流向对象的右侧



right--------------- 对象向右浮动,而后面的内容会流向对象的左侧



清除浮动:clear




3.定位布局

position 属性:这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

可能的值


描述

absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static

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

inherit

规定应该从父元素继承 position 属性的值。

absolute: 绝对定位,会将对象从文档流中分离出来,通过设置Left right top bottom 四个方向上的



值相较于父级元素的绝对定位,如果不存在这样的父级元素,相较于body



relative: 相对定位,不会将对象从文档流中分离出来,通过设置Left right top bottom 四个方向上