CSS布局总结

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

1.盒子布局

  

如图所示,我们需要将整个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此元素会根据上下文作为块级元素或内联元素显示。
compactCSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
markerCSS 中有值 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 四个方向上
的值进行相对定位

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值