H5 CSS3第一阶段总结

最近两三个月都在忙着小论文,断断续续怕之前的基础都忘了。最近调参数的同时回顾一下之前的基础内容,一些心得体会做一些记录。

一、H5基础

     1.标签

1.<!DOCTYPE html>    <!--命名文档类型-->
2.<html></html>    <!--说明文档是:标记语言,也是根标签-->
3.<head></head>    <!--文件头部-->
4.<title></title>    <!--文件标题-->
5.<meta charset="utf-8"> <!-- meta 定义文件信息,便于引擎查找-->

          双标记又称常规标记,单标记又称空标记。

1.加粗的两个标签<b></b>与<strong></strong>、<i></i>与<em></em>的区别,前者(b、i)都仅为样式好看,后者有语义化的强调。在页面中推荐时候后者,因为样式可以在css 中设置
2.一般的嵌套规则:
    块状元素可以嵌套行内元素,块状可以嵌套块状
    行内可以嵌套行内,但行内不能嵌套块状
    例如:<a></a>中不能再嵌套<a></a>,但<div></div>中可以再嵌套一个<div></div>
3.xhtml与html 的区别
    1)xhtml 中的单标签必须关闭,而html中两者都可
    2)xhtml 和 html 都要求正确的嵌套
    3)xhtml 区分大小写,html不区分
    4)xhtml 属性要加"",html可以不要
    5)xhtml 用 Id 代替 name
    6)xhtml 属性必须要有属性值,html 属性名与值相同时,属性值可以省略

    以上内容可以与 “H5的特点” 结合记忆
4.H5的特点
    1)骨架更简单
    2)语法更宽松(不是好事)
        1> 空元素可以省略反斜杠:<br>  <hr>  <img>  <input>  <link>  <meta>
        2> 可省略结束标签的元素:<colgroup>  <dt>  <dd>  <li>  <optgroup>  <p>  <head>  <thead>  <tbody>  <tfoot>  <td>  <th>
        3> 可全部省略标签的元素:<html>  <head>  <body>  <tbody>
        4> 不区分大小写 <em></Em> 合法
        5> 当引用外部 css 或 Js 时,type 属性可以省略
    3)标签语义化
        因为引入了新增的标签:<header>、<nav>、<section>、<article>、<aside>、<footer>、<fugure>、<figcaption>等
        而且这里仅仅只有结构标签,有语义化。语义化顾名思义就是看到这个标签,就知道这是作用于哪里,传统使用id名或class名语义化加以标识
    4)多设备跨平台
        能适应多个浏览器的版本,在不同设备上仍然能保持较好的页面效果
    5)自适应网页设计
        这里的原因是因为页面具有宽高自适应,在移动端或PC端都能完整呈现。(chrome 上可以切换)

         引入外部样式表的两种方式,一般只是用第一种链接样式

1.<link rel="stylesheet" type="text/css" href="XXX.css">
2.<style>
    @import url(XXX.css)
  </style>

        引入样式的三种方法:内联 > 内部 > 外部      (内部和外部样式的优先级:页面从上到下,谁先书写谁有效)

   2. 其他注意点

       一个页面中 h1 只能使用一次,h2~h6 可以使用多次,不过一般用到 h3 

       text-indent 、text-align 在行内元素中使用无效

       background 可以有多张背景图,后者覆盖前者

       font-wight :100~500 没有加粗效果,600~900 的加粗效果相同  400 等同于 normal ,700等同于 bold 

       ie6 只能之别png 的8位

 二.css

    1.盒模型

       块状元素:

<body> <div> <h1>~<h6> <ul> <ol> <p> <dl> <table> <tr> <td> <form> 

        行内元素

<a> <i> <u> <b> <iframe> <span> <font>

       行内块元素

<input> <img> <select> <textarea>

盒模型包括border(边框)、margin(边界)、padding(补白)、content(内容区)

margin允许负值,而padding 不允许有负值。同级元素同级浮动时,margin值不会重叠。同级不浮动会重叠

这里注意一点,给子元素设置margin-top,会导致父元素一起向下移动。解法:给父/子元素设置浮动。

 2.设置省略号

    有时文本内容超出规定区域后,为保持内容的完整性,需要显示省略号。这里需要满足4个条件

    1)定义宽度 width:value

    2)white-space: nowrap 

    3)overflow:hidden

    4)text-overflow:ellipsis

     这里省略号只能针对块状元素使用。(行内文本元素要转换为块状元素的方法:1. 设置浮动 2. display: block )

3.display 

     系统自带行内元素 display : inline  ,块状元素 display :block ,行内元素 display: inline - block 

      li 是 list - item ,table 是 table 

    块状级元素:block  list - item table flex    行内级元素 inline inline-block inline-table inline-flex

4.css 可继承和不可继承属性

    1)列表可继承  list-style  list-style-image  

    2)文本可继承  letter-spacing  word-spacing white-space  line-height color text-decoration text-transform

                              font-family/size/style/weight  

5.解决img 匿名文本问题

    img 是行内块元素,放在块状元素中,会将父元素撑大3~5 px。解决办法

    1)给父元素设置 font-size:0; 但是如果img 有同级的文本,会要重新设置文本大小

    2)将img 转换为块状元素 display : block 

6. 行内块元素(在父元素中垂直居中)

     行内块元素与文本的默认对齐方式:基线对齐。 行内块元素用的最多的是 middle 属性,与同级的文本垂直居中对齐。

    具体做法:1)将img 的vertical-align :middle 

                      2)对行内元素设置:

1.height:100%
2.width:0;
3.display:inline-block
4.vertical-align:middle

也就是将行内块+行内的组合,转换为行内块+行内块的组合,利用行内块同级时,可以相对于同级元素居中。而且将转换后的行内块元素高度设置为与父元素同高,也就最终做到了在父元素内的垂直居中

这里也就提到如何在父元素里垂直居中的问题,同样还有另外一个解决办法。

1.height:xx
2.line-height:xx

高度与行高相同,也能保持垂直居中

7.定位

   定位有4种类型:

  1)absolute 针对第一个父元素定位

  2)fixed 相对于浏览器定位,常见于页面上的固定导航栏

  3)relative 相对于其正常位置定位,不改变正常文档流

  4)static 默认值    

  5)inherit 继承

  html 是最大的一个绝对定位参照物,也就是最大的包含块。当某子元素要绝对定位时,会向上找到position 被设置的父元素,也就是无论父元素是position中的任何一种(通常父元素设置为 relative :即不会改变自身在文档流中的位置,又能使自己是子元素绝对定位的参照物。也有父元素是 absolute 的。只要父元素写了position,就可以作为子元素的参照物)

8.锚点

   锚点链接又名锚记,可以通过链接直接跳转到页面的某一部分。通常可以实现轮播图,不过主流现在用JS 实现。

   实现方法:

1.<标记 id="锚记名" ></标记>
2.<a href="#锚记名" ></a>

9.元素权重

元素权重简记
内联idclass元素权重值
00000000
10001000
01000100
00100010
00010001

   规则:某一css 样式的权重=所有元素的权重之和

通配符 *{} 、子元素 > 、兄弟元素 + 、继承的样式:权重为0

10.相对单位和绝对单位

    最常用的单位是 em(当前元素文字的大小)  px 和ex(当前元素中字母x 的大小 )

    举例:若 p=15px ,width=10em ,则 width=150px

                    p=10px ,width=10em ,则 width=100px

   也有的样式中 只写了类似1.5 、2.0 等,这时找到当前元素中的文本大小,再乘以显示的倍数,即可知道该元素的行高。

   通常em 可以省略不写。

11.精灵图

   在精灵图上有很多小图标,可以给父元素引入一整张精灵图,然后子元素要使用使,切换背景图定位即可。

   优点:1、减小图片体积   2、减少服务器请求次数

   与定位结合,可以实现滑动门技术(盒子的自适应)

12.transform 

    transform 可以实现位移、旋转、放大缩小、倾斜等效果

 1)位移:transform : translate(x,y)
        也可以分开写
                    :translate-X
                    :translate-Y
2)scale(): 0~1 是缩小倍数 ==1 与原内容一致
                          ==0 消失
3)rotate() : 正值:顺时针旋转
              负值:逆时针旋转

    这里与margin padding 做一个对比,margin padding 永远基于父元素大小,而 translate 参数值是百分比时,参照的是自身的大小

    与伪类结合,可以实现上下箭头,边框等效果

伪类:after{content:"";display:block;position:absolute;right:Xpx;top:Ypx;transform:rotate(-Zdeg);border-color:#aaa #bbb transparent transparent;border:npx solid;}

这个写法与清除浮动的伪类写法相似

应用:让一块内容在父元素中垂直居中,又要使元素不论放大缩小,都居中

解法:

1.设置子元素绝对定位 position:absolute
2.子元素 top:50%
3.子元素 transform:translate-Y(-50%)

13.伪对象选择符(伪元素选择符)

   1):after 与content 属性一起使用,定义对象后的内容

示例
div:after{content:url(XX.jpg);}   <!---将链接内容作为显示的内容--->
div:after{content:"文本内容";}
div:after{content:attr(class/href)/...}  <!---将属性作为显示的内容--->

   2):before  定义对象前的内容,使用方法与: after 一致

   3):first-letter 定义对象内第一个字符的样式,只能用于块级元素

   4):first-line 定义对象内一行的样式,只能用于块级元素

   5)::selection  因为是c3 新定义的,所以用两个" :"

语法
E::selection{color:.....;background:....;}

14.visibility 与 display 的区别

    visibility : none  对象属性不可见,但仍占据空间,等于留出了空白区域

    display :none 使对象彻底消失

15.清除浮动方法

   1)加空盒子,并为这个盒子添加clear 类:.clear{clear:both;}

   2)  overflow : hidden 给父级元素使用(最好是添加第三种方法的类,但是在二级导航中,已经给一级导航使用过添加类了,可以给有二级导航的子元素设置  overflow : hidden)

   3)直接添加 .clear 类,在需要清除浮动的父元素上添加这个类 clear

1 .clear:after{display:block;clear:both;content:"";height:0;visibility:hidden;}
2 .clear{zoom:1}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值