align-items默认值(html中alignitems)

http://www.itjxue.com  2023-01-29 00:36  来源:未知  点击次数: 

Bootstrap和flex的比较,清除浮动的实现原理

在bootstrap中采用12栅格的布局,12份随意分配,但是不能解决5等分,7等分的问题。

bootstrap的优势之一就是可以根据用户屏幕尺寸调整页面,使其在各个尺寸上都变现良好。实现这个功能依赖两个东西,一个是view,另一个是max-width,min-width。

bootstrap栅格系统的本质是通过css3的媒体查询实现的,如果你熟练使用max-width等媒体查询属性的话就可以抛开bootstrap,定制属于自己的响应式网站。bootstrap将屏幕尺寸分为四类,超小屏幕768px,小屏幕 平板=768px,中等屏幕 桌面显示器=992px,以及大屏幕 大桌面显示=1200px。每一列又被平均分为了12格,每一格8.33333333%,12格就无限接近于100%。

这里要特别提一下就是bootstrap的盒模型,bootstrap强制把所有元素的盒模型都设置成了border-box,这是IE首创的,用于混杂模式下显示网页,但W3C认为这个属性是一个逗比一直没采用,后来发现自己才是逗比,因此在CSS3中新增了这个属性。border-box盒模型的尺寸包含了padding+border+content,content-box盒模型的尺寸仅仅包含content部分,设置padding,border还需要重新计算包含块尺寸,使用上要比border-box麻烦的多。

类前缀使用的是掌握栅格系统最重要的部分,类前缀分四个:超小屏幕 .col-xs-*,小屏幕 .col-sm-*,中等屏幕 .col-md-*,超小屏幕 .col-lg-*。

任何一个容器都可以指定为Flex布局

块:display;行内:inline-flex(依然要加上浏览器前缀,存在兼容性问题)

display:flex;

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

Flexible boxes盒子按照宽高分出了以下 8 点:

水平的主轴:main axis; 垂直的纵轴:cross axis;

纵轴的开始位置和边框的交点:cross start; //上边

纵轴的结束位置和边框的交点:cross end; //下边

主轴的开始位置和边框的交点:main strat; //左边

主轴的结束位置和边框的交点:main end; // 右边

单个项目占据主轴的空间距离:main axis; // 子元素的宽

单个项目占据纵轴的空间距离:cross axis; // 子元素的高

容器属性设置

flex-direction:主轴的方向(即项目的排列方向)

flex-wrap:如果一条轴线排不下,如何换行

flex-flow:flex-direction属性和flex-wrap属性的简写

justify-content:定义了项目在主轴上的对齐方式

align-items:定义项目在交叉轴上如何对齐

align-content:多根轴线的对齐方式,一根轴该属性无效

项目的属性设置:以下6个属性设置在项目上

order:项目的排列顺序。数值越小,排列越靠前,默认为0

flex-grow:放大比例,默认为0-如果存在剩余空间也不放大

flex-shrink:缩小比例,默认为1-如果空间不足项目将缩小

flex-basis:在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小

flex:flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选

align-self:允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

① :after伪类在元素末尾插入了一个包含空格的字符,并设置display为table

display:table会创建一个匿名的table-cell,从而触发块级上下文(BFC),因为容器内float的元素也是BFC,由于BFC有不能互相重叠的特性,并且设置了clear:both,:after插入的元素会被挤到容器底部,从而将容器撑高。并且设置display:table后,content中的空格字符会被渲染为0*0的空白元素,不会占用页面空间。

content包含一个空格,是为了解决Opera浏览器的BUG。当HTML中包含contenteditable属性时,如果content没有包含空格,会造成清除浮动元素的顶部、底部有一个空白(设置font-size:0也可以解决这个问题)。

② :after伪类的设置已经达到了清除浮动的目的,但还要设置:before伪类,原因如下:

:before的设置也触发了一个BFC,由于BFC有内部布局不受外部影响的特性,因此:before的设置可以阻止margin-top的合并。这样做,其一是为了和其他清除浮动的方式的效果保持一致;其二,是为了与ie6/7下设置zoom:1后的效果一致(即阻止margin-top合并的效果)。

③ zoom: 1用于在ie6/7下触发haslayout和contain floats

css3 align-items中基线怎么确定

align-items:center;对齐方式如下:

center,位于容器的中心

flex-start,位于容器的开头

flex-end,位于容器的结尾

baseline,位于容器的基线上。

initial,设置该属性为它的默认值

inherit,从父元素继承该属性

希望对你有所帮助,望采纳!

Vue 中 Flex布局

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

display: flex;

display: inline-flex;

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

以下6个属性设置在容器上。

flex-direction属性决定主轴的方向(即项目的排列方向)。

它可能有4个值。

默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

它可能取三个值。

(1)nowrap(默认):不换行。

(2)wrap:换行,第一行在上方。

(3)wrap-reverse:换行,第一行在下方。

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

justify-content属性定义了项目在主轴上的对齐方式。

它有5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

align-items属性定义项目在交叉轴上如何对齐。

它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

该属性可能取6个值。

小结:

justify 是对主轴对齐方式。

align开头的都是对交叉轴进行排列的项目。

以下6个属性设置在项目上。

order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

负值对该属性无效。

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

接下来需要添加一些Css弹性盒子:桃园三兄弟之:flex-grow、flex-shrink、flex-basis详解

参考文章:

CSS3 弹性布局

flex 是 flexible box 的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。能够高效方便的控制元素的对齐、排列,自动计算布局内元素的尺寸,无论元素的尺寸是固定的还是动态的,控制元素在页面的布局方向。

弹性盒子由弹性容器(flex container)和弹性子元素(flex item)组成。

弹性容器设置属性?display:flex;

一、容器属性

flex-flow 复合属性,是 flex-direction 和 flex-wrap 的简写形式。 默认值:flex-flow: row nowrap;

⑴ flex-direction 子元素排列方向

flex-direction: row; 从左到右

flex-direction: row-reverse; 从右到左

flex-direction: column; 从上到下

flex-direction: column-reverse; 从下到上

⑵ flex-wrap 子元素换行方式

flex-wrap: nowrap; 不换行

flex-wrap:wrap; 换行

flex-wrap: wrap-reverse; 反转 wrap 排列,行颠倒

2 justify-content 子元素沿主轴对齐方式

justify-content: flex-start;

justify-content: space-between;

3 align-items 子元素在交叉轴上对齐方式

align-items: center; 垂直方向居中

align-items:flex-start; 垂直方向的顶部/交叉轴的起点对齐

align-items: flex-end; 垂直方向的底部/交叉轴的终点对齐

align-items: baseline; 项目的第一行的文字的基线对齐

align-items: stretch; 默认值,如果项目未设置高度或设为auto,将占满整个容器的高度

二、子元素属性(写在子元素下)

align-self 用于设置弹性子元素自身在侧轴(纵轴)方向上的对齐方式。允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。

align-items: center;

align-items: flex-start;

align-items: flex-end;

align-items: baseline;

align-items: stretch;

order 定义子元素的排列顺序。数值越小,排列越靠前,默认为order: 0;,可以为负值。

flex-grow 定义子元素的扩展比率,主要作用:分配剩余空间。负值无效。

flex-grow: 0; 默认值,即如果存在剩余空间,也不放大。

flex-grow: 1; 如果存在剩余空间,放大 ,等分剩余空间。

flex-shrink 定义子元素的收缩比率,值越大,按比例缩的就越小。

flex-shrink: 1; 默认值,即如果空间不足,缩小。

flex-shrink: 0; 不缩小。

flex-basis 定义元素的默认基准值。

设置了flex-basis,width就不起作用;同时存在的时候,优先使用flex-basis。

如果容器的宽度太小,子元素排列不下,设置的flex-basis的宽度会自动缩小,直到占满容器。

链接:

【归纳】flex布局

说到flex布局,在我之前的影响中,只知道这是一种较传统布局较方便的布局,这种布局对我来说是全新的。在flex布局出现之前,我们使用的传统布局主要有以下几种:

这些传统的布局方式虽然可以满足我们的很多需求,但是也并不方便,比如实现垂直居中。而现在我们就要开始接触flex布局这种新的布局方式了。flex也可称为“弹性布局”,flex布局有以下几个特点:

接下来就将对flex布局的几个重要知识点进行归纳。

采用flex布局的元素,称为flex容器(flex container)。它的所有子元素自动成为容器成员,称为flex项目(flex item)。

如上图所示,该flex容器在纵横有两根轴,其中横向的称为主轴(main axis),纵向的称为侧轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。子元素默认是沿主轴排列的。子元素在主轴方向的宽度叫做main size,在侧轴方向的高度叫做cross size。

flex container(flex容器)有如下六个属性:

该属性主要有以下值:

该属性主要有以下值:

默认值为row nowrap,可以以如下方法设定该属性:

该属性主要有以下值:

该属性主要有以下值:

该属性主要有以下值:

flex item(子元素)有如下六个属性:

该属性默认值为0。

如果所有子元素的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个子元素的flex-grow属性为2,其他子元素都为1,则前者占据的剩余空间将比其他项多一倍。

该属性默认值为1。

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

flex-basis属性定义了在分配多余空间之前,子元素占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即子元素的本来宽度。

默认值为0 1 auto。可以以如下方式设定该属性:

数值越小,排列越靠前,默认为0。

即不使用父元素决定的对齐方式,自身设定一个对齐方式。可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

flex 布局可以简便、完整、响应式地实现各种页面布局。下面就简要地记录几个flex布局的技巧

如果内容被修剪,需要浏览器显示滚动条,以便查看剩余内容,可以使用 over-flow:auto;

实现手机上中下布局:

以上就是我此次关于flex学习的一些记录。可以看出,这次学习是围绕着阮一峰的一篇关于flex的博客展开的,他的博客对我此次学习flex布局以及此次的flex博客编写起到了一定的帮助。除此之外,我在这里推荐两个关于flex学习的小游戏,寓教于乐,十分有趣。

博客原地址:

28、弹性布局flex

布局类型:

1、浮动+定位

2、自适应(百分比)

3、响应式布局

4、弹性布局(flex布局)

弹性布局的优缺点:

1、优点:兼容性支持所有浏览器(Webkit内核的浏览器要加上-webkit-),可以随用户的喜好进行调节,可以将任何一个容器指定为Flex布局;

2、缺点:弹性布局较复杂,需兼容IE6;

注意:当使用了弹性布局,在css中的float、clear和vertical-align就会失效

1、flex-direction弹布局方向即容器方向

row:默认方向,从左到右

row-reverse:从右向左

column:从上到下

column-reverse:从下到上

2、flex-wrap换行

nowrap:默认不换行

wrap:向下换行

wrap-reverse:向上换行

3、flex-flow方向和换行的简写

例如,flex-flow:row nowrap;

4、justify-content容器方向上的对齐方式

flex-start:默认向左对齐

flex-end:向右对齐

center:居中对齐

space-between:两端对齐,子元素之间有间隔,子元素与边框之间无间隔

space-around:每个子元素两侧的间隔相等。子元素之间的间隔比子元素与容器边框的间隔大一倍

5、align-items默认垂直容器方向上的对齐方式

flex-start:垂直方向的起点对齐

flex-end:垂直方向的终点对齐

center:垂直方向的中点对齐

baseline:与第一个子元素中文字的基线对齐

stretch(默认值):如果子元素没有设置高度或者高度设为auto,那么它将占满整个容器的高度

6、align-content子元素两种方向上的对齐

flex-start:当容器方向子元素刚好填满时,与垂直方向的起点对齐

flex-end:当容器方向子元素刚好填满时,与垂直方向的终点对齐

center:当容器方向子元素刚好填满时,与垂直方向的中点对齐

space-between:当容器方向子元素刚好填满时,垂直方向两端对齐,子元素之间的等间距间隔

space-around:两个方向两侧的间隔都相等。所以轴线之间的间隔比轴线与边框的间隔大一倍

stretch(默认值):沾满整个垂直方向

1、order排序,integer(整数),数值小的在前面

2、flex-grow放大比例,number,默认值为0

3、flex-shrink缩小比例,number,默认值为1

注:给所有子元素设置该属性为1,当空间不足时,所有子元素将等比例缩小平分所有空间。如果单独给某个子元素设置为0,那么该子元素将空间不足时不缩小。

4、flex-basis属性

该属性定义了给子元素分配空间时其占据的空间为多少,可以设置为与其width和height属性一样的值,那么它将被分配固定的空间大小。

5、flex属性:flex-grow、flex-shrink和flex-basis的简写

6、align-self属性

该属性允许设置过额子元素有与其他子元素不一样的对齐方式,可以覆盖align-items属性

auto(默认值):表示默认继承父级的align-items属性

flex-start:垂直方向的起点对齐

flex-end:垂直方向的终点对齐

center:垂直方向的中点对齐

baseline:与第一个子元素中文字的基线对齐

stretch(默认值):如果子元素没有设置高度或者高度设为auto,那么它将占满整个容器的高度

(责任编辑:IT教学网)

更多

推荐管理维护文章