HTML+CSS 笔记整理

目录

前言

一、HTML基础

1 HTML概念

2 HTML语法

3 HTML标签

4 HTML表格

5 HTML表单

二、CSS基础

1.CSS汉译:

2.CSS语法:

3.CSS样式表

4.css选择器

5.CSS文本属性

6 列表相关属性

 7 边框的相关属性

8.引入背景图片:background-image:url();

 9.浮动详解

10 元素类型

11 元素定位+锚点

 12 图片整合

13 宽高自适应

14 块级格式化上下文 (Block Formatting Context)

 15 浏览器兼容

16 伸缩布局盒模型(弹性盒模型)

17 多列布局

18 媒体查询

19 移动端布局

19 过渡transiton

20 2D转换transform

21 3D变换

22 动画

三,总结



前言

        HTML和CSS基础内容总结,包含HTML基础和CSS基础两部分。

一、HTML基础

1 HTML概念

I.HTML(Hyper Text Markup Language)称为超文本标记语言                         

   由一套标签组成的语言称为标记语言

   XHTML   可扩展超文本标记语言

II.W3C万维网联盟     制定了结构html和表现css的标准

   WHATWG           网页超文本应用技术工作小组,推动H5标准为目的的组织

   ECMA             制定行为的标准

   Web标准          结构(html,xhtml),表现(css),行为(DOM,JS)

III.首页必须命名为index.html,其他页面先在html文件夹里。

2 HTML语法

I.常规标记/标签  <div></div>

  空标记<标记/><br/>

说明:a.在<>中的第一个单词叫做标记,标签,元素。

           b.标记和属性用空格隔开,属性和属性值用等号连接,属性值必须放在“”内。

           c.一个标记可以没有属性也可以有多个属性,属性和属性之间不分先后顺序。

           d.空标记没有结束标签,用"/"代替。

II.注释:

html注释  <!--注释内容 --> 

css注释  /*注释内容*/

js注释  /*多行*/    //单行 

III.在head部分放置表现(css).

IV.在body部分放置结构(网页内容)。

3 HTML标签

I.表格中数字自动填充增加{$}  如:table>tr*5>td{$}*5  加Table为表格样式

II.段落文本内容 <p></p>.

III.空格&nbsp;

IV.加粗 <b></b>或者<strong></strong>

V.倾斜<em></em>或者<i></i>

VI.强制换行 <br/>

VII.水平线<hr/> 下划线<u></u> 删除线<s></s>

VIII.HTML中有三种列表,分别是无序列表,有序列表,自定义列表。

说明:

无序列表

<ul>

  <li></li>

  <li></li>

....

</ul>

有序列表

<ol>

 <li></li>

 <li></li>

  ...

</ol>

自定义列表

<dl>

  <dt>名词</dt>

    <dd>解释</dd>

    <dd>解释</dd>

    ...

</dl>

IX.img

title="鼠标滑过显示文字"  alt="图片加载失败显示文字"    src="图片存储路径/图片网址"

X.超链接 <a href="链接地址">点击文本</a>

   页面打开方式<target>

    本页面打开_self  另开一页_blank

   alt="加载失败显示文字"

XI.div

        分区标签,可大可小,最常用的容器标签之一

XII.span

        行内元素, 文本结点,一般用于存放某一小段文本,或是某一个字

4 HTML表格

I.数据表格的作用及组成

作用:显示数据

组成:

<table>

    <tr>行

           <td>内容</td> /*单元格*/

           <td>内容</td>

             ....

     </tr>

</table>

II.表格的相关属性

width="宽"     height="高"

border=“表格边框大小”

cellspacing="单元格间距离"

bgcolor="表格背景色“

align="表格对齐方式"(left/center/right)

合并单元格属性:

colspan="所要合并单元格列数”合并列,左右合并

rowspan="所要合并单元格行数”合并行,上下合并

5 HTML表单

I.表单的作用:用来收集用户信息。

II.表单框:method提交方法  提交方式(post,get)

   <form name=“表单名称” method="post"  action="#">

   </form>

*get和post的区别:

  • Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
  •  Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认 为不受限制。
  •  Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
  •  Get执行效率却比Post方法好。Get是form提交的默认方法。

III.文本框

  <input type ="text" value="默认值“  placeholder="输入框内容/>

IV.密码框

  <input type="password"/>

V.提交按钮

  <input type="submit" value="按钮内容"/>

VI.重置按钮

  <input type="reset" value="按钮内容"/>

VII.禁用按钮 disable="disabled"(简写disabled)

VIII.默认选项 checked="checked"(简写checked)

IX.下拉菜单

  <select>

           <option>菜单内容</option>

           <option  selected(默认选中)>菜单内容</option>

  </select>

X.多行文本框

     <textarea></textarea>  

XI.占位   placeholder="内容"

XII.按钮   button只起到跳转作用,不进行提交。

               submit是提交按钮 起到提交信息的作用

XIII.单选框

男<input type="radio" name="ral"/>

女<input type="radio" name="ral" />

单选按钮里的name属性必须写,同一组单选按钮的name属性值必须一样。

XIV.复选框

<input type="checkbox" name="like" />

<input type="checkbox" name="like" disabled="disabled">

(disabled="disabled" :禁用)

(checked="checked" :默认选中)

二、CSS基础

1.CSS汉译:

        层叠样式表,就是如何修饰网页信息的显示样式。

        层叠性:给同一个元素添加相同的CSS属性,属性值会存在覆盖问题(代码执行顺序从上向下执行)

2.CSS语法:

        CSS由两部分组成:选择符(选择器)例div{},声明(属性:属性值组成)例:声明{属性:属性值;}

语法说明:

a.每个CSS样式由两部分组成,即选择符和声明,声明又分为属性和属性值;

b.属性必须放在花括号中,属性与属性值用冒号连接。

c.每条声明用分号结束。

d.当一个属性有多个属性值的时候,属性值和属性值不分先后顺序。

e.在书写样式过程中,空格,换行等操作不影响属性显示。

3.CSS样式表

a.内部样式表:内部样式的作用域是当前文件。在head标签内写style标签,在style标签内写选择器和声明。

b.外部样式表:外部样式表的作用域是有关联的所有文件。创建外部CSS文件,通过link标签引入外部css文件。例如:<link rel="stylesheet" href="路径">(多数使用)或者@import url(路径)

c.内联样式表:行内(内联)样式的作用域是当前标签。在标签里写style="属性:属性值;属性:属性值;..."

d.样式表的优先级

!important>内联>内部/外部

内联样式表的优先级别最高

内部样式表与外部样式表的优先级和书写的顺序有关,后书写的优先级别高。

4.css选择器

a.class选择器:通过class起名字,通过.名字设置样式。

b.群组选择器

 语法:选择符1,选择符2,选择符3......{属性:属性值;}

  说明:当有多个选择符应用相同的样式时,可以将选择符用“,”分隔的方式,合并为一组。

c.包含选择器

语法:选择符1 选择符2{属性:属性值;}

说明:选择符1和选择符2用空格隔开,含义就是选择符1中包含的所有选择符2;

d.伪类选择器

  语法:

  a:link{属性:属性值;}超链接的初始状态;

  a:visited{属性:属性值;}超链接被访问后的状态;

  E:hover{属性:属性值;}鼠标划过元素时的状态;

  E:active{属性:属性值;}即鼠标按下时元素的状态;

*当这4个超链接伪类选择符联合使用时,应注意他们的顺序

e.id选择器

 语法:#id名{属性:属性值;}

  说明:  

  • 当我们使用id选择符时,应该为每个元素定义一个id属性;
  •   如:<div id="top"></div>  
  • id选择符的语法格式是“#”加上自定义的id名;
  •   如:#top{width:300px; height:300px;}   
  • 起名时要取英文名,不能用关键字:(所有的标记和属性都是关键字)  
  • 一个id名称只能对应文档中一个具体的元素对象,因为id只能定义页面中某一个唯一的元素 对象。  
  • 最大的用处:创建网页的外围结构.

f.通配符【*】

   作用:选中页面上所有元素。常用来重置样式。

如清除默认边距

*{

margin:0;padding:0;

}

g.选择符的权重(!important的权重最高)

  • css中用四位数字表示权重,权重的表达方式如:0,0,0,0
  • 类型选择符的权重为0001
  • class选择符的权重为0010
  • id选择符的权重为0100
  • 子选择符的权重为0000
  • 属性选择符的权重为0010
  • 伪类选择符的权重为0010
  • 伪元素选择符的权重为0001
  • 包含选择符的权重:为包含选择符的权重之和
  • 行内样式的权重为1000 继承样式的权重为0000

5.CSS文本属性

a.字体大小:选择器(font-size:12px/14px/16px;)

   属性值为数值型时,必须给属性值加单位,属性值为0时除外。

   单位还可以是pt,9pt=12px;

   默认情况下:1em=16px,0.75em=12px,1ppi=16px;

b.文本字体:{font-family:"宋体",“黑体”;}

c.css加粗:{font-weight:bolder/bold/normal/100-900;}取值范围100-500不加粗,600-900加粗。

d1.text-transform:none/capitalize首字母大写/uppercase将单词全部变成大写/lowercase将单词大写转变为小写。(鼠标滑过)

e.字体风格:{font-style:normal常规字体/italic/oblique倾斜;}

     说明: 1)italic和oblique都表示倾斜,不过oblique的幅度要大一点。但一般浏览器对它们的区分不是很明显。

f.水平对齐方式:{text-align:left/right/center/justify(两端对齐中文不起作用);}

g.垂直(基线)对齐方式{vertical-align:top/bottom/middle;}

h.行高{line-height:normal/数值;}

   说明:

   当单行文本的行高等于容器高时,可实现单行文本在容器中垂直方向居中对齐;

   当单行文本的行高小于容器高时,可实现单行文本在容器中垂直中齐以上任意位置的定位;

   当单行文本的行高大于容器高时,可实现单行文本在容器中齐以下任意位置的定位。

i.文本修饰:text-decoration:none/underline/overline/line-through

说明:

  none:没有修饰

  underline:添加下划线

  overline:添加上划线

  line-through:添加删除线

j.首行缩进:text-indent:..(推荐单位用em);em参考对象是当前字号。可以取负值,只对第一行起作用。

k.字间距 {letter-spacing:value;}控制英文字母或汉字的字距。

l.词间距{word-spacing:value;}控制英文单词词距。

6 列表相关属性

a.定义列表符号样式:

  •    list-style-type:disc(实心圆)/circle(空心圆)/square(实心方块)/none。
  •   使用图片作为列表符号:list-style-image:url(所使用图片的路径及全称);
  •   定义列表符号位置:list-style-position:outside(默认外面)/inside里面;  

关于列表属性的简写:list-style:;


 7 边框的相关属性

a.边框:边框宽度:border-width

        边框样式:border-style

        边框颜色:border-color

b.边框线型:soild:实线; dashed:虚线; dotted:点状线; double:双线; none:没有边框

c.单独设置某个方向的边框属性:

border-top:上边框

border-bottom:下边框

border-left:左边框

border-right:右边框

d.  transparent 为透明色

e.边框阴影:

  语法:box-shadow:属性值;

  属性值:x-offset(右)

          y-offset(下)

          blur模糊区域

          spread扩展区域

          color

          inset向内

   或者简写:box-shadow:0px 0px 0px 0 #ccc inset;

  水平方向(正值为右)垂直方向(正值为下)模糊度 放大 颜色 在里/外

f.边框图片

  语法:border-image

(1)边框图片资源 border-image-source:url().默认会将图片显示在边框的四个角

(2)边框图片的裁剪 border-image-slice(0 0 0 0上右下左)

(3)边框图片的宽度,默认为边框宽度。border-image-width(一般不写)

(4)边框图片的平铺border-image-repeat 属性值:stretch拉伸(默认) repeat重复 round缩放后的重复

(5)边框图片向外延伸 border-image-outset(不能为负值) 。

8.引入背景图片:background-image:url();

png支持背景透明,jpg不支持背景透明。

设置背景图片大小:background-sia.背景图片的显示原则

  • 容器尺寸等于图片尺寸,背景图片正好显示在容器中;
  • 容器尺寸大于图片尺寸,背景图片将默认平铺,直至铺满元素;
  • 容器尺寸小于图片尺寸,只显示容器/元素/范围以内的背景图。

a.背景图片平铺属性

  • 语法:background-repeat:no-repeat/repeat/repeat-x/repeat-y
  • no-repeat:不平铺  
  • repeat:平铺  
  • repeat-x:横向平铺
  • repeat-y:纵向平铺

b.背景图位置

  • background-position:
  • 水平方向值:left/center/right或数值
  • 垂直方向值: top/center/bottom或数值

c.背景图的固定

语法:选择符{background-attachment:scroll(滚动)默认的/fixed(固定);}

说明:记得用在有滚动条的地方;

d.各属性的缩写语法:

选择符{background:属性值1 属性值2 属性值3;}

d.background-size

e 渐变gradient(属性值)

1.线性渐变

background: linear-gradient(yellow, blue,pink,#58bc58,...); 标准语法(必须放在最后)

2.对角渐变

background: -webkit-linear-gradient(left top, red , blue);[ Safari 5.1 - 6.0 ]

background: -o-linear-gradient(bottom right, red, blue); [ Opera 11.1 - 12.0 ]

background: -moz-linear-gradient(bottom right, red, blue); [ Firefox 3.6 - 15]

background: linear-gradient(to bottom right, red , blue); [标准的语法(必须放在最后)]

3.角度渐变

(新版本旋转方向正值为顺时针,老版本旋转方向正值为逆时针)

background: -webkit-linear-gradient(0deg, red, blue);[Safari 5.1 - 6.0 ]

background: -o-linear-gradient(0deg, red, blue); /* Opera 11.1 - 12.0 */

background: -moz-linear-gradient(0deg, red, blue); /* Firefox 3.6 - 15 */

background: linear-gradient(0deg, red, blue);

[标准语法(必须放在最后)]

4.颜色结点(不均匀分布)

background: linear-gradient(red 50%, blue 70%,yellow);

5.径向渐变

background: -webkit-radial-gradient(red, green, blue);

[ Safari 5.1 - 6.0]

background: -o-radial-gradient(red, green, blue);

[Opera 11.6 - 12.0 ]

background: -moz-radial-gradient(red, green, blue);[Firefox 3.6 - 15]

background: radial-gradient(red, green, blue);

[标准的语法 必须放在最后]

颜色(不均匀分布)

6.shape 参数定义了形状。

它可以是值 circle 或 ellipse。

其中,circle 表示圆形,ellipse 表示椭圆形。

默认值是 ellipse。

7.重复的径向渐变

repeating-radial-gradient() 函数用于重复径向渐变

属性值:

(1)数值、百分比:水平方向 垂直方向;[可能发生扭曲]

(2)cover:覆盖,背景图片完全覆盖容器[可能会丢失一部分图       片,不会发生扭曲]

(3)contain:包含,容器完全包含背景图片[容器可能会出现空       白区域](背景图不会发生扭曲和丢失)

*轮播图,ui一般会给一张超级大的图片

轮播图的做法:

引入背景图background-image、设置背景图大小background-size:cover、背景图定位background-position:center center;

e.background-origin 背景的定位区域

换句话说,就是background-position的原点(0,0)在哪个区域的左上角

注意区分:background-position 背景在容器的定位区域的什么位置摆放

属性值:

padding-box(padding以内,默认)

content-box内容以内

border-box边框以内

 9.浮动详解

1.浮动属性

语法:float:none/left/right;

注:

  •   *浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。   
  •   *浮动后的元素会脱离标准流(不会脱离文本流)      
  •   *浮动后的元素相当于置换元素(一行显示多个、可以设置宽高)

2.盒模型的概念

盒模型是CSS布局的基石,规定了网页元素如何显示以及元素间相互关系。CSS定义所有的元素都可以拥有像盒子一样的外形和平面空间。

3.盒模型的组成

内容区content、内填充 padding、边框border、外边距margin

内填充:padding,在设定页面中一个元素内容到元素的边缘(边   框) 之间的距离。 也称补白。padding不可以写负值!

4.padding作用:改变子元素或内容在父元素的位置。

padding值是额外加在元素原有大小之上的,为保持元素大小不变,需要从元素宽或高上减掉后添加的padding属性值。

padding设置一个值的时候,为上下左右;

padding设置两个值时,为上下、左右;

padding设置 为三个值时,上、左右、下;

padding设置四个值时,为上、右、下、左;

可以设置单独方向的padding

padding-top:value;上

padding-bottom:value;下

padding-left:value;左

padding-right:value;右

5.外边距margin,margin可以写负值!

 作用:控制盒子跟盒子之间的间距。

说明:可单独设置某一方向边界

  margin-left:左边界

  margin-right:右边界

  margin-top:上边界

  margin-bottom:下边界  

  margin属性值的四种方式的表示方法和Padding相同。


10 元素类型

1.HTML元素分类为块状元素,内联(行内)元素,置换元素(行内块元素)。

2.块级元素(div、form、p、ul、ol、dl、dt、dd、li、h1-h6...

   特点:独占一行显示,可以写width和height。块状元素一般为其他元素的容器,可以容纳其它内联元素和部分块状元素,例如div>p;

3.行内元素(a,b,br,i,em,label{表单标签},img等)

  特点:多个在一行显示,不可以写width和height。

  内联元素支持盒模型,但个别属性不能正确显示:padding-top、padding-bottom

4.元素类型的转换

  盒子模型可通过display属性来改变默认的显示类型

  作用:该属性设置或检索对象元素应该生成的盒模型的类型。

   语法:display:block(块状元素)/inline(行内元素)/inline-block(行内块元素)/none(隐藏元素)  

5.>该选择器只会选择第一代的元素,用法.u1>li:hover {}

6.元素添加float属性,就相当于给该元素加了display:inline-block;

11 元素定位+锚点

1.属性position

  属性值:static默认值  ,absolute绝对定位【绝对定位默认依据(html)定位】  ,relative相对定位  ,fixed绝对定位(固定定位)

  需要配合方向(top,bottom,right,left)使用。

1.1 绝对定位:如果父元素有定位,依据有定位的父元素定位(定位值不为static时)。

     绝对定位会脱离布局流,不占位。

     层级顺序z-index:number;默认为0,数值可以取负值,值越大在上层显示,需要配合定位使用。

1.2相对定位  依据自身原来的位置定位。

              子元素依据父元素定位口令:子绝父相。

               相对定位不会脱离布局流,原来的位置占位。

2.元素始终在窗口上下左右居中

方法一:

position:fixed;

left:0;

right:0;

top:0;

bottom:0;

margin:auto;

方法二:

position:fixed;

left:50%;

top:50%;

margin:-100px 0 0 -100px;

说明:当一个元素有绝对定位(absolute)的情况下,如果该元素的子元素需要以该元素为参照物进行绝对定位,那么子元素可以直接加position:absolute;

3.固定定位

position:fixed

需要配合方向使用。

4.绝对定位和相对定位的区别

a参照物不同,绝对定位的参照物是包含块(已定位的父元素),相对定位的参照物是元素本身默认的位置;  

b绝对定位将对象从文档流中拖离出来因此不占据空间,相对定位不破坏正常的文档流顺序无论是否进行移动,元素仍然占据原来的空间。

5.锚点链接

 命名锚点的作用:在同一页面内的不同位置进行跳转。

  制作锚标记:

  1)给元素定义命名锚记名

  语法:<标记div   id="命名锚记名">    </标记div>

  2)命名锚记连接 语法:<a href="#命名锚记名称"></a>

6.opacity:0.5;(文字和背景都透明)(取值范围0~1)

  background:rgba(,,,透明度)

7.滚动条

  说明:Overflow内容溢出时的设置

  属性: overflow 水平及垂直方向内容溢出时的设置            overflow-x 水平方向内容溢出时的设置  

  overflow-y 垂直方向内容溢出时的设置  

  以上三个属性设置的属性值:

  visible,scroll,hidden,auto.

 visible 默认:其中的内容无论是否超出范围都将被显示。   

  hidden :任何超出“width”和“height”的内容都会隐藏。

  scroll :无论内容是否超越范围,都将显示滚动条。

  auto :当内容超出范围时,显示滚动条,否则不显示。

8.滚动字幕

语法:

<marqueebehavior=“scroll/alternate”  滚动形式           

direction="up/down/left/right"    滚动的方向           

scrollamount=“value”            滚动速度         

height="value"            滚动的范围  

width="">

</marquee>

behavior(行为)="scroll(滚动)/alternate(晃动)   direction(方向)="up(从下向上)/down(从上向下)   /left(从右向左)/right(从左向右)”  

scrollamount(滚动速度)="value"

height="value(上下滚动范围)" width=""(左右滚动范围)

 12 图片整合

1.精灵图

使用软件CSS Satyr v1.2,exe

图片生成后,head部分用.pic写图片位置,再用.pic-$的位置。

body部分使用<span>标签使用精灵图。

 

2.滑动门

说明:滑动门是利用CSS背景图像可层叠性,并允许彼此之上进行滑动来创造一些特殊动态效果。

特征:使CSS设计出来的导航菜单兼具传统布局的图像效果,与CSS布局的高效扩展性。

13 宽高自适应

1.宽度自适应

        若块级元素宽度不设置,或者设置成100%,都是占据其父级元素的一整行(继承父元素宽度)。

  应用场景:

  • 页面最外层的盒子一般都要占据屏幕的大小,所以宽度100%。
  • 子元素使用百分比表示盒模型任意部分大小的话,代表的是子元素盒模型任意部分尺寸=父元素宽度*百分比;

2.高度自适应

1)父元素高度由子元素撑开

(1)若是子元素都浮动了,父元素不会被撑开(高度塌陷)

解决办法(清除浮动):

* 给父元素添加最后一个子元素(块级元素)

{ height:0;overflow:hidden;clear:both;  (clear:left/both/right)}

缺点:造成不必要的浪费

* 给父元素添加{overflow:hidden;}

缺点:可能造成需要的部分被隐藏掉

* 伪元素清除法.(万能清除法)

.clearfix::after

{content:"";

display:block;

height:0;

overflow:hidden;

visibility:hidden;

clear:both;

zoom:1;}

备注:使用时,给父元素添加类名 clearfix即可。

clear:both清除浮动 clear:left清除左浮 clear:right清除右浮

(2)预防子元素会没有内容,撑不开父元素的情况

   解决办法:给父元素添加最小高度min-height。

(当内容高度小于最小高度时,按最小高度显示。当内容高度大于最小高度时,按内容高度显示)

BFC块级格式化上下文

14 块级格式化上下文 (Block Formatting Context)

BFC是一个独立的布局环境,其中的元素布局是不受外界的影响。

满足下列条件之一就可触发BFC

【1】根元素,即HTML元素

【2】float的值不为none

【3】overflow的值不为visible

【4】display的值为inline-block

【5】position的值为absolute或fixed

特性

【1】阻止垂直外边距(margin-top、margin-bottom)重叠

属于同一个BFC的两个相邻块级子元素(元素都要在文档流中)的上下margin会发生重叠—— 分为两个BFC就可以消除这种margin 重叠

解决: 触发其中一个div的BFC,使得两个div不在同一个 BFC内,这样就可以阻止这两个div的margin重叠,display:inline-block;

【2】包含浮动元素

可以包含它内部的所有元素,包括浮动元素——因此一清除内部浮动

解决:清除浮动, overflow: hidden;,为其本身创建一个BFC

bfc的作用:

1.自适应两栏布局

2.可以阻止元素被浮动元素覆盖

3.可以包含浮动元素——清除内部浮动

4.分别属于不同的BFC时可以阻止margin合并

 15 浏览器兼容

一、常用的浏览器

  1)主流浏览器 Internet Explorer、 Safari、Mozilla Firefox、 Google Chrome、Opera、百度、360、搜狗、傲游     2)最早的浏览器 : Mosaic  /  Netscape Navigator(网景领航者)(1994-2008)简称NN

二、五大浏览器内核

•Trident   (MSHTML)(ie 三叉戟;三叉线;三齿鱼叉)

•Gecko      (壁虎 firefox)

•Presto      ( 欧朋opera)

•Webkit    (Safari内核,Chrome内核原型,它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核)

•Blink        (由Google和Opera Software开发的浏览器排版引擎)。

16 伸缩布局盒模型(弹性盒模型)

1.说明:

  css3引入一种新的布局模式——flexbox布局,即伸缩布局盒模型,用来提供一个更有效的方式制定、调整和分布一个容器里的子项目布局,即使他们的大小是未知或者动态的。

  主要思想是让容器有能力让其子项目能够改变其宽度、高度(甚至顺序),以最佳的方式填充可用空间(主要是为了适应所有类型的显示设备和屏幕大小)。flex容器会使子项目扩展来填充可用空间,或缩小他们以防止溢出容器。

  2.flexbox布局功能主要具有以下几点:

  • a.屏幕和浏览器窗口大小发生变化也可以灵活调整布局;
  • b.指定伸缩项目沿着主轴或侧轴按比例分配额外空间,从而调增伸缩项目的大小;
  • c.指定伸缩项目沿着主轴或侧轴将伸缩容器额外空间,分配到伸缩项目之前、之后或之间;
  • d.指定如何将垂直于元素布局轴的额外空间分布到该元素的周围;
  • e.控制元素在页面上的布局方向;
  • f.按照不同于标准流所指定的排序方式对屏幕上的元素重新排序。

  3.弹性盒

一、设置在容器:父元素上。

  1)使其变为弹性盒:

    语法:display:flex;

    说明:规定子项目在父元素主轴方向(默认水平)一行显示,不会换行。侧轴方向(默认垂直)会默认拉伸。

  2)设置主轴方向:

     语法:flex-direction;

     属性值:row 默认为水平向右

             column 垂直向下

             row-reverse 水平向左

             column-reverse垂直向上

  3)允许子元素伸缩换行:

     语法:flex-wrap:nowrap;

     属性值:nowrap默认不换行 、wrap换行

  4)设置子项目在容器主轴方向的对齐方式

     语法:justify-content:属性值;

     属性值:flex-start 默认在主轴方向起点位置对齐

             flex-end 在主轴方向终点位置对齐

             center 中间

             space-between 将空白区域平分在子项目之间

             space-around 将空白区域环绕在子项目两边

5)设置子项目在其所在行的侧轴对齐方式

    语法: align-items(单行):属性值;

    属性值:stretch 默认拉伸

            flex-start 子项目在其所在行的起始位置摆放

            flex-end 子项目在其所在行的结束位置摆放

            center 中间

6)设置子项目在侧轴方向的对齐方式

   语法:align-content(控制多行):属性值;

   属性值:flex-start 默认在所在行起点位置对齐

           flex-end 在所在行终点位置对齐

           center 中间

           space-between 将空白区域平分在子项目之间

           space-around 将空白区域环绕在子项目两边

二、设置在子项目上:

1)设置子项目在父元素主轴方向的比份;

    语法:flex:number;

2)设置单个子项目在其所在行的侧轴对齐方式;

    语法:align-self:属性值;

    属性值:stretch 默认拉伸

            flex-start 子项目在其所在行的起始位置摆放

            flex-end 子项目在其所在行的结束位置摆放

            center 中间

3)设置子项目的顺序;

    语法:order:number;

    说明:写了order的排在没有order属性的元素后面。

          写了order的,属性值越小的在越前面;

          没写order的属性值默认为零,order可以写负值。

4)设置子元素压缩;

    语法:flex-shrink: 0/1;

    属性值:0---不压缩;

            1---压缩;

17 多列布局

说明:css多列布局可以自动将内容按指定的列数排列,这种特性实现的效果和报纸、杂志类排版非常相似。跟瀑布流效果相仿。

核心属性:(一般加在body上)

   column-width 列宽 , 定义每列列宽; 类似于最小宽度min-width; auto 自适应;

   column-count 列数,定义分列列数;最多列数,auto自适应(由列宽、容器宽和列间距决定),也可固定

   column-gap:定义列间距; 不能为负数;

   column-rule:定义列边框;与定义边框一样:2px dashed #ccc;

   column-span: 属性值;  定义多列布局中子元素的跨列效果;通常用于标题;

       属性值:none:不跨列;  all:跨所有列;

   当出现图片与下方标签不配对时,使用break-inside: avoid;(断点)这类属性加在图片的上级父元素上;

18 媒体查询

1.说明:页面结构简单使用

2.屏幕分界点:

   超小屏幕xs (移动设备)768px以下

   小屏设备sm             768px-992px

   中等屏幕md             992px-1200px

   宽屏设备lg             1200px以上

3.语法

1)@media screen and (条件:最小宽度,最大宽度等)

2)min-width 若当前页面宽度大于min-width的值时,则样式生 效。注意!链接的css文件的min-width应从小写到大;

19 移动端布局

操作顺序:

1.链接相应的CSS、JS文件。注意所链接文件顺序。

  使用其他编码器时,注意设置

<meta name="viewport" content="width=device-width, initial-scale=1.0">

2.确定设计稿大小,改相应rem、js参数;(插件:cssrem)

  640px设计稿/rem、js(function)为640,插件(font-size)改为64,

  750px设计稿/rem、js为750,插件改为75。

3.设置页面为高度自适应;

  {height:100%}

4.根据测量布局;

5.当整体产生滚动条时,设置position:absolute;脱离布局流

6.px、em、和rem的区别

1)概念

px:绝对单位,页面按精确像素展示。

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。

2)特点

px特点:字体大小固定。

em特点 :

a. em的值并不是固定的;

b.em会继承父级元素的字体大小。

rem特点:

rem是CSS3新增的一个相对单位(root em,根em),区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

19 过渡transiton

1.transition-property规定应用过渡的 CSS 属性的名称。

2.transition-duration定义过渡效果花费的时间。默认是 0。

3.transition-timing-function规定过渡效果的时间曲线。默认是 "ease"。

  •    a.ease规定慢速开始,然后变快,然后慢速结束的过渡效果
  •    b.linear规定以相同速度开始至结束的过渡效果
  •    c. ease-in规定以慢速开始的过渡效果
  •    d. ease-out规定以慢速结束的过渡效果
  •    e.ease-in-out规定以慢速开始和结束的过渡效果
  •    f.transition-delay规定过渡效果何时开始。默认是 0。

  语法:transition:all 2s linear 3s;

20 2D转换transform

1、translate( X,Y)偏移方法

  [水平(正值为右),垂直(正值为下)]

2、rotate(0reg,0reg)旋转方法(reg为角度)

3、scale( X,Y)缩放方法,x,y为倍数,可放大可缩小

4、skew(Xdeg,Ydeg)扭曲方法

21 3D变换

1.transform之3d移动变换: (加在父元素上)

  语法:transform:translate3d(x,y,z)

  z:代表在垂直于平面的轴上移动,电脑屏幕往人眼那个方向为正方向。

   transform:translateY() translateZ(z) 【女神上来】

2.transform-style规定变换的样式(加在父元素上)

   当写3d模式时,要加上这句语法,开进图片3D状态。

   属性值:flag平面(默认) preserve-3d保持3d变换            transform-style: preserve-3d 保持3d变换

3.设置观察的距离,

  景深 perspective:value(父元素) 【案例女神向我走来】

4.transform之rotate3d

  transform:rotate3d(x,y,z,角度)

  此时x、y、z取值为0或1,0代表不旋转,1旋转

  transform:rotateX(角度) transform:rotateY(角度)          transform:rotateZ(角度)

  备注:左手定律,大拇指指向轴的正方向,其他手指弯曲的方    向为旋转的正方向 【体操】

5.立方体 改变盒子变换的基准点

语法:perspective-origin :( ,)观察的基准点(角度deg)

属性值:第一个值为水平方向,正值为往右;第二值为垂直方向,正值为往下;

语法:transform-origin:( ,)改变盒子变换的基准点。

22 动画

1.自定义动画

  • (1)通过@keyframes指定动画序列;
  • (2)通过百分比将动画序列分割成多个节点;
  • (3)在各节点中分别定义各属性
  • (4)通过animation属性将动画应用于相应元素;

2.animation属性

  • (1)animation-name动画名字(必须)
  • (2)animation-duration动画播放时间(必须)
  • (3)animation-timing-function 动画播放的形式
  •   属性值: linear线性 ease ease-in steps(n)
  • (4)animation-delay 动画播放的延迟
  • (5)animation-iteration-count 动画播放的次数  
  •    infinite无限次播放
  • (6)animation-direction 动画是否轮流反向播放
  • 属性值:alternate交替播放 reverse反向播放
  •  alternate-reverse 轮流反向
  •  animation:1 2 3 4 5 6 ;(缩写)

补充:

  • (1)animation-play-state:paused; 暂停动画                 
  • (2)animation-fill-mode属性规定动画在播放之前或之后,其动画效果是否可见。  属性值:forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)

三,总结

               除语义化标签外,以上便是现阶段学西html和css的主要学习内容


版权声明:本文为m0_57185539原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。