css学习24:创建布局

1、定位内容

控制内容最简单的方式就是通过定位,这允许你使用浏览器改变元素的布局方式。

定位属性:

属性 说明
position 设置定位方法 见下面表
left 为定位元素设置偏移量 长度
right 百分数
top auto
bottom
z-index 设置定位元素的层叠顺序 数字
1.1 设置定位类型

position属性的值:

说明
static 元素为普通布局,默认值
relative 元素位置相对于普通位置定位
absolute 元素相对于position值不为static的第一位祖先元素来定位
fixed 元素相对于浏览器窗口来定位

position属性的不同值指定了元素定位所针对的不同元素。使用top、bottom、left和right属性设置元素的偏移量的时候,指的是相对于position属性指定的元素的偏移量。

1.2 设置元素的层叠顺序

z-index属性的值是数值,且允许取负值。值越小,在层叠顺序中就越靠后。这个属性只有在元素重叠的情况下才会排上用场。

2、创建多列布局

属性 说明
column-count 指定多列布局的列数 数值
column-fill 指定内容在列与列之间的分布方式, balance指浏览器确保不同列之间的长度差异尽可能小。如果取auto值,则按照顺序填充列 balance,auto
column-gap 指定多列布局中列与列之间的间隔 长度
column-rule 多列布局中定义列与列之间的规则的简写属性 宽度,样式,颜色
column-rule-color 设置多列布局中的颜色规则 颜色
column-rule-style 设置多列布局中的样式规则 跟border-style属性的值相同
column-rule-width 设置多列布局中的宽度规则 长度
columns 在多列布局中设置列数和列宽度的简写属性 长度值,数值
column-span 指定多列布局中元素能跨多少列 none,all
column-width 指定多列布局中列的宽度 长度值

3、创建弹性布局

弹性盒布局(也称为伸缩盒)在CSS3中得到了进一步增强,为display属性添加了一个新值( flexbox),并定义了其他几个属性。使用弹性布局可以创建对浏览器窗口调整响应良好的流动界面。这是通过在包含元素之间分配容器块中未使用的空间来实现的。规范为弹性布局定义了如下新属性:

  • flex-align;

  • flex-direction;

  • flex-order;

  • flex-pack。

-webkit弹性盒属性:

属性 说明
box-align 如果内容元素的高度小于容器的高度,告诉浏览器如何处理多余的空间 start,end,center,baseline,stretch
box-flex 指定元素的可伸缩性,应用于弹性盒容器内的元素 数值
box-pack 如果可伸缩元素达到最大尺寸,告诉浏览器如何分配空间 start,end,center,justify
3.1 创建简单的弹性盒

可以使用display属性创建弹性盒。标准值是flexbox,不过在标准完成和实现之前,必须使用-webkit-box。使用box-flex属性告诉浏览器如何分配元素之间的未使用空间。

#container {display: -webkit-box;}#second {-webkit-box-flex: 1;}
3.2 伸缩多个元素

应用box-flex属性可以告诉浏览器伸缩多个元素的尺寸。你设置的值决定了浏览器分配空间的比例。

#container {display: -webkit-box;}#second {-webkit-box-flex: 1;}#first {-webkit-box-flex: 3;}

这里将box-flex属性应用到了id值为first的p元素。此处box-flex属性的值是3,意思是浏览器为其分配的多余空间是为id值为second的p元素的三倍。当你创建此类比例时,你指的是元素的可伸缩性。你只是使用这个比例来分配多余的空间,或者减小元素的尺寸,而不是改变它的首选尺寸。

3.3 处理垂直空间

box-align属性告诉浏览器如何处理多余的垂直空间。

值:

说明
start 元素沿容器的顶边放置,任何空空间都在其下方显示
end 元素沿容器的底边放置,任何空空间都在其上方显示
center 多余的空间被平分为两部分,分别显示在元素的上方和下方
strech 调整元素的高度,以填充可用空间
#container {display: -webkit-box;    -webkit-box-direction: reverse;    -webkit-box-align: end;}#first {-webkit-box-flex: 3;}
3.4 处理最大尺寸

弹性盒模型伸缩时不会超过内容元素的最大尺寸值。如果存在多余空间,浏览器会伸展元素,直到达到最大允许尺寸。box-pack属性定义了在所有的可伸缩元素均达到最大尺寸的情况下,多余空间仍未分配完毕时应该如何处理。

说明
start 元素从左边界开始放置,任何未分配的空间显示到最后一个元素的右边
end 元素从右边界开始放置,任何未分配的空间显示到第一个元素的左边
center 多余空间平均分配到第一个元素的左边和最后一个元素的右边
justify 多余空间均匀分配到各个元素之间
#container {display: -webkit-box;    -webkit-box-direction: reverse;    -webkit-box-align:end;    -webkit-box-pack:justify;}

4、创建表格布局

table元素广泛用于布局Web页面已有多年历史,但随着对HTML元素语义重要性的不断强调,table元素今非昔比。如果只是在HTML5中使用table元素来呈现列表数据,那么你必须慎之又慎。

当然,使用table元素如此普遍的原因是它解决了一种常见的布局问题:创建承载内容的简单网格。幸好,我们可以使用CSS表格布局特性来设置页面布局,这很像使用table元素,但不会破坏语义重要性。创建CSS表格布局使用display属性。

跟表格布局相关的display属性的值:

说明
table 类似table元素
inline-table 类似table元素,但是创建一个行内元素
table-caption 类似caption元素
table-column 类似col元素
table-column-group 类似colgroup元素
table-header-group 类似thead元素
table-row-group 类似tbody元素
table-footer-group 类似tfoot元素
table-row 类似tr元素
table-cell 类似td元素

CSS表格布局的一个优点是自动调整单元格大小,因此,行是由该行中内容最高的单元格决定的,列是由该列中内容最宽的单元格决定的。

#table {display: table;}div.row {display: table-row;background-color: lightgray;}p {display: table-cell;border; thin solid black;padding: 15px;margin: 15px;}<div id="table">    <div class="row">        <p>            ahaha        </p>        <p>            ahaha        </p>    </div></div>

来源:https://www.icode9.com/content-4-854051.html

(0)

相关推荐

  • 256 欧楷基本笔法学习24—撇提的写法。

    256 欧楷基本笔法学习24—撇提的写法。

  • 有利于孩子学习的风水布局有那些

    温馨提示:本文有偿阅读 孩子学习不好,当家人的操碎了心,报班,找家教,似乎效果不太理想,孩子还累得不行,其实,最应该做的,是先给孩子调好书房风水,这样事半功倍,省时省力. 在书桌的摆放上,更应该遵循一 ...

  • java学习——54.混合布局

    在此篇之前,已经介绍了四种布局方式,流布局,边布局,网格布局和网格包布局. (详情请看java学习--52.网格包布局:java学习--51.网格布局:java学习--50.边布局:java学习--4 ...

  • java学习——52.网格布局

    网格布局类似于以表格的形式,将组件放在一个个的单元格中. GridLayout网格布局管理器将容器划分为大小相等的若干行乘若干列的网格,组件大小随容器大小而变化. GridLayout类声明如下: p ...

  • java学习——51.边布局

    边布局是框架Frame.JFrame的默认布局方式. BorderLayout布局是将容器划分为5个区域:东.南.西.北.中,组件占满一条边或中间部分. 当容器大小改变时,四边不变,中间组件的长度和宽 ...

  • java学习——24.一维数组

    之前的基本数据类型变量一次只能存储一个不可分解的简单数据,比如int i:一次只能存储一个整数.但是在实际的应用当中,可能会需要一次存储很多个整数,比如之前有一个例题,Fibonicci数列,之前做时 ...

  • MySQL基础知识学习之创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  • CSS学习小结

    一.CSS简介 1.CSS:cascading style sheet,层叠级联样式表.涉及字体.颜色.边距.高度.宽度.背景图片.网页定位.网页浮动等设计.样式通常保存在外部的 .css 文件中,只 ...

  • 学习vlog|一天学习24小时?学习博主的一天是什么样的?

    学习vlog|一天学习24小时?学习博主的一天是什么样的?