1.只有文字才能组成段落因此p里面不能放块级元素,同理还有这些标签h1,h2,h3,h4,h5,h6,dt,他们都是文字类块级标签,里面不能放其他块级元素。2.链接里面不能再放链接。3.a里面可以放块级元素
~~~行内元素的特点:(1)和相邻行内元素在一行上。(2)高、宽无效,但水平方向的padding和margin可以设置,垂直方向的无效。(3)默认宽度就是它本身内容的宽度。(4)行内元素只能容纳文本或则其他行内元素。~~~
,可以对它们设置宽高和对齐属性,有些资料可能会称它们为行内块元素。 行内块元素的特点:(1)和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。(2)默认宽度就是它本身内容的宽度。(3)高度,行高、外边距以及内边距都可以控制。```
##标签显示模式转换display 块转行内:display:inline; 行内转块:display:block; 块、行内元素转换为行内块:display:inline-block; 此阶段,我们只需关心这三个,其他的是我们后面的工作。 ##课堂练习 1.写三个div给定100*100的红色盒子--宽度高度背景色 2.三个span也要求150*150绿色盒子 3.三个a链接80*20蓝色盒子要求必须一行显示这三个盒子4.鼠标经过3个a链接的时候,背景颜色变为橙色hoverbgc5.导航栏案例 #CSS书写规范 开始就形成良好的书写规范,是你专业化的开始。 ##空格规范 【强制】选择器与{之间必须包含空格。 示例:.selector{} 【强制】属性名与之后的:之间不允许包含空格,:与属性值之间必须包含空格。 示例: font-size:12px; ##选择器规范 ```/*good*/.post,.page,.comment{line-height:1.5;} /*bad*/.post,.page,.comment{line-height:1.5;}``` 【建议】选择器的嵌套层级应不大于3级,位置靠后的限定条件应尽可能精确。 ```/*good*/#usernameinput{}.comment.avatar{} /*bad*/.page.header.login#usernameinput{}.commentdiv*{}``` ##属性规范 【强制】属性定义必须另起一行。 ```/*good*/.selector{margin:0;padding:0;} /*bad*/.selector{margin:0;padding:0;}``` 【强制】属性定义后必须以分号结尾。 ```/*good*/.selector{margin:0;} /*bad*/.selector{margin:0}``` #行高的测量
行高我们利用最多的一个地方是:可以让一行文本在盒子中垂直居中对齐。 做法就是:文字的行高等于盒子的高度。 这里情况些许复杂,开始学习,我们可以先从简单地方入手学会。
上距离和下距离总是相等的,因此文字看上去是垂直居中的。 如果行高等height高度文字会垂直居中 如果行高大于高度文字会偏下 如果行高小于高度文字会偏上 #CSS三大特性 层叠继承优先级是我们学习CSS必须掌握的三个特性。 ##CSS层叠性 所谓层叠性是指多种CSS样式的叠加。 是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉 比如先给某个标签指定了内部文字颜色为红色,接着又指定了颜色为蓝色,此时出现一个标签指定了相同样式不同值的情况,这就是样式冲突。就近原则 一般情况下,如果出现样式冲突,则会按照CSS书写的顺序,以最后的样式为准。 1.样式冲突,遵循的原则是就近原则。那个样式离着结构近,就执行那个样式。2.样式不冲突,不会层叠 ```CSS最后的执行口诀:长江后浪推前浪,前浪死在沙滩上。```
##CSS继承性 所谓继承性是指书写CSS样式表时,子标签会继承父标签的某些样式,如文本颜色和字号。想要设置一个可继承的属性,只需将它应用于父元素即可。 简单的理解就是:子承父业。 ```CSS最后的执行口诀:龙生龙,凤生凤,老鼠生的孩子会打洞。```
```恰当地使用继承可以简化代码,降低CSS样式的复杂性。子元素可以继承父元素的样式(text-,font-,line-这些元素开头的都可以继承,以及color属性)``` ##CSS优先级 定义CSS样式时,经常出现两个或更多规则应用在同一元素上,这时就会出现优先级的问题。 在考虑权重时,初学者还需要注意一些特殊的情况,具体如下: ```继承样式的权重为0。即在嵌套结构中,不管父元素样式的权重多大,被子元素继承时,他的权重都为0,也就是说子元素定义的样式会覆盖继承来的样式。 行内样式优先。应用style属性的元素,其行内样式的权重非常高,可以理解为远大于100。总之,他拥有比上面提高的选择器都大的优先级。 权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。 CSS定义了一个!important命令,该命令被赋予最大的优先级。也就是说不管权重如何以及样式位置的远近,!important都具有最大优先级。``` ###CSS特殊性(Specificity) 关于CSS权重,我们需要一套计算公式来去计算,这个就是CSSSpecificity,我们称为CSS特性或称非凡性,它是一个衡量CSS值优先级的一个标准具体规范入如下: specificity用一个四位的数字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。 |继承或者*的贡献值|0,0,0,0||--------------------|-------||每个元素(标签)贡献值为|0,0,0,1||每个类,伪类贡献值为|0,0,1,0||每个ID贡献值为|0,1,0,0||每个行内样式贡献值|1,0,0,0||每个!important贡献值重要的|∞无穷大| 权重是可以叠加的 比如的例子: ```divulli------>0,0,0,3 .navulli------>0,0,1,2 a:hover-----—>0,0,1,1 .nava------>0,0,1,1 #navp----->0,1,0,1``` 1.数位之间没有进制比如说:0,0,0,5+0,0,0,5=0,0,0,10而不是0,0,1,0,所以不会存在10个div能赶上一个类选择器的情况。 1.继承的权重是0 总结优先级: ```总结:权重是优先级的算法,层叠是优先级的表现``` #CSS背景(background) CSS可以添加背景颜色和背景图片,以及来进行图片设置。 |background-color|背景颜色||-------------------------------------|--------||background-image|背景图片地址||background-repeat|是否平铺||background-position|背景位置||background-attachment|背景固定还是滚动||背景的合写(复合属性)|||background:背景颜色背景图片地址背景平铺背景滚动背景位置|| ##背景图片(image) 语法: ~~~cssbackground-image:none|url(url)~~~ 参数: none:无背景图(默认的)url:使用绝对或相对地址指定背景图像 background-image属性允许指定一个图片展示在背景中(只有CSS3才可以多背景)可以和background-color连用。如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。如果有背景图片平铺,则会覆盖背景颜色。 小技巧:我们提倡背景图片后面的地址,url不要加引号。 ##背景平铺(repeat) ~~~cssbackground-repeat:repeat|no-repeat|repeat-x|repeat-y~~~ repeat:背景图像在纵向和横向上平铺(默认的) no-repeat:背景图像不平铺 repeat-x:背景图像在横向上平铺 repeat-y:背景图像在纵向平铺 设置背景图片时,默认把图片在水平和垂直方向平铺以铺满整个元素。
##背景位置(position) ~~~cssbackground-position:length||length background-position:position||position~~~ length:百分数|由浮点数字和单位标识符组成的长度值。请参阅长度单位position:top|center|bottom|left|center|right 说明: 设置或检索对象的背景图像位置。必须先指定background-image属性。默认值为:(0%0%)。如果只指定了一个值,该值将用于横坐标。纵坐标将默认为50%。第二个值将用于纵坐标。 1.position后面是x坐标和y坐标。可以使用方位名词或者精确单位。2.如果和精确单位和方位名字混合使用,则必须是x坐标在前,y坐标后面。比如background-position:15pxtop;则15px一定是x坐标top是y坐标。 实际工作用的最多的,就是背景图片居中对齐了。 ##背景附着 ~~~cssbackground-attachment:scroll|fixed~~~ scroll:背景图像是随对象内容滚动fixed:背景图像固定 设置或检索背景图像是随对象内容滚动还是固定的。 ##背景简写 background属性的值的书写顺序官方并没有强制标准的。为了可读性,建议大家如下写: background:背景颜色背景图片地址背景平铺背景滚动背景位置 ~~~cssbackground:transparenturl(image.jpg)repeat-yscroll50%0;~~~ ##背景透明(CSS3) CSS3支持背景半透明的写法语法格式是: ~~~cssbackground:rgba(0,0,0,0.3);~~~ 最后一个参数是alpha透明度取值范围0~1之间 注意:背景半透明是指盒子背景半透明,盒子里面的内容不收影响。 ##导航栏案例 **使用技巧**:在一行内的盒子内,我们设定行高等于盒子的高度,就可以使文字垂直居中。 #盒子模型(CSS重点) 其实,CSS就三个大模块:盒子模型、浮动、定位,其余的都是细节。要求这三部分,无论如何也要学的非常精通。 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。 ##看透网页布局的本质 网页布局中,我们是如何把里面的文字,图片,按照美工给我们的效果图排列的整齐有序呢?
牛奶是怎样运输,让消费者购买的呢?
我们说过,行内元素比如文字类似牛奶,也需要一个盒子把他们装起来,我们前面学过的双标签都是一个盒子。有了盒子,我们就可以随意的,自由的,摆放位置了。 看透网页布局的本质:把网页元素比如文字图片等等,放入盒子里面,然后利用CSS摆放盒子的过程,就是网页布局。
CSS其实没有太多逻辑可言,类似我们小时候玩的积木,我们可以自由的,随意的摆放出我们想要的效果。
##盒子模型(BoxModel) 这里略过老旧的ie盒子模型(IE6以下),对不起,我都没见过IE5的浏览器。 首先,我们来看一张图,来体会下什么是盒子模型。
所有的文档元素(标签)都会生成一个矩形框,我们成为元素框(elementbox),它描述了一个文档元素再网页布局汇总所占的位置大小。因此,每个盒子除了有自己大小和位置外,还影响着其他盒子的大小和位置。
##盒子边框(border) 边框就是那层皮。橘子皮。。柚子皮。。橙子皮。。。 ~~~cssborder:border-width||border-style||border-color~~~ 边框属性—设置边框样式(border-style) 边框样式用于定义页面中边框的风格,常用属性值如下: ~~~none:没有边框即忽略所有边框的宽度(默认值) solid:边框为单实线(最为常用的) dashed:边框为虚线 dotted:边框为点线 double:边框为双实线~~~ ###盒子边框写法总结表 |||||------|----------------------------------------|----------------------------------------||设置内容|样式属性|常用属性值||上边框|border-top-style:样式;border-top-width:宽度;border-top-color:颜色;border-top:宽度样式颜色;|||下边框|border-bottom-style:样式;border-bottom-width:宽度;border-bottom-color:颜色;border-bottom:宽度样式颜色;|||左边框|border-left-style:样式;border-left-width:宽度;border-left-color:颜色;border-left:宽度样式颜色;|||右边框|border-right-style:样式;border-right-width:宽度;border-right-color:颜色;border-right:宽度样式颜色;|||样式综合设置|border-style:上边[右边下边左边];|none无(默认)、solid单实线、dashed虚线、dotted点线、double双实线||宽度综合设置|border-width:上边[右边下边左边];|像素值||颜色综合设置|border-color:上边[右边下边左边];|颜色值、#十六进制、rgb(r,g,b)、rgb(r%,g%,b%)||边框综合设置|border:四边宽度四边样式四边颜色;|| border-top:1pxsolidred;/*上边框*/border-bottom:2pxsolidgreen;/*下边框*/border-left:1pxsolidblue;border-right:5pxsolidpink;border:1pxsolidred; ###表格的细线边框 以前学过的html表格边框很粗,这里只需要CSS一句话就可以美观起来。让我们真的相信,CSS就是我们的白马王子(白雪公主)。 table{border-collapse:collapse;}collapse单词是合并的意思 border-collapse:collapse;表示相邻边框合并在一起。 ##内边距(padding) padding属性用于设置内边距。是指边框与内容之间的距离。 padding-top:上内边距 padding-right:右内边距 padding-bottom:下内边距 padding-left:左内边距 注意:后面跟几个数值表示的意思是不一样的。 |值的个数|表达意思||----|----------------------------------------||1个值|padding:上下左右边距比如padding:3px;表示上下左右都是3像素||2个值|padding:上下边距左右边距比如padding:3px5px;表示上下3像素左右5像素||3个值|padding:上边距左右边距下边距比如padding:3px5px10px;表示上是3像素左右是5像素下是10像素||4个值|padding:上内边距右内边距下内边距左内边距比如:padding:3px5px10px15px;表示上3px右是5px下10px左15px顺时针| 课堂案例:新浪导航
###关于盒子宽度下列正确的是() (A)盒子宽:就是width的大小 (B)盒子宽:padding-left+width+padding-right (C)盒子宽:border-left+width+border-right (D)盒子宽:border-left+padding-left+width+padding-right+border-right w100padding10border5实际大小?130 ###3关于盒子高度下列正确的是() (A)盒子高:就是height的大小 (B)盒子高:padding-top+height+padding-bottom (C)盒子高:border-top+height+border-bottom (D)盒子高:border-top+padding-top+height+padding-bottom+border-bottom **4****关于根据下列代码计算盒子宽高下列说法正确的是()****** div{ width:200px; height:200px; border:1pxsolid#000000; border-top:5pxsolidblue; padding:50px; padding-left:100px; } (A)宽度为200px高度为200px (B)宽度为352px高度为306px (C)宽度为302px高度为307px (D)宽度为302px高度为252px ##外边距(margin) margin属性用于设置外边距。设置外边距会在元素之间创建“空白”,这段空白通常不能放置其他内容。 margin-top:上外边距 margin-right:右外边距 margin-bottom:下外边距 margin-left:上外边距 margin:上外边距右外边距下外边距左外边 取值顺序跟内边距相同。 ###外边距实现盒子居中 可以让一个盒子实现水平居中,需要满足一下两个条件: 1.必须是块级元素。2.盒子必须指定了宽度(width) 然后就给**左右的外边距都设置为auto**,就可使块级元素水平居中。 实际工作中常用这种方式进行网页布局,示例代码如下: ~~~css.header{width:960px;margin:0auto;}~~~ ###文字盒子居中图片和背景区别 1.文字水平居中是text-align:center2.盒子水平居中左右margin改为auto ~~~csstext-align:center;/*文字居中水平*/margin:10pxauto;/*盒子水平居中左右margin改为auto就阔以了*/~~~ 3.插入图片我们用的最多比如产品展示类4.背景图片我们一般用于小图标背景或者超大背景图片 ~~~csssectionimg{width:200px;/*插入图片更改大小width和height*/height:210px;margin-top:30px;/*插入图片更改位置可以用margin或padding盒模型*/margin-left:50px;/*插入当图片也是一个盒子*/} aside{width:400px;height:400px;border:1pxsolidpurple;background:#fffurl(images/sun.jpg)no-repeat;background-size:200px210px;/*背景图片更改大小只能用background-size*/background-position:30px50px;/*背景图片更该位置我用background-position*/}~~~ ###清除元素的默认内外边距 为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距: ~~~css*{padding:0;/*清除内边距*/margin:0;/*清除外边距*/}~~~ 注意:行内元素是只有左右外边距的,是没有上下外边距的。内边距,在ie6等低版本浏览器也会有问题。 我们尽量不要给行内元素指定上下的内外边距就好了。 ##外边距合并 使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。 ###相邻块元素垂直外边距的合并 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。
解决方案:避免就好了。 ###嵌套块元素垂直外边距的合并 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。
解决方案: 1.可以为父元素定义1像素的上边框或上内边距。2.可以为父元素添加overflow:hidden。 待续。。。。 ##content宽度和高度 使用宽度属性width和高度属性height可以对盒子的大小进行控制。 width和height的属性值可以为不同单位的数值或相对于父元素的百分比%,实际工作中最常用的是像素值。 大多数浏览器,如Firefox、IE6及以上版本都采用了W3C规范,符合CSS规范的盒子模型的总宽度和总高度的计算原则是: ```/*外盒尺寸计算(元素空间尺寸)*/Element空间高度=contentheight+padding+border+marginElement空间宽度=contentwidth+padding+border+margin/*内盒尺寸计算(元素实际大小)*/ElementHeight=contentheight+padding+border(Height为内容高度)ElementWidth=contentwidth+padding+border(Width为内容宽度)``` 1、宽度属性width和高度属性height仅适用于块级元素,对行内元素无效(img标签和input除外)。 2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。 3、**如果一个盒子则会和父亲一样宽占满父亲的宽度,如果此盒子没有给定宽度则padding不会影响本盒子大小**。 ##盒子模型布局稳定性 开始学习盒子模型,同学们最大的困惑就是,分不清内外边距的使用,什么情况下使用内边距,什么情况下使用外边距? 答案是:其实他们大部分情况下是可以混用的。就是说,你用内边距也可以,用外边距也可以。你觉得哪个方便,就用哪个。 但是,总有一个最好用的吧,我们根据稳定性来分,建议如下: 按照优先使用宽度(width)其次使用内边距(padding)再次外边距(margin)。 ```width>padding>margin``` 原因: 1.margin会有外边距合并还有ie6下面margin加倍的bug(讨厌)所以最后使用。 2.padding会影响盒子大小,需要进行加减计算(麻烦)其次使用。 3.width没有问题(嗨皮)我们经常使用宽度剩余法高度剩余法来做。 ##圆角边框(CSS3) 从此以后,我们的世界不只有矩形。radius半径(距离) 语法格式: ```cssborder-radius:50%;让一个正方形变成圆圈``` ##盒子阴影(CSS3) ~~~cssbox-shadow:水平阴影垂直阴影模糊距离(虚实)阴影尺寸(影子大小)阴影颜色内/外阴影;~~~  1.前两个属性是必须写的。其余的可以省略。2.外阴影(outset)但是不能写默认想要内阴影inset ~~~cssdiv{width:200px;height:200px;border:10pxsolidred;/*box-shadow:5px5px3px4pxrgba(0,0,0,.4);*//*box-shadow:水平位置垂直位置模糊距离阴影尺寸(影子大小)阴影颜色内/外阴影;*/box-shadow:015px30pxrgba(0,0,0,.4);}~~~ #浮动(float) ##普通流(normalflow) 这个单词很多人翻译为文档流,字面翻译普通流或者标准流都可以。 前面我们说过,网页布局的核心,就是用CSS来摆放盒子位置。如何把盒子摆放到合适的位置? CSS的定位机制有3种:普通流(标准流)、浮动和定位。 html语言当中另外一个相当重要的概念----------标准流!或者普通流。普通流实际上就是一个网页内标签元素正常从上到下,从左到右排列顺序的意思,比如块级元素会独占一行,行内元素会按顺序依次前后排列;按照这种大前提的布局排列之下绝对不会出现例外的情况叫做普通流布局。
##浮动(float) 浮动最早是用来控制图片,以便达到其他元素(特别是文字)实现“环绕”图片的效果。
后来,我们发现浮动有个很有意思的事情:就是让任何盒子可以一行排列,因此我们就慢慢的偏离主题,用浮动的特性来布局了。(CSS3已经我们真正意义上的网页布局,具体CSS3我们会详细解释)
##什么是浮动? 元素的浮动是指设置了浮动属性的元素会脱离标准标准流的控制,移动到其父元素中指定位置的过程。 在CSS中,通过float属性来定义浮动,其基本语法格式如下: ~~~选择器{float:属性值;}~~~ |属性值|描述||-----|----------||left|元素向左浮动||right|元素向右浮动||none|元素不浮动(默认值)| ##浮动详细内幕特性 浮动脱离标准流,====脱标====不占位置,会影响标准流。浮动只有左右浮动。 ```1.浮动首先创建包含块的概念(包裹)。就是说,浮动的元素总是找理它最近的父级元素对齐。但是不会超出内边距的范围。```
```2.一个父盒子里面的子盒子,如果其中一个子级有浮动的,则其他子级都需要浮动。这样才能一行对齐显示。``` ```3.元素添加浮动后,元素会具有行内块元素的特性。元素的大小完全取决于定义的大小或者默认的内容多少浮动根据元素书写的位置来显示相应的浮动。``` 总结:浮动---> 浮动的目的就是为了让多个块级元素同一行上显示。最核心的关键点就是怎么排列的,是否占有位置 float浮漏特 浮:加了浮动的元素盒子是浮起来的,漂浮在其他的标准流盒子上面。漏:加了浮动的盒子,不占位置的,它浮起来了,它原来的位置漏给了标准流的盒子。特:特别注意,首先浮动的盒子需要和标准流的父级搭配使用,其次特别的注意浮动可以使元素显示模式体现为行内块特性。 #版心和布局流程 阅读报纸时容易发现,虽然报纸中的内容很多,但是经过合理地排版,版面依然清晰、易读。同样,在制作网页时,要想使页面结构清晰、有条理,也需要对网页进行“排版”。 “版心”(可视区)是指网页中主体内容所在的区域。一般在浏览器窗口中水平居中显示,常见的宽度值为960px、980px、1000px、1200px等。 ##布局流程 为了提高网页制作的效率,布局时通常需要遵守一定的布局流程,具体如下: 1、确定页面的版心(可视区)。 2、分析页面中的行模块,以及每个行模块中的列模块。 3、制作HTML结构。 4、CSS初始化,然后开始运用盒子模型的原理,通过DIV+CSS布局来控制网页的各个模块。 ##一列固定宽度且居中
最普通的,最为常用的结构 ##两列左窄右宽型
##通栏平均分布型
#清除浮动 人生就像乘坐北京地铁一号线: 途经国贸,羡慕繁华; 途经天安门,幻想权力; 途经金融街,梦想发财; 经过公主坟,遥想华丽家族; 经过玉泉路,依然雄心勃勃… 这时,有个声音飘然入耳:乘客你好,八宝山马上就要到了! 顿时醒悟:人生苦短,有始有终。 好比我们的浮动,有浮动开始,则就应该有浮动结束。 ##为什么要清除浮动 我们前面说过,浮动本质是用来做一些文字混排效果的,但是被我们拿来做布局用,则会有很多的问题出现,但是,你不能说浮动不好。 由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响,为了解决这些问题,此时就需要在该元素中清除浮动。 准确地说,并不是清除浮动,而是**清除浮动后造成的影响** 如果浮动一开始就是一个美丽的错误,那么请用正确的方法挽救它。 ##清除浮动本质 清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0的问题。
##清除浮动的方法 其实本质叫做闭合浮动更好一些,记住,清除浮动就是把浮动的盒子圈到里面,让父盒子闭合出口和入口不让他们出来影响其他元素。 在CSS中,clear属性用于清除浮动,其基本语法格式如下: ```选择器{clear:属性值;}clear清除``` |属性值|描述||-----|---------------------||left|不允许左侧有浮动元素(清除左侧浮动的影响)||right|不允许右侧有浮动元素(清除右侧浮动的影响)||both|同时清除左右两侧浮动的影响| ###额外标签法 ```html是W3C推荐的做法是通过在浮动元素末尾添加一个空的标签例如,或则其他标签br等亦可。``` 优点:通俗易懂,书写方便 缺点:添加许多无意义的标签,结构化较差。我只能说,w3c你推荐的方法我不接受,你不值得拥有。。。 ###父级添加overflow属性方法 可以通过触发BFC的方式,可以实现清除浮动效果。(BFC后面讲解) ~~~css可以给父级添加:overflow为hidden|auto|scroll都可以实现。~~~优点:代码简洁 缺点:内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。 ###使用after伪元素清除浮动 **:after方式为空元素的升级版,好处是不用单独加标签了** 使用方法: ```css.clearfix:after{content:"";display:block;height:0;clear:both;visibility:hidden;} .clearfix{*zoom:1;}/*IE6、7专有*/``` 优点:符合闭合浮动思想结构语义化正确 缺点:由于IE6-7不支持:after,使用zoom:1触发hasLayout。 代表网站:百度、淘宝网、网易等
注意:content:""尽量不带点 ###使用before和after双伪元素清除浮动 ```css.clearfix:before,.clearfix:after{content:"";display:table;/*这句话可以出发BFCBFC可以清除浮动,BFC我们后面讲*/}.clearfix:after{clear:both;}.clearfix{*zoom:1;}``` 优点:代码更简洁 代表网站:小米、腾讯等 ##Photoshop基本使用 ##PS界面组成: ctrl+r显示隐藏标尺右击标尺---把里面的单位一律改为像素 ctrl+d取消选区 菜单栏、选项栏、工具栏、浮动面板(拖拽名称,可单独操作面板)、绘图窗口窗口菜单,可显示隐藏所有面板 工作区:(新建) 调整浮动面板
##图层操作(重点) 图层面板快捷键F7其实图层就是一张张透明的纸可以实现叠加问题。
图层选择:使用移动工具V 1、图层缩览图判断 2、按住CTRL,在目标图像上单击 3、将光标放置在目标图像上右键,选择图层名称 图层面板中加选图层: 1、按SHIFT,单击另一目标图层中间所有图层被选中 2、按CTRL,单击另一目标图层只选中目标图层 复制图层:选中目标图层后(移动工具状态下) 1、按ALT拖拽图像 2、CTRL+J(重合) 案例:摆放一个自行车
##图层编组 选中目标图层,CTRL+G 取消编组:CTRL+SHIFT+G 双击图层名称可重新命名 双击组名称,可命名组 移动工具V选择组或图层时,需设置选项栏  ##图层上下位置移动 1、选中目标图层,在图层面拖拽 2、CTRL+]向上移动图层CTRL+[向下移动图层 3、CTRL+SHIFT+]图层置顶CTRL+SHIFT+[图层置底 移动选区或图像时: 移动过程中,没释放鼠标,按住SHIFT,可同一水平线、同一垂线、45度移动。 ps中的撤销操作是: ctrl+z撤销一步 ctrl+alt+z撤销多步 ##Photoshop切图 PS切图可以分为手动利用切片切图以及利用PS的插件快速切图 ###切片工具  1.利用切片工具手动划出 2.图层菜单---新建基于图层的切片 3.利用标尺基于参考线的切片(选择切片工具)  4.先选个一个整个的切片,切片选择工具--属性面板中有“划分”--可以等分数平分切图 导出切片:文件--存储为web设备所用格式 ###辅助线和切片使用及清除 视图菜单--清除辅助线/清除切片 ###切图插件 Cutterman是一款运行在photoshop中的插件,能够自动将你需要的图层进行输出,以替代传统的手工"导出web所用格式"以及使用切片工具进行挨个切图的繁琐流程。它支持各种各样的图片尺寸、格式、形态输出,方便你在pc、ios、Android等端上使用。它不需要你记住一堆的语法、规则,纯点击操作,方便、快捷,易于上手。 注意:cutterman插件要求你的ps必须是完整版,不能是绿色版,所以大家需要从新安装完整版本。
#项目案例:云道页面 案例练习目的是总结以前的css和html 还有ps的使用。 制作步骤: #定位(position) background-position背景定位 如果,说浮动,关键在一个“浮”字上面,那么我们的定位,关键在于一个“位”上。 PS:定位是我们CSS算是数一数二难点的了,但是,你务必要学好它,我们CSS离不开定位,特别是后面的js特效,天天和定位打交道。不要抵触它,反而要爱上它,它可以让我们工作更加轻松哦! ##为什么要用定位? 那么定位,最长运用的场景再那里呢?来看几幅图片,你一定会有感悟! 第一幅图,小黄色块可以再图片上移动:
第二幅图,左右箭头压住图片:
第三幅图,hot再盒子外面多出一块,更加突出:
以上三个小地方,如果用标准流或者浮动,实现会比较复杂或者难以实现,此时我们用定位来做,justsoso! ##元素的定位属性 元素的定位属性主要包括定位模式和边偏移两部分。 1、边偏移 |边偏移属性|描述||------|-----------------------||top|顶端偏移量,定义元素相对于其父元素上边线的距离||bottom|底部偏移量,定义元素相对于其父元素下边线的距离||left|左侧偏移量,定义元素相对于其父元素左边线的距离||right|右侧偏移量,定义元素相对于其父元素右边线的距离| 也就说,以后定位要和这边偏移搭配使用了,比如top:100px;left:30px;等等 2、定位模式(定位的分类) 在CSS中,position属性用于定义元素的定位模式,其基本语法格式如下: 选择器{position:属性值;} position属性的常用值 |值|描述||--------|------------------------||static|自动定位(默认定位方式)||relative|相对定位,相对于其原文档流的位置进行定位||absolute|绝对定位,相对于其上一个已经定位的父元素进行定位||fixed|固定定位,相对于浏览器窗口进行定位| ##静态定位(static) 静态定位是所有元素的默认定位方式,当position属性的取值为static时,可以将元素定位于静态位置。所谓静态位置就是各个元素在HTML文档流中默认的位置。 上面的话翻译成白话:就是网页中所有元素都默认的是静态定位哦!其实就是标准流的特性。 在静态定位状态下,无法通过边偏移属性(top、bottom、left或right)来改变元素的位置。 PS:静态定位其实没啥可说的。 静态定位唯一的用处:就是取消定位。position:static; ##相对定位relative(自恋型)
相对定位是将元素相对于它在标准流中的位置进行定位,当position属性的取值为relative时,可以将元素定位于相对位置。 对元素设置相对定位后,可以通过边偏移属性改变元素的位置,但是它在文档流中的位置仍然保留。如下图所示,即是一个相对定位的效果展示:
1.相对定位最重要的一点是,它可以通过边偏移移动位置,但是原来的所占的位置,继续占有。2.其次,每次移动的位置,是以自己的左上角为基点移动(相对于自己来移动位置) 就是说,相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。(相对定位不脱标) 如果说浮动的主要目的是让多个块级元素一行显示,那么定位的主要价值就是移动位置,让盒子到我们想要的位置上去。 ##绝对定位absolute(拼爹型) ~~~小笑话: 吃早饭时,老婆往儿子碗里放了两个煎蛋,儿子全给了我,还一本正经地说:“爸爸,多吃点,男人养家不容易。”
我一阵感动,刚想夸他两句。 儿子接着说:“以后全靠你让我拼爹了!”~~~ [注意]如果文档可滚动,绝对定位元素会随着它滚动,因为元素最终会相对于正常流的某一部分定位。 当position属性的取值为absolute时,可以将元素的定位模式设置为绝对定位。 注意:绝对定位最重要的一点是,它可以通过边偏移移动位置,但是它完全脱标,完全不占位置。 ###父级没有定位 若所有父元素都没有定位,以浏览器当前屏幕为准对齐(document文档)。
###父级有定位 绝对定位是将元素依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。
###子绝父相 这个“子绝父相”太重要了,是我们学习定位的口诀,时时刻刻记住的。 这句话的意思是子级是绝对定位的话,父级要用相对定位。 首先,我们说下,绝对定位是将元素依据最近的已经定位绝对、固定或相对定位)的父元素(祖先)进行定位。 就是说,子级是绝对定位,父亲只要是定位即可(不管父亲是绝对定位还是相对定位,甚至是固定定位都可以),就是说,子绝父绝,子绝父相都是正确的。 但是,在我们网页布局的时候,最常说的子绝父相是怎么来的呢?请看如下图:
所以,我们可以得出如下结论: 因为子级是绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方。 父盒子布局时,需要占有位置,因此父亲只能是相对定位. 这就是子绝父相的由来。 ##绝对定位的盒子水平/垂直居中 普通的盒子是左右margin改为auto就可,但是对于绝对定位就无效了 定位的盒子也可以水平或者垂直居中,有一个算法。 1.首先left50%父盒子的一半大小 2.然后走自己外边距负的一半值就可以了margin-left。 ##固定定位fixed(认死理型) 固定定位是绝对定位的一种特殊形式,类似于正方形是一个特殊的矩形。它以浏览器窗口作为参照物来定义网页元素。当position属性的取值为fixed时,即可将元素的定位模式设置为固定定位。 当对元素设置固定定位后,它将脱离标准文档流的控制,始终依据浏览器窗口来定义自己的显示位置。不管浏览器滚动条如何滚动也不管浏览器窗口的大小如何变化,该元素都会始终显示在浏览器窗口的固定位置。 固定定位有两点: 1.固定定位的元素跟父亲没有任何关系,只认浏览器。2.固定定位完全脱标,不占有位置,不随着滚动条滚动。 记忆法:就类似于孙猴子,无父无母,好不容易找到一个可靠的师傅(浏览器),就听的师傅的,别的都不听。
ie6等低版本浏览器不支持固定定位。 ##叠放次序(z-index) 当对多个元素同时设置定位时,定位元素之间有可能会发生重叠。
在CSS中,要想调整重叠定位元素的堆叠顺序,可以对定位元素应用z-index层叠等级属性,其取值可为正整数、负整数和0。 比如:z-index:2;font-weight:700 1.z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上。 2.如果取值相同,则根据书写顺序,后来居上。 3.后面数字一定不能加单位。 4.只有相对定位,绝对定位,固定定位有此属性,其余标准流,浮动,静态定位都无此属性,亦不可指定此属性。 #四种定位总结 |定位模式|是否脱标占有位置|是否可以使用边偏移|移动位置基准||------------|----------|---------|----------------||静态static|不脱标,正常模式|不可以|正常模式||相对定位relative|脱标,占有位置|可以|相对自身位置移动(自恋型)||绝对定位absolute|完全脱标,不占有位置|可以|相对于定位父级移动位置(拼爹型)||固定定位fixed|完全脱标,不占有位置|可以|相对于浏览器移动位置(认死理型)| #定位模式转换 跟浮动一样,元素添加了绝对定位和固定定位之后,元素模式也会发生转换,都转换为行内块模式, 行内块的宽度和高度跟内容有关系 **因此比如行内元素如果添加了绝对定位或者固定定位后浮动后,可以不用转换模式,直接给高度和宽度就可以了。** #CSS高级技巧 ##元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是displayvisibility和overflow。 ###display显示 display设置或检索对象是否及如何显示。 display:none隐藏对象与它相反的是display:block除了转换为块级元素之外,同时还有显示元素的意思。 特点:隐藏之后,不再保留位置。 ###visibility可见性 设置或检索是否显示对象。 visible:对象可视 hidden:对象隐藏 特点:隐藏之后,继续保留原有位置。(停职留薪) ###overflow溢出 检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。 visible:不剪切内容也不添加滚动条。 auto:超出自动显示滚动条,不超出不显示滚动条 hidden:不显示超过对象尺寸的内容,超出的部分隐藏掉 scroll:不管超出内容否,总是显示滚动条 ##CSS用户界面样式 所谓的界面样式,就是更改一些用户操作样式,比如更改用户的鼠标样式,表单轮廓等。但是比如滚动条的样式改动受到了很多浏览器的抵制,因此我们就放弃了。防止表单域拖拽 ###鼠标样式cursor 设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。 ```htmlcursor:default小白|pointer小手|move移动|text文本``` 鼠标放我身上查看效果哦: ```html ```尽量不要用hand因为火狐不支持pointerie6以上都支持的尽量用 ###轮廓outline 是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 ~~~cssoutline:outline-color||outline-style||outline-width~~~ 但是我们都不关心可以设置多少,我们平时都是去掉的。 最直接的写法是:outline:0;或者outline:none; ```html``` ###防止拖拽文本域resize resize:none这个单词可以防止火狐谷歌等浏览器随意的拖动文本域。 右下角可以拖拽: 右下角不可以拖拽: ```html``` ##vertical-align垂直对齐 以前我们讲过让带有宽度的块级元素居中对齐,是margin:0auto; 以前我们还讲过让文字居中对齐,是text-align:center; 但是我们从来没有讲过有垂直居中的属性,我们的妈妈一直很担心我们的垂直居中怎么做。 vertical-align垂直对齐,这个看上去很美好的一个属性,实际有着不可捉摸的脾气,否则我们也不会这么晚来讲解。
~~~cssvertical-align:baseline|top|middle|bottom~~~ 设置或检索对象内容的垂直对其方式。 vertical-align不影响块级元素中的内容对齐,它只针对于行内元素或者行内块元素,特别是行内块元素,**通常用来控制图片/表单与文字的对齐**。  ###图片、表单和文字对齐 所以我们知道,我们可以通过vertical-align控制图片和文字的垂直关系了。默认的图片会和文字基线对齐。 ###去除图片底侧空白缝隙 有个很重要特性你要记住:图片或者表单等行内块元素,他的底线会和父级盒子的基线对齐。这样会造成一个问题,就是图片底侧会有一个空白缝隙。
解决的方法就是: 1.给imgvertical-align:middle|top等等。让图片不要和基线对齐。 1.给img添加display:block;转换为块级元素就不会存在问题了。 #溢出的文字隐藏 ##white-space white-space设置或检索对象内文本显示方式。通常我们使用于强制一行显示内容 normal:默认处理方式nowrap:强制在同一行内显示所有文本,直到文本结束或者遭遇br标签对象才换行。 可以处理中文 ##text-overflow文字溢出 text-overflow:clip|ellipsis 设置或检索是否使用一个省略标记(...)标示对象内文本的溢出 clip:不显示省略标记(...),而是简单的裁切 ellipsis:当对象内文本溢出时显示省略标记(...) 注意一定要首先强制一行内显示,再次和overflow属性搭配使用 #CSS精灵技术(sprite)小妖精雪碧 ##精灵技术产生的背景
图所示为网页的请求原理图,当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户。 然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接受和发送请求,这将大大降低页面的加载速度。为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术(也称CSSSprites、CSS雪碧)。 ###精灵技术本质 简单地说,CSS精灵是一种处理网页背景图像的方式。它将一个页面涉及到的所有零星背景图像都集中到一张大图中去,然后将大图应用于网页,这样,当用户访问该页面时,只需向服务发送一次请求,网页中的背景图像即可全部展示出来。通常情况下,这个由很多小的背景图像合成的大图被称为精灵图(雪碧图),如下图所示为京东网站中的一个精灵图。
###精灵技术的使用 CSS精灵其实是将网页中的一些背景图像整合到一张大图中(精灵图),然而,各个网页元素通常只需要精灵图中不同位置的某个小图,要想精确定位到精灵图中的某个小图,就需要使用CSS的background-image、background-repeat和background-position属性进行背景定位,其中最关键的是使用background-position属性精确地定位。 ###制作精灵图 CSS精灵其实是将网页中的一些背景图像整合到一张大图中(精灵图),那我们要做的,就是把小图拼合成一张大图。 大部分情况下,精灵图都是网页美工做。 ~~~我们精灵图上放的都是小的装饰性质的背景图片。插入图片不能往上放。我们精灵图的宽度取决于最宽的那个背景。我们可以横向摆放也可以纵向摆放,但是每个图片之间,间隔至少隔开偶数像素合适。在我们精灵图的最低端,留一片空隙,方便我们以后添加其他精灵图。~~~ 结束语:小公司,背景图片很少的情况,没有必要使用精灵技术,维护成本太高。如果是背景图片比较多,可以建议使用精灵技术。 #滑动门 先来体会下现实中的滑动门,或者你可以叫做推拉门:
##滑动门出现的背景
为了使各种特殊形状的背景能够自适应元素中文本内容的多少,出现了CSS滑动门技术。它从新的角度构建页面,使各种特殊形状的背景能够自由拉伸滑动,以适应元素内部的文本内容,可用性更强。最常见于各种导航栏的滑动门。 ##核心技术 核心技术就是利用CSS精灵(主要是背景位置)和盒子padding撑开宽度,以便能适应不同字数的导航栏。 一般的经典布局都是这样的: 总结: 1.a设置背景左侧,padding撑开合适宽度。2.span设置背景右侧,padding撑开合适宽度剩下由文字继续撑开宽度。3.之所以a包含span就是因为整个导航都是可以点击的。 #web字体 ##字体格式 不同浏览器所支持的字体格式是不一样的,我们有必要了解一下有关字体格式的知识。 1、TureType(.ttf)格式 .ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome4+、Safari3+、Opera10+、iOSMobile、Safari4.2+; 2、OpenType(.otf)格式 .otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,支持这种字体的浏览器有Firefox3.5+、Chrome4.0+、Safari3.1+、Opera10.0+、iOSMobile、Safari4.2+; 3、WebOpenFontFormat(.woff)格式 woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有IE9+、Firefox3.5+、Chrome6+、Safari3.6+、Opera11.1+; 4、EmbeddedOpenType(.eot)格式 .eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有IE4+; 5、SVG(.svg)格式 .svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有Chrome4+、Safari3.1+、Opera10.0+、iOSMobileSafari3.2+; 了解了上面的知识后,我们就需要为不同的浏览器准备不同格式的字体,通常我们会通过字体生成工具帮我们生成各种格式的字体,因此无需过于在意字体格式间的区别差异。 #字体图标 ##字体图标优点 ```可以做出跟图片一样可以做的事情,改变透明度、旋转度,等..但是本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果等等...本身体积更小,但携带的信息并没有削减。几乎支持所有的浏览器移动端设备必备良药...``` ##字体图标使用流程 总体来说,字体图标按照如下流程:
###设计字体图标 假如图标是我们公司单独设计,那就需要第一步了,这个属于UI设计人员的工作,他们在illustrator或Sketch这类矢量图形软件里创建icon图标,比如下图:
之后保存为svg格式,然后给我们前端人员就好了。 其实第一步,我们不需要关心,只需要给我们这些图标就可以了,如果图标是大众的,网上本来就有的,可以直接跳过第一步,进入第三步。 ###上传生成字体包 当UI设计人员给我们svg文件的时候,我们需要转换成我们页面能使用的字体文件,而且需要生成的是兼容性的适合各个浏览器的。 **icomoon字库** IcoMoon成立于2011年,推出的第一个自定义图标字体生成器,它允许用户选择他们所需要的图标,使它们成一字型。内容种类繁多,非常全面,唯一的遗憾是国外服务器,打开网速较慢。 **阿里iconfont字库** 这个是阿里妈妈M2UX的一个iconfont字体图标字库,包含了淘宝图标库和阿里妈妈图标库。可以使用AI制作图标上传生成。一个字,免费,免费!! **fontello** 在线定制你自己的iconfont字体图标字库,也可以直接从GitHub下载整个图标集,该项目也是开源的。 **Font-Awesome** 这是我最喜欢的字库之一了,更新比较快。目前已经有369个图标了。 **GlyphiconHalflings** 这个字体图标可以在Bootstrap下免费使用。自带了200多个图标。 **Icons8** 提供PNG免费下载,像素大能到500PX  ###下载兼容字体包 刚才上传完毕,网站会给我们把UI做的svg图片转换为我们的字体格式,然后下载下来就好了 当然,我们不需要自己专门的图标,是想网上找几个图标使用,以上2步可以直接省略了,直接到刚才的网站上找喜欢的下载使用吧。
###字体引入到HTML 得到压缩包之后,最后一步,是最重要的一步了,就是字体文件已经有了,我们需要引入到我们页面中。 1.首先把以下4个文件放入到fonts文件夹里面。通俗的做法  ```css@font-face{font-family:'icomoon';src:url('fonts/icomoon.eot7kkyc2');src:url('fonts/icomoon.eot7kkyc2#iefix')format('embedded-opentype'),url('fonts/icomoon.ttf7kkyc2')format('truetype'),url('fonts/icomoon.woff7kkyc2')format('woff'),url('fonts/icomoon.svg7kkyc2#icomoon')format('svg');font-weight:normal;font-style:normal;}``` #####第二步:给盒子使用字体 ```cssspan{font-family:"icomoon";}``` #####第三步:盒子里面添加结构 ```cssspan::before{content:"\e900";}或者``` ###追加新图标到原来库里面 如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标,但是原来的不能删除,继续使用,此时我们需要这样做 把压缩包里面的selection.json从新上传,然后,选中自己想要新的图标,从新下载压缩包,替换原来文件即可。
## #京东项目(一) ##京东项目介绍 项目名称:京东网项目描述:京东首页公共部分的头部和尾部制作,京东首页中间部分。
##项目背景 现阶段电商类网站很流行,很多同学毕业之后会进入电商类企业工作,同时电商类网站需要的技术也是较为复杂的,这里用京东电商网站复习、总结、提高前面所学布局技术。其实,最主要的原因还是,为啥写京东?因为刘强东,赚了我们的钱,抢了我们的女神,我们也要学刘强东,赚别人的钱,抢别人..额,自己的女神。。。 ##设计目标 -保证浏览器ie7及以上,火狐,360,safari,chrome等。谁让我再测ie6,就跟谁急。。-熟悉CSS+DIV布局,页面的搭建工作-了解常用电商类网站的布局模式-为后期京东移动端做铺垫 ##几点思考 (1).开发工具sublime、fireworks(ps)、各种浏览器(ie6.7要测看心情) (2).CSSReset类库,为跨浏览器兼容做准备(也可以直接运用jd网站的初始化) ```normalize.css只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSSreset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。Normalize.css现在已经被用于TwitterBootstrap、HTML5Boilerplate、GOV.UK、Rdio、CSSTricks以及许许多多其他框架、工具和网站上。你值得拥有。。 -保护有用的浏览器默认样式而不是完全去掉它们 -一般化的样式:为大部分HTML元素提供 -修复浏览器自身的bug并保证各浏览器的一致性 -优化CSS可用性:用一些小技巧 -解释代码:用注释和详细的文档来``` (3).技术栈 ```HTML结构+CSS布局(因为我们就会这些。。。嘻嘻)``` (4).低版本浏览器单独制作一个跳转页面(都是孩子,也舍不得打,舍不得扔)
##目录说明 要实现结构和样式相分离的设计思想。根目录下有这4个文件(目录)。 |名称|说明||------|------------------||css|用于存放CSS文件||images|用于存放图片||index|京东首页HTML||js|用于后期存放javascript文件| ##运用知识点 ###引入ico图标
1.她(它)不是iconfont字体哦也不是图片。 2.位置是放到head标签中间。 3.后面的type="image/x-icon"属性可以省略。(我相信你也愿意省略。) 4.为了兼容性,请将favicon.ico这个图标放到根目录下。(我们就不要任性了,听话放位置,省很多麻烦。。你好,我也好) ###转换ico图标 ###网站优化三大标签 SEO是由英文SearchEngineOptimization缩写而来,中文意译为“搜索引擎优化”!SEO是指通过对网站进行站内优化、网站结构调整、网站内容建设、网站代码优化等)和站外优化,从而提高网站的关键词排名以及公司产品的曝光度。简单的说就是,把产品做好,搜索引擎就会介绍客户来。 我们现在阶段主要进行站内优化。网站优化,我们应该要懂。。。
####网页title标题 title具有不可替代性,是我们的内页第一个重要标签,是搜索引擎了解网页的入口,和对网页主题归属的最佳判断点。
建议: 首页标题:网站名(产品名)-网站的介绍 京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物! 小米商城-小米5s、红米Note4、小米MIX、小米笔记本官方网站 ####Description网站说明 京东网: `````` 注意点: `````` ####Keywords关键字 `````` 小米网: `````` ##顶部(快捷菜单)所用知识点 |知识点|说明||-------------------|----------------------------------------||通栏的盒子|不用给宽度默认为100% 但是加了浮动和定位的盒子需要添加100%||盒子居中对齐|margin:auto;注意必须有宽度的块级元素,文字水平居中对齐是text-align:center;||行高会继承|文字性质的,比如颜色、文字大小、字体、行高等会继承父级元素||浮动元素、固定定位,绝对定位会模式转换|具有行内块特性,比如一行放多个,有高度和宽度,如果没有指定宽度,则会根据内容多少撑开。| ##logo和搜索header区域所用知识点 ###网页布局稳定性
###宽度剩余法:
|知识点|说明||------|----------------------------------------||浮动元素特性|1.浮动可以让多个元素同一行显示2.浮动的元素是顶部对齐||logo优化|text-indent:-20000px;隐藏文字,背景图片||清除浮动|清除浮动的目的就是为了解决父亲高度为0的问题||鼠标样式|cursor:pointer;小手cursor:move;四角箭头cursor:text;插入光标cursor:default;小白||不允许换行|white-space:nowrap;| ##nav导航栏所用知识点 |名称|说明||-------|----------------------------------------||边框底侧|border-bottom:2pxsolid#ccc;||定位重点|绝对定位不占位置相对定位占有位置||标签语义化dl|dl也是块级元素dt是定义标题dd是定义描述,dd是围绕这dt来描述的,也就是说,dd算是dt的解释说明详细分解。||标题标签h|尽量少用h1,可以多用h2和h3等标签| ##页面底部所用知识点 |名称|说明||-----------|----------------------------------------||绝对定位的盒子居中对齐|盒子left50%然后通过margin负值自己的宽度一半(固定定位也是如此)| ###固定定位的盒子靠近版心右侧对齐 跟绝对定位的盒子居中对齐原理差不多。 left50%然后margin-left版心宽度一半。
学习目标: -掌握京东中间部分制作 -理解BFC使用 -了解优雅降级和渐进增强 -了解CSS压缩和验证工具 typora-copy-images-to:media ------ #京东项目(二) ##焦点图部分所用知识点 |名称|说明||----|--------------------------------||圆角矩形|border-radius:左上角右上角右下角左下角。| 负值自己的宽度一半(固定定位也是如此) ##背景半透明 1.强烈推荐:background:rgba(r,g,b,alpha); r,g,b是红绿蓝的颜色,alpha是透明度的意思,取值范围是0~1之间。 2.了解ie低版本浏览器半透明 filter:Alpha(opacity=50);//opacity值为0到100 但是此属性是盒子半透明,不是背景半透明哦,因为里面的内容也一起半透明了 因此,低版本的ie6.7浏览器,我们不需要透明了,直接采用优雅降级的做法。 background:gary; background:rgba(0,0,0,.2); 写上两句背景,低版本ie只执行gray,其他浏览器执行半透明下面这一句。 ##BFC(块级格式化上下文) BFC(Blockformattingcontext) 直译为"块级格式化上下文"。 ###元素的显示模式 我们前面讲过元素的显示模式display。 分为块级元素行内元素行内块元素,其实,它还有很多其他显示模式。
###那些元素会具有BFC的条件 不是所有的元素模式都能产生BFC,w3c规范: display属性为block,list-item,table的元素,会产生BFC. 大家有么有发现这个三个都是用来布局最为合理的元素,因为他们就是用来可视化布局。 注意其他的,display属性,比如line等等,他们创建的是IFC,我们暂且不研究。 这个BFC有着具体的布局特性:
有宽度和高度,有外边距margin有内边距padding有边框border。 就好比,你有了练习武术的体格了。有潜力,有资质。
###什么情况下可以让元素产生BFC 以上盒子具有BFC条件了,就是说有资质了,但是怎样触发才会产生BFC,从而创造这个封闭的环境呢? 在好比,你光有资质还不行,你需要一定额外效果才能出发的武学潜力,要么你掉到悬崖下面,捡到了一本九阴真经,要么你学习葵花宝典,欲练此功必先.... 同样,要给这些元素添加如下属性就可以触发BFC。 -float属性不为none -position为absolute或fixed -display为inline-block,table-cell,table-caption,flex,inline-flex -overflow不为visible。 ###BFC元素所具有的特性 BFC布局规则特性: 1.在BFC中,盒子从顶端开始垂直地一个接一个地排列. 2.盒子垂直方向的距离由margin决定。属于同一个BFC的两个相邻盒子的margin会发生重叠 3.在BFC中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘)。 1.BFC的区域不会与浮动盒子产生交集,而是紧贴浮动边缘。2.计算BFC的高度时,自然也会检测浮动或者定位的盒子高度。 它是一个独立的渲染区域,只有Block-levelbox参与,它规定了内部的Block-levelBox如何布局,并且与这个区域外部毫不相干。 白话文:孩子在家里愿意怎么折腾都行,但是出了家门口,你就的乖乖的,不能影响外面的任何人。
###BFC的主要用途 BFC能用来做什么? (1)清除元素内部浮动 只要把父元素设为BFC就可以清理子元素的浮动了,最常见的用法就是在父元素上设置overflow:hidden样式,对于IE6加上zoom:1就可以了。 主要用到 ```计算BFC的高度时,自然也会检测浮动或者定位的盒子高度。``` (2)解决外边距合并问题 外边距合并的问题。 ```盒子垂直方向的距离由margin决定。属于同一个BFC的两个相邻盒子的margin会发生重叠``` 属于同一个BFC的两个相邻盒子的margin会发生重叠,那么我们创建不属于同一个BFC,就不会发生margin重叠了。
(3)制作右侧自适应的盒子问题 ```普通流体元素BFC后,为了和浮动元素不产生任何交集,顺着浮动边缘形成自己的封闭上下文```
###BFC总结 BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。包括浮动,和外边距合并等等,因此,有了这个特性,我们布局的时候就不会出现意外情况了。 ##优雅降级和渐进增强 什么是渐进增强(progressiveenhancement)、优雅降级(gracefuldegradation)呢? 渐进增强progressiveenhancement: 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。 类似爬山,由低出往高处爬
优雅降级gracefuldegradation: 一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。 类似蹦极,由高处往低处下落
区别:渐进增强是向上兼容,优雅降级是向下兼容。 个人建议:现在互联网发展很快,连微软公司都抛弃了ie浏览器,转而支持edge这样的高版本浏览器,我们很多情况下没有必要再时刻想着低版本浏览器了,而是一开始就构建完整的效果,根据实际情况,修补低版本浏览器问题。 ##浏览器前缀 |浏览器前缀|浏览器||--------|--------------------------------------||-webkit-|GoogleChrome,Safari,AndroidBrowser||-moz-|Firefox||-o-|Opera||-ms-|InternetExplorer,Edge||-khtml-|Konqueror| 后面我们会有常用的解决H5和C3的兼容解决文件,我们这里暂且不涉及。 ##背景渐变 在线性渐变过程中,颜色沿着一条直线过渡:从左侧到右侧、从右侧到左侧、从顶部到底部、从底部到顶部或着沿任何任意轴。如果你曾使用过制作图件,比如说Photoshop,你对线性渐变并不会陌生。 兼容性问题很严重,我们这里之讲解线性渐变 ```cssbackground:-webkit-linear-gradient(渐变的起始位置,起始颜色,结束颜色);``` ```cssbackground:-webkit-linear-gradient(渐变的起始位置,颜色位置,颜色位置....);``` ##CSSW3C统一验证工具 CssStats是一个在线的CSS代码分析工具 如果你想要更全面的,这个神奇,你值得拥有: 因为它可以检测本地文件哦!! #HTML5新标签与特性
##文档类型设定 -document-HTML:sublime输入html:4s-XHTML:sublime输入html:xt-HTML5sublime输入html:5 ##字符设定 ##常用新标签 -header:定义文档的页眉头部 -nav:定义导航链接的部分 -footer:定义文档或节的页脚底部 -section:定义文档中的节(section、区段) -aside:定义其所处内容之外的内容侧边 -datalist标签定义选项列表。请与input元素配合使用该元素 ```html``` ##新增的inputtype属性值: ##常用新属性 |**属性******|**用法******|**含义******||--------------------|----------------------------------------|----------------------------------------||**placeholder******||占位符当用户输入的时候里面的文字消失删除所有文字,自动返回||**autofocus******||规定当页面加载时input元素应该自动获得焦点||**multiple******||多文件上传||**autocomplete******||规定表单是否应该启用自动完成功能有2个值,一个是on一个是offon代表记录已经输入的值1.autocomplete首先需要提交按钮 2.这个表单您必须给他名字||**required******||必填项内容不能为空||**accesskey******||规定激活(使元素获得焦点)元素的快捷键采用alt+s的形式| ##综合案例
##多媒体标签 -embed:标签定义嵌入的内容-audio:播放音频-video:播放视频 ###多媒体embed(会使用) embed可以用来插入各种多媒体,格式可以是Midi、Wav、AIFF、AU、MP3等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。 因为兼容性问题,我们这里只讲解插入网络视频,后面H5会讲解audio和video视频多媒体。
优酷,土豆,爱奇艺,腾讯、乐视等等 ###多媒体audio HTML5通过 使用相当简单,如下图所示  并且可以通过附加属性可以更友好控制音频的播放,如: autoplay自动播放 controls是否显不默认播放控件 loop循环播放如果这个属性不写默认播放一次loop或者loop=“loop”表示无限循环  多浏览器支持的方案,如下图 标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择  ###多媒体video 同音频播放一样,  同样,通过附加属性可以更友好的控制视频的播放 controls是否显示默认播放控件 loop循环播放 width设置播放窗口宽度 height设置播放窗口的高度  **多浏览器支持的方案,如下图******  # #CSS3新增选择器 ###结构(位置)伪类选择器(CSS3) -:first-child:选取属于其父元素的首个子元素的指定选择器-:last-child:选取属于其父元素的最后一个子元素的指定选择器-:nth-child(n):匹配属于其父元素的第N个子元素,不论元素的类型-:nth-last-child(n):选择器匹配属于其元素的第N个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数。n可以是数字、关键词或公式- ```cssli:first-child{/*选择第一个孩子*/color:pink;}li:last-child{/*最后一个孩子*/color:purple;}li:nth-child(4){/*选择第4个孩子n代表第几个的意思*/color:skyblue;}``` ###目标伪类选择器(CSS3) :target目标伪类选择器:选择器可用于选取当前活动的目标元素 ```css:target{color:red;font-size:30px;}``` ##属性选择器 选取标签带有某些特殊属性的选择器我们成为属性选择器 ```css/*获取到拥有该属性的元素*/div[class^=font]{/*class^=font表示font开始位置就行了*/color:pink;}div[class$=footer]{/*class$=footer表示footer结束位置就行了*/color:skyblue;}div[class*=tao]{/*class*=tao*=表示tao在任意位置都可以*/color:green;}``` ```html属性选择器属性选择器属性选择器属性选择器属性选择器属性选择器123属性选择器footer属性选择器footer属性选择器属性选择器属性选择器``` ##伪元素选择器(CSS3) 1.E::first-letter文本的第一个单词或字(如中文、日文、韩文等)2.E::first-line文本第一行;3.E::selection可改变选中文本的样式; ```cssp::first-letter{font-size:20px;color:hotpink;} /*首行特殊样式*/p::first-line{color:skyblue;} p::selection{/*font-size:50px;*/color:orange;}``` 4、E::before和E::after 在E元素内部的开始位置和结束位创建一个元素,该元素为行内元素,且必须要结合content属性使用。 ```cssdiv::befor{content:"开始";}div::after{content:"结束";}``` E:after、E:before在旧版本里是伪元素,CSS3的规范里“:”用来表示伪类,“::”用来表示伪元素,但是在高版本浏览器下E:after、E:before会被自动识别为E::after、E::before,这样做的目的是用来做兼容处理。 ":"与"::"区别在于区分伪类和伪元素 之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面的某些元素来展现,实际上是css样式展现的行为,因此被称为伪元素。是伪元素在html代码机构中的展现,可以看出无法伪元素的结构无法审查 **注意** 伪元素:before和:after添加的内容默认是inline元素**;这个两个伪元素的`content`属性,表示伪元素的内容,设置:before和:after时必须设置其`content`属性,否则伪元素就不起作用。 ##背景缩放(CSS3) 通过background-size设置背景图片的尺寸,就像我们设置img的尺寸一样,在移动Web开发中做屏幕适配应用非常广泛。 其参数设置如下: a)可以设置长度单位(px)或百分比(设置百分比时,参照盒子的宽高) b)设置为cover时,会自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏。我们平时用的cover最多 c)设置为contain会自动调整缩放比例,保证图片始终完整显示在背景区域。 ```cssbackground-image:url('images/gyt.jpg');background-size:300px100px;/*background-size:contain;*//*background-size:cover;*/``` ##多背景(CSS3) 以逗号分隔可以设置多背景,可用于自适应布局做法就是用逗号隔开就好了。 -一个元素可以设置多重背景图像。-每组属性间使用逗号分隔。-如果设置的多重背景图之间存在着交集(即存在着重叠关系),前面的背景图会覆盖在后面的背景图之上。-为了避免背景色将图像盖住,背景色通常都定义在最后一组上, ```cssbackground:url(test1.jpg)no-repeatscroll10px20px/50px60px,url(test1.jpg)no-repeatscroll10px20px/70px90px,url(test1.jpg)no-repeatscroll10px20px/110px130pxc#aaa;``` - ##凹凸文字 ```css 我是凸起的文字 我是凹下的文字 ``` ##CSS3盒模型 CSS3中可以通过box-sizing来指定盒模型,即可指定为content-box、border-box,这样我们计算盒子大小的方式就发生了改变。 可以分成两种情况: 1、box-sizing:content-box盒子大小为width+padding+bordercontent-box:此值为其默认值,其让元素维持W3C的标准BoxMode 2、box-sizing:border-box盒子大小为width就是说padding和border是包含到width里面的 注:上面的标注的width指的是CSS属性里设置的width:length,content的值是会自动调整的。 ```cssdiv:first-child{width:200px;height:200px;background-color:pink;box-sizing:content-box;/*就是以前的标准盒模型w3c*/padding:10px;border:15pxsolidred;/*盒子大小为width+padding+bordercontent-box:此值为其默认值,其让元素维持W3C的标准BoxMode*/}div:last-child{width:200px;height:200px;background-color:purple;padding:10px;box-sizing:border-box;/*paddingborder不撑开盒子*/border:15pxsolidred;/*margin:10px;*//*盒子大小为width就是说padding和border是包含到width里面的*/}``` ##学成在线综合案例 ##过渡(CSS3) 过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。 帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片 
在CSS3里使用transition可以实现补间动画(过渡效果),并且当前元素只要有“属性”发生变化时即存在两种状态(我们用A和B代指),就可以实现平滑的过渡,为了方便演示采用hover切换两种状态,但是并不仅仅局限于hover状态来实现过渡。 语法格式: 如果想要所有的属性都变化过渡,写一个all就可以 运动曲线默认是ease 何时开始默认是0s立马开始 运动曲线示意图:  width:600px;height:300px} transition:all0.6s;/*所有属性都变化用all就可以了后面俩个属性可以省略*/~~~ ##2D变形(CSS3)transform transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前只能靠Flash才可以实现的效果。 变形转换transformtransform变换变形的意思《transformers变形金刚》 ###移动translate(x,y) translate移动平移的意思  ```csstranslate(50px,50px);``` 使用translate方法来将文字或图像在水平方向和垂直方向上分别垂直移动50像素。 可以改变元素的位置,x、y可为负值; ~~~translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)translateX(x)仅水平方向移动(X轴移动)translateY(Y)仅垂直方向移动(Y轴移动)~~~ ~~~css.box{width:499.9999px;height:400px;background:pink;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);/*走的自己的一半*/}~~~ 让定位的盒子水平居中 ###缩放scale(x,y)  ```csstransform:scale(0.8,1);``` 可以对元素进行水平和垂直方向的缩放。该语句使用scale方法使该元素在水平方向上缩小了20%,垂直方向上不缩放。 ~~~scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)scaleX(x)元素仅水平方向缩放(X轴缩放)scaleY(y)元素仅垂直方向缩放(Y轴缩放)~~~ scale()的取值默认的值为1,当值设置为0.01到0.99之间的任何值,作用使一个元素缩小;而任何大于或等于1.01的值,作用是让元素放大 ###旋转rotate(deg) 可以对元素进行旋转,正值为顺时针,负值为逆时针;  ~~~csstransform:rotate(45deg);~~~ 注意单位是deg度数 ###transform-origin可以调整元素转换变形的原点  ```cssdiv{transform-origin:lefttop;transform:rotate(45deg);}/*改变元素原点到左上角,然后进行顺时旋转45度*/``` 如果是4个角,可以用lefttop这些,如果想要精确的位置,可以用px像素。 ~~~cssdiv{transform-origin:10px10px;transform:rotate(45deg);}/*改变元素原点到x为10y为10,然后进行顺时旋转45度*/~~~ 案例旋转楚乔传 ~~~cssdiv{width:250px;height:170px;border:1pxsolidpink;margin:200pxauto;position:relative; }divimg{width:100%;height:100%;position:absolute;top:0;left:0;transition:all0.6s;transform-origin:topright;}div:hoverimg:nth-child(1){/*鼠标经过div第一张图片旋转*/transform:rotate(60deg);}div:hoverimg:nth-child(2){transform:rotate(120deg);}div:hoverimg:nth-child(3){transform:rotate(180deg);}div:hoverimg:nth-child(4){transform:rotate(240deg);}div:hoverimg:nth-child(5){transform:rotate(300deg);}div:hoverimg:nth-child(6){transform:rotate(360deg);}~~~ ###倾斜skew(deg,deg)  ```csstransform:skew(30deg,0deg);``` 该实例通过skew方法把元素水平方向上倾斜30度,处置方向保持不变。 可以使元素按一定的角度进行倾斜,可为负值,第二个参数不写默认为0。 ##3D变形(CSS3)transform 2dxy 3dxyz 左手坐标系 伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。这样我们就建立了一个左手坐标系,拇指、食指和中指分别代表X、Y、Z轴的正方向。如下图  CSS3中的3D坐标系与上述的3D坐标系是有一定区别的,相当于其绕着X轴旋转了180度,如下图  简单记住他们的坐标: x左边是负的,右边是正的 y上面是负的,下面是正的 z里面是负的,外面是正的 ###rotateX() 就是沿着x立体旋转.  ~~~cssimg{transition:all0.5sease0s;}img:hove{ transform:rotateX(180deg);}~~~ ###rotateY() 沿着y轴进行旋转  ###rotateZ() 沿着z轴进行旋转 ~~~cssimg{transition:all.25sease-in0s;}img:hover{/*transform:rotateX(180deg);*//*transform:rotateY(180deg);*//*transform:rotateZ(180deg);*//*transform:rotateX(45deg)rotateY(180deg)rotateZ(90deg)skew(0,10deg);*/}~~~ ###透视(perspective) 电脑显示屏是一个2D平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。 透视可以将一个2D平面,在转换的过程当中,呈现3D效果。 -透视原理:近大远小。-浏览器透视:把近大远小的所有图像,透视在屏幕上。-perspective:视距,表示视点距离屏幕的长短。视点,用于模拟透视效果时人眼的位置 注:并非任何情况下需要透视效果,根据开发需要进行设置。 perspective一般作为一个属性,设置给父元素,作用于所有3D转换的子元素 理解透视距离原理:  ###translateX(x) 仅水平方向移动**(X轴移动)  主要目的实现移动效果 ###translateY(y) 仅垂直方向移动(Y轴移动)  ###translateZ(z) transformZ的直观表现形式就是大小变化,实质是XY平面相对于视点的远近变化(说远近就一定会说到离什么参照物远或近,在这里参照物就是perspective属性)。比如设置了perspective为200px;那么transformZ的值越接近200,就是离的越近,看上去也就越大,超过200就看不到了,因为相当于跑到后脑勺去了,我相信你正常情况下,是看不到自己的后脑勺的。 ###translate3d(x,y,z) [注意]其中,x和y可以是长度值,也可以是百分比,百分比是相对于其本身元素水平方向的宽度和垂直方向的高度和;z只能设置长度值 ###开门案例 ~~~cssbody{}.door{width:300px;height:300px;margin:100pxauto;border:1pxsolidgray;perspective:1000px;background:url('images/dog.gif')no-repeatcover;position:relative;}.door>div{box-sizing:border-box;border:1pxsolidblack;}.left{float:left;width:50%;height:100%;background-color:brown;transform-origin:leftcenter;transition:1s;position:relative;}.left::before{content:'';position:absolute;width:20px;height:20px;border-radius:50%;top:50%;right:0px;transform:translateY(-10px);border:1pxsolidwhitesmoke;}.right{width:50%;height:100%;float:left;background-color:brown;transform-origin:rightcenter;transition:1s;position:relative;}.right::before{content:'';position:absolute;width:20px;height:20px;border-radius:50%;top:50%;left:0px;transform:translateY(-10px);border:1pxsolidwhitesmoke;}.door:hover.left{transform:rotateY(-130deg);}.door:hover.right{transform:rotateY(130deg);}~~~ ###backface-visibility backface-visibility属性定义当元素不面向屏幕时是否可见。 ###翻转盒子案例 ~~~cssdiv{width:224px;height:224px;margin:100pxauto;position:relative;}divimg{position:absolute;top:0;left:0;transition:all1s;}divimg:first-child{z-index:1;backface-visibility:hidden;/*不是正面对象屏幕,就隐藏*/}div:hoverimg{transform:rotateY(180deg);}~~~ ##动画(CSS3)animation 动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。  ~~~css@keyframes动画名称{from{开始位置}0%to{结束}100%}~~~ ~~~animation-iteration-count:infinite;无限循环播放animation-play-state:paused;暂停动画"~~~ ###小汽车案例 ~~~cssbody{background:white;}img{width:200px;}.animation{animation-name:goback;animation-duration:5s;animation-timing-function:ease;animation-iteration-count:infinite;}@keyframesgoback{0%{}49%{transform:translateX(1000px);}55%{transform:translateX(1000px)rotateY(180deg);}95%{transform:translateX(0)rotateY(180deg);}100%{transform:translateX(0)rotateY(0deg);}}~~~ ##伸缩布局(CSS3) CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用。 主轴:Flex容器的主轴主要用来配置Flex项目,默认是水平方向 侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向的 方向:默认主轴从左向右,侧轴默认从上到下 主轴和侧轴并不是固定不变的,通过flex-direction可以互换。  Flex布局的语法规范经过几年发生了很大的变化,也给Flexbox的使用带来一定的局限性,因为语法规范版本众多,浏览器支持不一致,致使Flexbox布局使用不多 **2、各属性详解****** 1.flex子项目在主轴的缩放比例,不指定flex属性,则不参与伸缩分配 min-width最小值min-width:280px最小宽度不能小于280 max-width:1280px最大宽度不能大于1280 2.flex-direction调整主轴方向(默认为水平方向) flex-direction:column垂直排列 flex-direction:row水平排列 3、justify-content调整主轴对齐(水平对齐) 子盒子如何在父盒子里面水平对齐 |值|描述|白话文||-------------|------------------------|-----------------------||flex-start|默认值。项目位于容器的开头。|让子元素从父容器的开头开始排序但是盒子顺序不变||flex-end|项目位于容器的结尾。|让子元素从父容器的后面开始排序但是盒子顺序不变||center|项目位于容器的中心。|让子元素在父容器中间显示||space-between|项目位于各行之间留有空白的容器内。|左右的盒子贴近父盒子,中间的平均分布空白间距||space-around|项目位于各行之前、之间、之后都留有空白的容器内。|相当于给每个盒子添加了左右margin外边距| 4、align-items调整侧轴对齐(垂直对齐) 子盒子如何在父盒子里面垂直对齐(单行) |值|描述|白话文||----------|---------------|---------------------------||stretch|默认值。项目被拉伸以适应容器。|让子元素的高度拉伸适用父容器(子元素不给高度的前提下)||center|项目位于容器的中心。|垂直居中||flex-start|项目位于容器的开头。|垂直对齐开始位置上对齐||flex-end|项目位于容器的结尾。|垂直对齐结束位置底对齐||||| 5、flex-wrap控制是否换行 当我们子盒子内容宽度多于父盒子的时候如何处理 |值|描述||------------|----------------------------------------||nowrap|默认值。规定灵活的项目不拆行或不拆列。不换行,则收缩(压缩)显示强制一行内显示||wrap|规定灵活的项目在必要的时候拆行或拆列。||wrap-reverse|规定灵活的项目在必要的时候拆行或拆列,但是以相反的顺序。||||||| 6、flex-flow是flex-direction、flex-wrap的简写形式 ~~~cssflex-flow:flex-directionflex-wrap;~~~ 白话记:flex-flow:排列方向换不换行; 两个中间用空格 ~~~cssdisplay:flex;/*flex-direction:row;flex-wrap:wrap;这两句话等价于下面的这句话*/flex-flow:columnwrap;/*两者的综合*/~~~ 7、align-content堆栈(由flex-wrap产生的独立行)多行垂直对齐方式齐 align-content是针对flex容器里面多轴(多行)的情况,align-items是针对一行的情况进行排列。 必须对父元素设置自由盒属性display:flex;,并且设置排列方式为横向排列flex-direction:row;并且设置换行,flex-wrap:wrap;这样这个属性的设置才会起作用。 |值|描述|测试||-------------|------------------------|----||stretch|默认值。项目被拉伸以适应容器。|||center|项目位于容器的中心。|||flex-start|项目位于容器的开头。|||flex-end|项目位于容器的结尾。|||space-between|项目位于各行之间留有空白的容器内。|||space-around|项目位于各行之前、之间、之后都留有空白的容器内。|| 8、order控制子项目的排列顺序,正序方式排序,从小到大 用css来控制盒子的前后顺序。用order就可以 用整数值来定义排列顺序,数值小的排在前面。可以为负值。默认值是0 ~~~cssorder:1;~~~ 此知识点重在理解,要明确找出主轴、侧轴、方向,各属性对应的属性值 ##文字阴影(CSS3) 以后我们可以给我们的文字添加阴影效果了Shadow影子 ```csstext-shadow:水平位置垂直位置模糊距离阴影颜色;```
THE END
1.微信小程序创作之路在微信小程序的开发中,窗口整体配置是非常重要的一部分。它决定了用户在使用你的小程序时看到什么样的界面。今天,我们就来讲解一下如何配置小程序的窗口整体。 ### 导航栏导航栏是小程序窗口最上方的区域,它通常包含一些基本的功能按钮,如返回、分享等。在微信小程序中,导航栏可以通过 `navigationBar` 属性来配置http://www.shili8.cn/article/detail_20002680490.html
2.App页面元素分层式导航1.4 抽屉式导航 一般采用将导航主题隐藏在App侧边的方式,以一个按钮来呼出导航,在使用完成之后再使用相同的按钮隐藏起来。一般用于底部没有导航栏,而且使用比较少的功能都收纳起来,如我的。 1.5 沉浸式导航 又叫 内容驱动式导航 或 体验驱动式导航,是沉浸式设计的一种表现,在内容中自由的转换,或是内容本身定义导https://blog.csdn.net/vbirdbest/article/details/142083906
3.APP界面元素各种栏?标签栏一般位于页面的底部,他的作用是让用户快速在不同的视图和模式间进行切换。一般有四五个左右 ? 搜索栏 这个感觉不用多说了,就是搜索框。一般情况下也是展示在页面的顶部,大概率在导航栏下方或者就放在导航栏上。 ? 范围栏 和搜索栏搭配使用,一般用于快速定位用户搜索内容 https://zhuanlan.zhihu.com/p/612747787
4.seo网站关键词优化方法(seo网站关键词优化方法有哪些)1、交换友情链接,看对方网站友链和收录情况,对方友链一般不超过30个,且最近收录一定要有,一般同等权重的友链双方才愿意交换的除非购买单向链接。 2、寻找网站目录或者网站导航之类的网站提交,一般为付费。(最大的特点是一次收录永久在线而且外链质量非常好,价格不算贵) http://yj64.com/youhua/14a090899077.html
5.26篇博文含有标签「版本甄知科技ITSM猪齿鱼Choerodon数智化效能平台,提供体系化方法论和协作、测试、DevOps及容器工具,帮助企业拉通需求、设计、开发、部署、测试和运营流程,一站式提高管理效率和质量。从团队协同到DevOps工具链、从平台工具到体系化方法论,猪齿鱼全面满足协同管理与工程效率需求,贯穿端到端全流程,助力团队效能更快更强更稳定,帮助企业推动http://www.zknow.com/choerodon/blog/tags/%E7%89%88%E6%9C%AC/
6.HR传感器数据中,有值为0或255的数据手表/手环(WearEngine)如何解决sidebar侧边栏出现时,遮挡住下方的导航栏的问题?希望能自行控制侧边栏的上下层级 有哪些实现图文混排的方式,每种方式的优劣点是什么,推荐场景是什么 如何处理父子组件间的事件传递,例如,如何解决滑动冲突 使用ForEach&LazyForEach循环渲染时,会出现更改数据源时,界面不刷新的情况。如何解决 如何主动控制https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/wearengine_faq-5-V5
7.使用Bootstrap4构建带有导航栏和侧边栏的页面的基本问题使用Bootstrap 4构建带有导航栏和侧边栏的页面有几个基本问题需要注意: 1. 安装Bootstrap 4:首先,需要在项目中引入Bootstrap 4的相关文件。你可以选择通过CDN引入,也https://cloud.tencent.com/developer/information/%E4%BD%BF%E7%94%A8Bootstrap%204%E6%9E%84%E5%BB%BA%E5%B8%A6%E6%9C%89%E5%AF%BC%E8%88%AA%E6%A0%8F%E5%92%8C%E4%BE%A7%E8%BE%B9%E6%A0%8F%E7%9A%84%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%9F%BA%E6%9C%AC%E9%97%AE%E9%A2%98
8.AltiumDesigner20电路设计与仿真从入门到精通图书目录: 详情 全书以Altium Designer 20为平台,讲解了电路设计的方法和技巧,主要包括Altium Designer 20概述、原理图简介、原理图的环境设置、原理图的基础操作、原理图的高级应用、层次原理图设计、电路仿真系统、PCB 设计入门、PCB 的高级编辑、电路板的后期制作、信号完整性分析、创建元器件库及元器件封装等内容。https://www.epubit.com/bookDetails?id=UBbf365ac27387
9.以Web为基础10篇(全文)学生登录系统不但可以在线点播课程课件及多媒体视频、浏览教学信息资源, 还可参加实时的教学互动视频课堂、课程讨论及测验考试;教师不但可使用学生的所有功能, 还可查看统计学生的学习档案, 组织管理内部的学习资源, 为教师对学生素质进行公正评价及正确分析提供有力平台支持。[3]https://www.99xueshu.com/w/ikeyqzszmwjy.html
10.如果你不熟悉iPhone设计规范,请一口吃下这篇干货!△ 导航栏图标尺寸规范 5. 标签栏 (Tab Bars) Tab 就是点击的意思,Tab栏(也叫标签栏)指的是 APP 底部的区域,如微信底部常驻有聊天、通讯录、发现、我的四个图标。iOS 规范中 Tab栏一般有五个、四个、三个图标的形式。也就是把宽度平分为五、四、三份。iPhone6/7/8设计中,标签栏的高度为49pt(98px)https://www.51cto.com/article/584965.html
11.移动端控件整理——导航&搜索导航栏可以情境化显示,即根据用户的操作、页面状态的变化来显示不同的内容。 ios的导航栏出现在APP界面的顶部,在状态栏的下方,能够在一些不同层级的页面中提供导航。当加载一个新页面的时候,导航栏的左侧一般会出现一个返回按钮,与前一个页面的标题放在一起。有时候,导航栏的右边会包含一个编辑或者完成按钮的控件https://www.jianshu.com/p/b886d6e591d8
12.小程序设计指南:规范与误区全解析,让新手设计师有规可依※常见问题:自定义导航栏与默认导航栏存在差异,默认导航栏下拉刷新时,导航栏是固定的;自定义导航栏下拉刷新时,只有小程序胶囊位置是固定的,其他元素会随着页面一起下拉刷新。出现该问题的原因是层级发生了变化,默认样式的小程序胶囊与导航栏是同一层级的,但是自定义之后,层级发生了变化。 http://www.bjhwtx.com/h-nd-159057.html
13.浙教版信息科技三年级上册全册教学课件20230927202342.pptx多途径查找资源 1、资源平台一般有导航栏或者层级分类目录,方便人们浏览资源。在平台上浏览与查找资源,就像在图书馆中找书,可以按照类别查找。浏览资源 1.进入“国家少儿数字图书馆”网站,选择相应的类别,进入学习网页。浏览资源—试一试 1.平台上有很多好的学习资源,可以将其下载到计算机。保存图片时,一般可以在图片https://max.book118.com/html/2023/0927/8063040111005135.shtm
14.体验设计拆解24个优秀体验细节经验/观点日常中常见的 B端产品的导航栏一般都是要么展开,要么收起两种固定的交互模式,而 Notion 左侧导航非常灵活,尤其是导航栏收起状态时候,鼠标只要悬停到左侧区域,都可以将导航栏呼出,这时候通过导航栏切换到目标页面后,将鼠标移到页面内编辑内容时,悬浮的导航栏又回自动消失。在导航切换效率和页面内容浏览的沉浸感上有了非https://www.ui.cn/project.php?id=643696
15.厦门网站建设小程序设计系统软件制作APP源码开发厦门掘金信息科技有限公司是一家专业从事:网站建设、小程序设计、系统软件制作、APP源码开发、网站开发等相关服务,为多家企业提供了创新易用的互联网解决方案,有效提升了用户体验和客户品牌价值,引领市场不断树立新的标杆.https://www.xmjuejin.com/
16.电子商务运营技能导航条 * 308.在网店装修中,收藏按钮和关注按钮一般出现的位置是()。 搜索框 店招 店标 导航栏 * 309.在网店装修中,商品上新预告和商品推荐模块是店铺中最常见的()。 促销模块 排行模块 分类模块 页尾模块 * 310.网店店铺首页设计中,店铺客服区域一-般位于网店首页的位置是()。 中上部 中部或底部 B顶部 https://www.wjx.cn/vm/mOXooIH.aspx
17.“电视”的搜索结果–Mac玩儿法iWiFi 测速侠是一款很有创意的网络测速工具,除了基础的 WIFI 速度上下行速度、PING 值测速功能外,支持了以 AR 虚拟显示为基础的测速功能。 当你打开界面底部导航栏中间的按钮后进入 AR 模式,此时可以看到测速的 widget,暂且叫它 widget 吧,显示在你的面前,可以显示延迟、PING 值延时,上下行速度,非常有意思,你可https://www.waerfa.com/search/%E7%94%B5%E8%A7%86/feed/rss2/
18.莆田学院附属医院智慧服务应用建设(一)期项目附件(3)财政部、司法部联合印发《关于政府采购支持监狱企业发展有关问题的通知》(财库【2014】68号)文件规定(适用于本项目)。(4)财政部、民政部、中国残疾人联合会印发的《三部门联合发布关于促进残疾人就业政府采购政策的通知》财库〔2017〕141号文件规定(适用于本项目)。(5)信用记录(适用于本项目),按照下列规定http://www.ptzfcg.gov.cn/upload/document/20220419/42cbf932c05048548c1b2893e6dd2fc3.html
19.网站设计与网页制作超星尔雅学习通网课答案C、导航栏 D、Banner 2、【多选题】关于导航的描述哪些是正确的 A、可用链接文字实现 B、一个网站可以没有导航 C、可跳转到网站的各个页面 D、可用链接图片实现 3、【判断题】网页对应着的源文件包含一些代码,而浏览器可以解析这些代码,呈现出来。 http://changchun.ehqc.cn/show/36_27.html
20.旅游网站如何设计优秀的网站导航一、网站导航栏是什么? 网站导航栏是指通过一定的技术手段,为网页的访问者提供途径,引导他们访问网站的各个栏目、菜单、在线帮助等,使用户可以方便快速的访问自己所需的内容。 二、网站导航栏的作用是什么? 导航栏是网站非常重要的组成部分,一款良好的网站导航栏对于用户体验度和搜索引擎优化都非常有利。 https://www.stourweb.com/peixun/fangfa-765
21.小黑盒导航栏的形式多样,可以是简单的文字链接,也可以是设计精美的图片或是丰富多彩的按钮,还可以是下砬菜单导航。 一般来说,网站中的导航位置在各个页面中出现的位置是比较固定的,而且风格也较为一致。导航的位置一般有4种:在页面的左侧、右侧、顶部和底部。有时候在同一个页面中运用了多种导航。当然并不是导航在页面https://xiaoheihe.cn/community/7214/list/98998379
22.神马广告与其他平台的差距新闻中心对于已经做了百度搜索推广的企业而言,神马搜索和百度搜索的客户来源不同,因此 神马搜索能够给客户带来与现有百度推广平台不同的客户群。神马搜索目前的客户群体更多是从浏览器与导航直接进入的用户,这些用户的搜索习惯,以及对于推广的敏感度与现有百度的客户会存在不少差异,这些差异正是能给广告主带来更多生意机会的地方https://www.tui86.com/889.html
|