CSS样式表代码布局基础教程

html-css012

CSS样式表代码布局基础教程,第1张

CSS样式表代码布局基础教程

CSS样式表代码布局基础教程—课程10:外部样式表(一)

十、外部样式表

外部样式表是把各种样式单独存在一个文件里,供其他多个网页调用,下面我们来看一个练习;

1、文本编辑器

1)打开记事本或 gedit、leafpad 文本编辑器,gedit 在查看菜单里选择“HTML”;

2)点菜单“文件-保存”命令,以“lx10.html”为文件名,类型所有文件,编码 UTF-8,保存到自己的文件夹;

3)按照基础02课的方法,输入、和的内容;

2、外部样式表

1)点菜单“文件-新建”,新建一个空白文档,保存文件名为 style.css ,位置跟 lx10 放一起,这是一个单独的文件;

2)在里面输入下面的内容;

/* by TeliuTe */

body {

background-color: #ccffff

font-size:1.2em

span {

color:#800000

.myblue {

color:blue

3)第一行 /* ... */ 是注释,注明作者版权用途等,根据自己的需要,

下面的内容跟内部样式表相同,各个标签和它的样式,保存一下文件;

4)回到 lx10.html 文档中,在 head 区内加上下面一行外部引用标识;

5)然后在 body 区内,输入下面的内容;

1)点菜单“文件-新建”,新建一个空白文档,保存文件名为 style.css ,位置跟 lx10 放一起,这是一个单独的文件;

6)保存一下文件,回到自己文件夹中,打开 lx10 网页,看一下效果;

7)在多个网页具有相同样式时,使用外部样式表可以节省空间和减小网页大小;

本节学习了外部样式表的使用方法,你成功地完成了本教程,欢迎继续学习本站的其他课程!

本教程由86团学校TeliuTe制作 http://teliute.laxjyj.com

(计算机基础知识,电脑知识入门学习,请到http://电脑知识网)

CSS标签大全(一)

字体属性:(font)

大小 font-size: x-large(特大) xx-small(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD

样式 font-style: oblique(偏斜体) italic(斜体) normal(正常)

行高 line-height: normal(正常) 单位:PX、PD、EM

粗细 font-weight: bold(粗体) lighter(细体) normal(正常)

变体 font-variant: small-caps(小型大写字母) normal(正常)

大小写 text-transform: capitalize(首字母大写) uppercase(大写) lowercase(小写) none(无)

修饰 text-decoration: underline(下划线) overline(上划线) line-through(删除线) blink(闪烁)

常用字体:(font-family)"Courier New", Courier, monospace, "Times New Roman", Times, serif, Arial, Helvetica, sans-serif, Verdana

背景属性:(background)

色彩background-color: #FFFFFF

图片background-image: url()

重复background-repeat: no-repeat

滚动background-attachment: fixed(固定) scroll(滚动)

位置background-position: left(水平) top(垂直)

简写方法 background:#000 url(..) repeat fixe辅助图片一律用背景处理d left top

区块属性: (Block)

字间距letter-spacing: normal数值

对刘text-align: justify(两端对齐) left(左对齐) right(右对齐) center(居中)

缩进text-indent: 数值px

垂直对齐vertical-align: baseline(基线) sub(下标) super(下标) toptext-topmiddlebottomtext-bottom

词间距word-spacing: normal数值

空格white-space: pre(保留) nowrap(不换行)

显示display:block(块) inline(内嵌) list-item(列表项) run-in(追加部分) compact(紧凑) marker(标记) tableinline-tabletable-raw-grouptable-header-grouptable-footer-grouptable-rawtable-column-grouptable-columntable-celltable-caption(表格标题)

方框属性:(Box)

width:height:float:clear:bothmargin:padding:顺序:上右下左

边框属性: (Border)

border-style: dotted(点线)dashed(虚线)solid(实线)double(双线)groove(槽线)ridge(脊状) inset(凹陷) outset

border-wid

th:边框宽度

border-color:#

简写方法border:width style color

列表属性: (List-style)

类型list-style-type: disc(圆点) circle(圆圈) square(方块) decimal(数字) lower-roman(小罗码数字) upper-romanlower-alphaupper-alpha

位置list-style-position: outside(外) inside

图像list-style-image: url(..)

定位属性: (Position)

Position: absoluterelativestatic

visibility: inheritvisiblehidden

overflow: visiblehiddenscrollauto

clip: rect(12px,auto,12px,auto) (裁切) css属性代码大全

一 CSS文字属性:

color : #999999/*文字颜色*/

font-family : 宋体,sans-serif/*文字字体*/

font-size : 9pt/*文字大小*/

font-style:itelic/*文字斜体*/

font-variant:small-caps/*小字体*/

letter-spacing : 1pt/*字间距离*/

line-height : 200%/*设置行高*/

font-weight:bold/*文字粗体*/

vertical-align:sub/*下标字*/

vertical-align:super/*上标字*/

text-decoration:line-through/*加删除线*/

text-decoration: overline/*加顶线*/

text-decoration:underline/*加下划线*/

text-decoration:none/*删除链接下划线*/

text-transform : capitalize/*首字大写*/

text-transform : uppercase/*英文大写*/

text-transform : lowercase/*英文小写*/

text-align:right/*文字右对齐*/

text-align:left/*文字左对齐*/

text-align:center/*文字居中对齐*/

text-align:justify/*文字分散对齐*/

vertical-align属性

vertical-align:top/*垂直向上对齐*/

vertical-align:bottom/*垂直向下对齐*/

vertical-align:middle/*垂直居中对齐*/

vertical-align:text-top/*文字垂直向上对齐*/

vertical-align:text-bottom/*文字垂直向下对齐*/

二、CSS边框空白

padding-top:10px/*上边框留空白*/

padding-right:10px/*右边框留空白*/

padding-bottom:10px/*下边框留空白*/

padding-left:10px/*左边框留空白*/

三、CSS符号属性:

list-style-type:none/*不编号*/

list-st

yle-type:decimal/*阿拉伯数字*/

list-style-type:lower-roman/*小写罗马数字*/

list-style-type:upper-roman/*大写罗马数字*/

list-style-type:lower-alpha/*小写英文字母*/

list-style-type:upper-alpha/*大写英文字母*/

list-style-type:disc/*实心圆形符号*/

list-style-type:circle/*空心圆形符号*/

list-style-type:square/*实心方形符号*/

list-style-image:url(/dot.gif)/*图片式符号*/

list-style-position: outside/*凸排*/

list-style-position:inside/*缩进*/

四、CSS背景样式:

background-color:#F5E2EC/*背景颜色*/

background:transparent/*透视背景*/

background-image : url(/image/bg.gif)/*背景图片*/

background-attachment : fixed/*浮水印固定背景*/

background-repeat : repeat/*重复排列-网页默认*/

background-repeat : no-repeat/*不重复排列*/

background-repeat : repeat-x/*在x轴重复排列*/

background-repeat : repeat-y/*在y轴重复排列*/

指定背景位置

background-position : 90% 90%/*背景图片x与y轴的位置*/

background-position : top/*向上对齐*/

background-position : buttom/*向下对齐*/

background-position : left/*向左对齐*/

background-position : right/*向右对齐*/

background-position : center/*居中对齐*/

五、CSS连接属性:

a /*所有超链接*/

a:link /*超链接文字格式*/

a:visited /*浏览过的链接文字格式*/

a:active /*按下链接的格式*/

a:hover /*鼠标转到链接*/

鼠标光标样式:

链接手指 CURSOR: hand

十字体 cursor:crosshair

箭头朝下 cursor:s-resize

十字箭头 cursor:move

箭头朝右 cursor:move

加一问号 cursor:help

箭头朝左 cursor:w-resize

箭头朝上 cursor:n-resize

箭头朝右上 cursor:ne-resize

箭头朝左上 cursor:nw-resize

文字I型 cursor:text

箭头斜右下 cursor:se-resize

箭头斜左下 cursor:sw-resize

漏斗 cursor:wait

光标图案(IE6) p {cursor:url("光标文件名.cur"),text}

六、CSS框线一览表:

border-top : 1px solid #6699cc/*上框线*/

border-bottom : 1px solid #6699cc

/*下框线*/

border-left : 1px solid #6699cc/*左框线*/

border-right : 1px solid #6699cc/*右框线*/

以上是建议书写方式,但也可以使用常规的方式 如下:

border-top-color : #369 /*设置上框线top颜色*/

border-top-width :1px /*设置上框线top宽度*/

border-top-style : solid/*设置上框线top样式*/

其他框线样式

solid /*实线框*/

dotted /*虚线框*/

double /*双线框*/

groove /*立体内凸框*/

ridge /*立体浮雕框*/

inset /*凹框*/

outset /*凸框*/

七、CSS表单运用:

文字方块

按钮

复选框

选择钮

多行文字方块

下拉式菜单 选项1选项2

八、CSS边界样式:

margin-top:10px/*上边界*/

margin-right:10px/*右边界值*/

margin-bottom:10px/*下边界值*/

margin-left:10px/*左边界值*/

CSS 属性: 字体样式(Font Style)

序号 中文说明 标记语法

1 字体样式 {font:font-style font-variant font-weight font-size font-family}

2 字体类型 {font-family:"字体1","字体2","字体3",...}

3 字体大小 {font-size:数值|inherit| medium| large| larger| x-large| xx-large| small| smaller| x-small| xx-small}

4 字体风格 {font-style:inherit|italic|normal|oblique}

5 字体粗细 {font-weight:100-900|bold|bolder|lighter|normal}

6 字体颜色 {color:数值}

7 阴影颜色 {text-shadow:16位色值}

8 字体行高 {line-height:数值|inherit|normal}

9 字 间 距 {letter-spacing:数值|inherit|normal}

10 单词间距 {word-spacing:数值|inherit|normal}

11 字体变形 {font-variant:inherit|normal|small-cps }

12 英文转换 {text-transform:inherit|none|capitalize|uppercase|lowercase}

13 字体变形 {font-size-adjust:inherit|none}

14 字体 {font-stretch:condensed|expanded|extra-condensed|extra-expanded|inherit|narrower|normal| semi-condensed|semi-expanded|ultra-condensed|ultra-expanded|wider}

文本样式(Text Style)

序号 中文说明 标记语法

1

行 间 距 {line-height:数值|inherit|normal}

2 文本修饰 {text-decoration:inherit|none|underline|overline|line-through|blink}

3 段首空格 {text-indent:数值|inherit}

4 水平对齐 {text-align:left|right|center|justify}

5 垂直对齐 {vertical-align:inherit|top|bottom|text-top|text-bottom|baseline|middle|sub|super}

6 书写方式 {writing-mode:lr-tb|tb-rl}

背景样式

序号 中文说明 标记语法

1 背景颜色 {background-color:数值}

2 背景图片 {background-image: url(URL)|none}

3 背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y}

4 背景固定 {background-attachment:fixed|scroll}

5 背景定位 {background-position:数值|top|bottom|left|right|center}

6 背影样式 {background:背景颜色|背景图象|背景重复|背景附件|背景位置}

框架样式(Box Style)

序号 中文说明 标记语法

1 边界留白 {margin:margin-top margin-right margin-bottom margin-left}

2 补 白 {padding:padding-top padding-right padding-bottom padding-left}

3 边框宽度 {border-width:border-top-width border-right-width border-bottom-width border-left-width}

宽度值: thin|medium|thick|数值

4 边框颜色 {border-color:数值 数值 数值 数值} 数值:分别代表top、right、bottom、left颜色值

5 边框风格 {border-style:none|hidden|inherit|dashed|solid|double|inset|outset|ridge|groove}

6 边 框 {border:border-width border-style color}

上 边 框 {border-top:border-top-width border-style color}

右 边 框 {border-right:border-right-width border-style color}

下 边 框 {border-bottom:border-bottom-width border-style color}

左 边 框 {border-left:border-left-width border-style color}

7 宽 度 {width:长度|百分比| auto}

8 高 度 {height:数值|auto}

9 漂 浮 {float:left|right|none}

10 清 除 {clear:none|left|right|both}

分类列表

序号 中文说明 标记语法

1 控制显示 {display:none

|block|inline|list-item}

2 控制空白 {white-space:normal|pre|nowarp}

3 符号列表 {list-style-type:disc|circle|square|decimal|lower-roman|upper-roman|lower-alpha|upper-alpha|none}

4 图形列表 {list-style-image:URL}

5 位置列表 {list-style-position:inside|outside}

6 目录列表 {list-style:目录样式类型|目录样式位置|url}

7 鼠标形状 {cursor:hand|crosshair|text|wait|move|help|e-resize|nw-resize|w-resize|s-resize|se-resize|sw-resize}

word-wrap是控制换行的。使用break-word时,是将强制换行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。break-word是控制是否断词的。normal是默认情况,英文单词不被拆开。break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)ie下:使用word-wrap:break- word所有的都正常。ff下:如这2个都不用的话,中文不会出任何问题。英文语句也不会出问题。但是,长串英文会出问题。为了解决长串英文,一般用 word-wrap:break-wordword-break:break-all。但是,此方式会导致,普通的英文语句中的单词会被断开(ie下也是)。目前主要的问题存在于 长串英文 和 英文单词被断开。其实长串英文就是一个比较长的单词而已。即英文单词应不应该被断开那?那问题很明显了,显然不应该被断开了。对于长串英文,就是恶意的东西,自然不用去管了。但是,也要想些办法,不让它把容器撑大。用:overflow:autoie下,长串会自动折行。ff下,长串会被遮盖。所以,综上,最好的方式是word-wrap:break-wordoverflow:hidden而不是word-wrap:break-wordword-break:break-all。

CSS样式表代码布局基础教程—课程9:链接样式

九、链接样式

使用伪类可以设置链接的样式,比如改变颜色、去掉下划线等,下面我们来看一个练习;

1、文本编辑器

1)打开记事本或 gedit、leafpad 文本编辑器,gedit 在查看菜单里选择“HTML”;

2)点菜单“文件-打开”命令,打开自己文件夹里的lx7.html

3)再点菜单“文件-另存为”命令,保存文件名为 “lx9.html”

2、设置伪类

1)在 head 区内,输入内部样式表,设定各个 的锚标记样式,如下;

2)第一个 a 设定全局锚点的样式,用块显示、宽度是50像素、背景色是浅绿色,接下来是锚点 a 的成员:

link 是链接,设定页面中的链接样式,颜色蓝色,不带下划线,

visted 是访问过的链接,设定样式为栗色、不带下划线,

active 是按下鼠标时的链接,设定颜色为绿色、无下划线,

hover 是鼠标移过来悬停,设定颜色为红色、有下划线,背景色改成黄色,hover 放在其他几个成员的后面;

3)保存一下文件,回到自己的文件夹中,打开 lx9 网页,试着用鼠标点击、拖动链接,看一下效果;

本节学习了设置链接样式的基本方法,如果你成功地完成了练习,请继续学习下一课内容;

CSS样式表代码布局基础教程—课程8:内部样式表(一)

八、内部样式表

内部样式表放在网页的...区内,集中在一起方便管理,下面我们来看一个练习;

1、文本编辑器

1)打开记事本或 gedit、leafpad 文本编辑器,gedit 在查看菜单里选择“HTML”;

2)点菜单“文件-保存”命令,以“lx8.html”为文件名,类型所有文件,编码 UTF-8,保存到自己的文件夹;

3)按照基础02课的方法,输入、和的内容;

2、内部样式表

1)对系统标签使用样式,这会影响所有的这种标签,在 head 区输入下面的代码;

2)第一行是样式表开始,最后是样式表结束, 是注释标签,

首先是对 body 标签设置样式,这样凡是在 body 区里的内容,都会使用这个样式,设置背景色和文字大小

然后对 span 标签设置样式,设置内容的颜色,以后凡是用到 span 的地方,都使用这个颜色;

3)接着在 body 区里输入下面的内容;

1)对系统标签使用样式,这会影响所有的这种标签,在 head 区输入下面的代码;

4)保存一下文件,回到自己的文件夹里,打开 lx8 网页,看一下效果;

5)自定义样式选择符,除了系统的标签外,也可以自己定义需要的样式标记,在 head 的.样式表里加入下面的代码;

.myblue {

color:blue

前面的点,表示这是一个通用的样式,可以重复使用,如果是 #号,表示是一个标识符,是专用唯一的 id,myblue 是自定义的样式名称;

6)在 body 区里加入下面的代码,加在上一行的前面,再加上

标签分成两段;

7)这儿使用的是 span,里面的 class 套用的是 myblue 样式,替换了前面设的样式,

保存一下文件,到浏览器中看看效果;

本节学习了使用内部样式表的基本方法,如果你成功地完成了练习,请继续学习下一课内容;

CSS样式表代码布局基础教程—课程7:ul列表(一)

七、ul 列表

对于排列有序的条目,可以使用列表来实现,下面我们来看一个练习;

1、文本编辑器

1)打开记事本或 gedit、leafpad 文本编辑器,gedit 在查看菜单里选择“HTML”;

2)点菜单“文件-保存”命令,以“lx8.html”为文件名,类型所有文件,编码 UTF-8,保存到自己的文件夹;

3)按照基础02课的方法,输入、和的内容;

2、使用列表(计算机基础知识,电脑知识入门学习,请到http://电脑知识网)

1)在后面接着输入下面的代码;

第一课

第二课

第三课

2)前面的

建立一个列表,里面的各个

是列表项,各个列表项排列对齐缩进,前面有一个圆点列表符号,

保存一下文件,到自己文件夹里,打开 lx7 网页,看看列表的效果,这儿加了 超级链接;

3)如果要去掉前面的圆点,可以在 ul 的样式里设定,前面的缩进也可以设定内边距为 0,输入下面的代码;

第一课

第二课

第三课

4)保存一下,再到浏览器里看一下,三个列表都排到了左边对齐;

5)如果要排列成横向水平的菜单样式,可以在每个列表项里加上 float 属性,防止重叠再设定一个宽度,代码如下;

6)保存一下,再到浏览器里看一下,三个列表项都水平排列了;

本节学习了列表的基本使用方法,如果你成功地完成了练习,请继续学习下一课内容;

CSS样式表代码布局基础教程—课程6:div布局(一)

六、div 布局

默认 div 占据一行,第二个 div 到下一行去,怎样用 div 进行分栏布局,我们来看一个练习;

1、文本编辑器

1)打开记事本或 gedit、leafpad 文本编辑器,gedit 在查看菜单里选择“HTML”;

2)点菜单“文件-打开”命令,打开上次的 lx5 网页,再点“文件-另存为”,以“lx6.html”为文件名,保存到自己的文件夹;

3)按照两列并排来进行布局;

2、定位布局

1)在下面加一个

标签,作为主框架,在标签里加入下面的样式;

2)前面的 id 是这个 div 的标识符,用来标记这个 div 容器,

在里面的样式里设置了颜色、边框、内边距,

设定了固定宽度 604,高度 202,这个可以计算出来,根据下面两列的宽度再加上内边距;

3)修改里面的古诗的 div 样式,加上背景色、去掉内外边距,最后加上一个左浮动 float:left

4)在这个后面,再加上另一个 div,样式相同,里面输入另一首古诗 ;

5)这儿的 float:left让这个 div 框,跟上一个框并排左对齐,而不是到下一行去,

最后再加一个标签,结束最外面的大框架;

6)保存一下文件,回到自己文件夹里,打开 lx6 网页看看效果;

本节学习了使用 div 布局的基本方法,如果你成功地完成了练习,请继续学习下一课内容;

我们只会用到一点点儿CSS布局的属性,虽然少,但既然要用到,就得把它们总结在这里,搞明白。

在了解CSS布局的相关属性之前,我们先了解一下 盒子模型——CSS会把每个组件都看作是一个盒子,每个盒子从内往外有三个部分:

组件的宽度和高度决定了它在屏幕上显示的尺寸,一个组件的宽度和高度就是它 外边框所包围矩形 的宽度和高度,iOS里也是这样的。

我们可以通过 width 和 height 属性给一个组件设置固定的宽度,不过需要注意 这两个属性只能接收数值,不能带单位,这是因为RN要自己去适配安卓和iOS的单位。

在RN里,我们想让一个组件自适应宽高,要分两步。 首先我们要让该组件撑满它的父视图,即如果我们想自适应宽度,就得先让子视图的宽度撑满它父视图的宽度,如果我们想自适应高度,就得先让子视图撑满它父视图的高度,如果我们宽度和高度都想自适应,就得先让子视图把它父视图的宽度和高度都撑满。然后才能像我们iOS里使用Masonry那样,通过给组件添加上边距、左边距、下边距、右边距等约束来实现宽度和高度的自适应。

这里再对第一步做个解释, item的 flex: 1 属性可以让item在主轴上撑满它的容器,容器的 alignItems: 'stretch' 属性 + item在侧轴上不设置空间可以让item在侧轴上撑满它的容器。 好像有点不明白是吧,我们再通过一个例子来说得明了点,RN里不是默认主轴为竖向、侧轴为横向嘛,我们就采取这个默认状态来举例子。 在RN里,默认主轴为竖向、侧轴为横向的状态下,如果我们想让某个组件自适应高度,就得首先在它自身上设置 flex: 1 属性,来让它的高度撑满它的父视图;如果我们想让某个组件自适应宽度,就得首先在它父视图身上设置 alignItems: 'stretch' 属性(当然默认就是这个值),这还不够,你还得确保不给这个组件设置 width 属性或者 width 属性的值设为 auto ;如果我们想让一个组件自适应宽高,则两者都得做。 当然,如果我们设置了主轴为横向、侧轴为竖向,其实也是一样的道理,自己捋一下就知道怎么做了。如果还是看不懂的话,没有关系,下面我们会详细谈到这几个属性,等你学了这几个属性,反过头来看这里就明白了。

Flex是Flexible Box的缩写,可译为灵活的、有弹性的盒子。那Flex布局就是Flexible Box布局的缩写,就译为弹性盒子布局,用来对一个盒子进行灵活的布局。

在了解Flex布局之前,我们得先了解一下Flex布局里的两对儿 重要的 概念。

采用Flex布局的组件,被称为Flex容器(flex container),简称容器(container)。

这个组件上的子组件,被称为Flex项目(flex item),简称item(项目)。

我们可以把容器和item看做是父视图和子视图的关系, 因此下文中的容器、父组件、父视图将是一样的概念,item、组件、子视图将是一样的概念,组件和视图将是一样的概念。

每个容器都有两根轴,一个是 主轴, 一个是 侧轴

容器里众多的 item自动沿主轴进行排列。

一个item在主轴方向上所占据的空间称为 main size ,一个item在侧轴方向上所占据的空间称为 cross size 。

RN里主轴的默认方向为竖向,侧轴为横向。 浏览器里主轴的默认方向为横向,侧轴为竖向,下面我们讲Flex布局的属性时会采用浏览器的状态,学会后对应到RN里,换个主轴方向就可以了。

用在容器上的属性,最常用的有 5个 而且这些属性还都不是从来设置容器自己的布局,而是用来设置容器里item的布局。

flex-direction 属性用来设置主轴的方向,即容器里item自动排列的方向。 在浏览器里,主轴的方向默认为横向,所以 flex-direction 属性的默认值为 row 。

它有4种取值。

justify-content 属性用来设置item在主轴上的对齐方式。

它有5种取值。

align-items 属性用来设置item在侧轴上的对齐方式。

它有5种取值。

默认情况下,一个容器只有一条主轴,所有的item都会沿着这条主轴自动排列下去,但是如果item太多了,一个屏幕长度的主轴根本串儿不下这么多item,那后面的item就会溢出屏幕,而界面还不是 ScrollView ,不能滚动,怎么办呢?

flex-wrap 属性用来设置换行,即当容器主轴上显示不下那么多的item时,我们可以让item换行来显示,并且一旦设置了换行,那么这个容器就不再是一条主轴了,而是会有多条平行的主轴。

它有3种取值。

align-content 属性用来设置多条主轴的对齐方式, 如果项目只有一根轴线,该属性不起作用, 即 align-content 属性要基于 flex-wrap 属性设置了换行才有使用的意义。

它有6种取值。

用在item上的属性,最常用的有 2个 这些属性都是用来设置item自己的布局。

在第1小节容器的属性,我们已经通过 align-items 属性统一设置了容器里item在侧轴上的对齐方式,但如果其中某个item不想遵循这个对齐方式怎么办呢?我们会常见到这种场景,10个里有8个item是一样的对齐方式,就有1、2个item特立独行,那我们就得用item自己的 align-self 属性来单独给它们设置对齐方式了。

align-self 属性用来设置单个item在侧轴上的对齐方式, 注意是给特立独行的单个item设置哦,而且是侧轴,它会覆盖它容器的 align-items 属性,当然如果不设置这个属性,默认值就为 auto ,即item会默认使用容器的 align-items 属性给它设置的对齐方式。

它有6种取值,除了 auto ,其他都与 align-items 属性完全一致。怎么说呢,item的 align-self 属性似乎是用来造反的,反抗它容器的 align-items 属性。

flex 属性接收一个整数值, flex 属性描述起来太麻烦了,可以自行去搜索加深理解,我这里只列举出它的用途及注意事项。

(1) flex 属性有三个用途

(2)使用 flex 属性需注意

iOS里怎么使用Masonry布局的,RN里就怎么使用 Flex布局+CSS布局 来做布局就行了,它们布局的思路是一样的, 一个组件也同样至少需要四个约束。

当然,它们之间有一个极其细小的差别,那就是:上面提到的“RN里组件自适应宽高分两步”,而iOS里Masonry才不管你什么撑满不撑满呢。

当然,它们之间有一个极其巨大的差别,那就是:iOS里是没有主轴和侧轴之分的,你可以在一个父视图上横向、竖向同时放控件,并同时完成横向和竖向的布局。但RN里有主轴和侧轴之分,我们添加的组件只会沿着主轴排列,不可能同时出现横向和竖向排列,并且布局的时候也只能是沿着主轴布局,不可能同时完成两个方向的布局。

下面我们就通过几个小练习,来对比一下Masonry布局和Flex布局+CSS布局的思路,加深对RN里怎么布局组件的理解。

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

Masonry:

Flex布局+CSS布局:

参考博客:

阮一峰的《Flex布局:语法篇》

阮一峰的《Flex布局:实例篇》