• 总结html


    1、初识html

    W3C : 万维网联盟!(World Wide Web Consortium )
      创建于1994年,是web技术领域最权威最具有影响力的标准机构!
       
       
      W3C规定了web技术领域相关技术的标准!
       
      官网地址:
      www.w3c.org
      www.chinaw3c.org
       
      XML :负责数据的存储
      Html :结构化标准,负责数据的显示
      CSS :表现标准
      JavaScript:行为标准
       
       
      Html概念:
       
      01.超文本标记语言(Hyper Text Markup Language)
      超文本:包含除了文本之外的视频,音频,图片等。
      标记:html也是有多个节点组成的!
      int a =5; 通过a找到5
      <student id="1"><student>
      <student id="2"><student>
      id就是我们的标记
       
      02.文件名以html或者htm结尾的文件我们称之为html!
       
      发展史:
      93年诞生HTML!
      00年改名XHTML!
      13年改名HTML5!
       
       
      HTML5的优势:
      01.世界知名浏览器厂商的支持!
      02.市场的需求
      03.跨平台
       
      HTML网页的基本结构
       
      <!DOCTYPE html> 只是告诉浏览器使用了html的规范
      <html> 根节点
      <head></head> 头部信息
      <body></body> 主体部分
      </html>
       
      我们怎么使用html呢?
      01.记事本(文本编辑器)
      02.DreamWeaver
     

    03.WebStorm

    第一个网页html 

    <!DOCTYPE html><!-- 声明当前的文件是H5的页面-->
      <html> <!--根节点-->
      <head lang="en"> <!--头部信息 lang="en"使用的语言是英语-->
      <title>这是我的第一个H5页面</title><!--网页的标题-->
      <meta charset="utf-8"> <!--设置页面的编码格式-->
      <meta http-equiv="keywords" content="第一次,h5">
      <!--
      meta:设置网页相关的元信息(meta-information)!
      比如:设置编码格式,搜索关键字,描述信息,页面跳转等。。。。
      meta常用的属性和属性值:
      01.charset:编码格式
      02.http-equiv:把content属性关联到我们的http头部!
      常用的属性值:
      001.keywords : 搜索关键字
      002.description:描述当前页面的信息
      003.refresh :跳转页面
      <meta http-equiv="refresh" content="3;url=http://www.github.com/xiaodoufu/">
      03.content:定义和http-equiv或者name属性的对应值
      -->
      <style type="text/css"></style><!--设置当前页面的样式-->
      <script type="text/javascript"></script> <!--设置当前页面的行为-->
       
      </head>
       
      <body> <!--网页中所有的数据 必须书写的位置-->
      这是我的第一个页面!
      </body>
      </html>

    标题标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>标题标签</title>
      <!--
      标题标签: h1-h6 其他的都没有效果!
      会自动换行!块元素(自己独占一行的元素)!
      -->
      </head>
      <body>
      <h1>1级标题</h1> <h2>2级标题</h2> <h3>3级标题</h3>
      <h4>4级标题</h4>
      <h5>5级标题</h5>
      <h6>6级标题</h6>
      <h7>7级标题</h7>
      8级标题
       
       
      </body>
      </html>

    段落标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>段落标签</title>
      <!--
      段落之前有空行!p标签也是块元素!
      自闭合标签
      <br/> 换行
      <hr/> 水平线
      <h1> <p> </h1> </p> 错误的! 标签的不正确嵌套!
      <p> <h1> </h1></p> 正确!
      -->
      </head>
      <body>
       
      <p>
      北京欢迎你,有梦想谁都了不起!<br/>
      有勇气就会有奇迹。
      </p>
      <hr/>
      <p>
      北京欢迎你,为你开天辟地<br/>
      ……
      </p>
       
      </body>
      </html>

    特殊字符

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>特殊字符的使用</title>
      <!--
      虽然有些特殊字符我们可以在页面上显示!但是不允许直接书写!
      需要特殊的符号来代替我们的特殊字符!
      特殊符号对照表:http://www.jb51.net/onlineread/htmlchar.htm
      -->
      </head>
      <body>
      大于号(>):&gt; <br/>
      小于号(<):&lt;<br/>
      引号(""):&quot;<br/>
      单引号('):&apos;<br/>
      版权符号(©):&copy;<br/>
      <!--
       
       
      想让一行中的某些字体 凸显出来,我们通常使用
      em 斜体 不建议使用i
      strong 加粗 不建议使用b
      尽量使用的标签 语义化(让计算机便于解析,让码农易于阅读)!
      -->
      大家辛苦了<strong><em>吗?</em></strong>
      </body>
      </html>

    图片标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>图片标签</title>
      <!--
      常见的图片格式:
      bmp,gif,png,jpg! 压缩(率)比!
       
      img标签 也是一个 行内元素(内联元素)!
       
      src :指的是 图片的位置! 绝对不能写成绝对路径!
      项目中需要的所有文件,都在项目中的images文件夹中保存!
      src就写成项目的相对路径!
      title:鼠标放在图片上的悬停文字,如果没有alt属性,图片不显示时,显示title
      alt:不显示图片的时候 替换文字
      height:高度
      宽度
      -->
      </head>
      <body>
      <img src="../images/a.jpg" height="200px" width="200px"
      title="这是一幅画" alt="多么美丽的画面">
      </body>
      </html>

    超链接

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>超链接</title>
      <!--
      01.普通的超链接
      02.锚链接
      03.功能性链接
       
      src:我们一般指的是 文件的地址!路径! 从哪里来
      href:是指向,引用! 到哪里去
       
      target:目标页面的设置!指的是 我们点击超链接之后的页面显示窗口的位置! 默认是当前窗口! _self
      _blank:在新创建的窗口中显示!
      -->
      </head>
      <body>
       
      <a href="http://www.baidu.com" target="_blank">百度</a> <br/>
      <a href="http://www.taobao.com" target="_self">淘宝</a> <br/>
      <a href="http://www.jd.com">京东</a> <br/>
       
      <!--
      把图片嵌套在超链接中!
      -->
      <a href="http://www.github.com/xiaodoufu" target="_blank">
      <img src="../images/a.jpg" width="200px" height="200px" alt="这是一个美丽的画面">
      </a>
      </body>
      </html>

    锚链接本页面跳转

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>锚链接本页面跳转</title>
      <!--
      锚链接:
      01.从本页面的A位置 跳转本页面的B位置 使用 #+标记名称
      02.从本页面的A位置 跳转其他页面的B位置 使用 页面名+#+标记名称
      name:标记的名称
      -->
      </head>
      <body>
      <div><a href="#flag" >跳转至第8个画面</a></div>
      <div><a href="08锚链接需要的页面.html#flag" >跳转至需要页面的第8个画面</a></div>
      <img src="../images/a.jpg" title="这是第1个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第2个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第3个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第4个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第5个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第6个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第7个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第8个画面" alt="以前有个画面">
      <!-- name="flag" flag标记名称 -->
      <a name="flag" href="#">这是第8个画面的标记</a> <!-- #返回本页面的最初位置-->
      </body>
      </html>

    锚链接需要的页面

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>锚链接需要的页面</title>
      </head>
      <body>
      <img src="../images/a.jpg" title="这是第1个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第2个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第3个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第4个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第5个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第6个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第7个画面" alt="以前有个画面">
      <img src="../images/a.jpg" title="这是第8个画面" alt="以前有个画面">
      <a name="flag">这是需要界面的 第8个画面标记</a>
      </body>
      </html>

    块元素和内联元素

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>块元素和内联元素</title>
      <!--
      块元素:自身独占一行!
      可以设置盒子大小!
      h1 - h6 p div
      内联元素:元素在一行显示!
      不可以设置盒大小!
      a img span子
      块元素和内联元素可以互相转换! 通过display属性设置!
      -->
      </head>
      <body>
       
      <div style=" 50px;height: 50px;border: 1px solid red;display: inline">
      我是一个小盒子
      </div>
       
      <a href="#" style=" 50px;height: 50px;border: 1px solid red;display: block">这是内联元素</a>
       
       
      </body>
      </html>

    2、列表表格和媒体元素

    无序列表

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>无序列表</title>
      <!--
      什么是列表
      列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来,
      以便浏览者能更快捷地获得相应的信息!
       
      01.前面有默认的实心圆
      02.每个li独占一行
      03.适用于我们的新闻列表,导航栏
      -->
      </head>
      <body>
      <ul>
      <li>好好学习</li>
      <li>好好学习</li>
      <li>好好学习</li>
      </ul>
       
       
      </body>
      </html>

    有序列表

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>有序列表</title>
      <!--
      01.有顺序,前面默认是阿拉伯数字
      02.适用与试卷 和问卷调查!
      -->
      </head>
      <body>
      <ol>
      <li>好好学习</li>
      <li>好好学习</li>
      <li>好好学习</li>
      </ol>
      </body>
      </html>

    自定义标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>自定义列表</title>
      <!--
      01.每个dt dd都独占一行
      02.默认前面没有任何标记
      03.适用于一个标题下,有多个列表项的场景
      -->
       
      </head>
      <body>
       
      <dl>
      <dt>C盘</dt>
      <dd>文件1</dd>
      <dd>文件2</dd>
       
      <dt>D盘</dt>
      <dd>文件1</dd>
      <dd>文件2</dd>
      </dl>
       
      </body>
      </html>

    表格

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>表格</title>
      <!--
      01.简单易用,便于阅读
      02.结构简单
       
      table中的属性:
      01.border: 边框的像素
      02.cellpadding 设置内容和单元格之间的距离
      03.cellspacing 设置单元格和单元格之间的距离
      04.bgcolor 整个表格的背景色 #ffc0cb :代表的是16进制的颜色码
      05.width 表格在浏览器中的宽度比
       
       
      td节点中的
      align="left" 默认
      align="right"
      align="center"
      -->
      </head>
      <body>
      <table border="1px" cellpadding="5px" cellspacing="5px"
      bgcolor="pink" width="50%">
      <tr>
      <td>第1行的第1列</td>
      <td>第1行的第2列</td>
      <td>第1行的第3列</td>
      </tr>
      <tr>
      <td>第2行的第1列</td>
      <td>第2行的第2列</td>
      <td>第3行的第3列</td>
      </tr>
      </table>
       
       
       
       
       
      </body>
      </html>

    跨行跨列

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>跨行跨列</title>
       
      <!--
      都必须写在td中
      rowspan :跨行
      colspan:跨列
      -->
      </head>
      <body>
       
      <table border="1px" cellpadding="5px">
      <tr>
      <td colspan="3" align="center"> 学生成绩表</td>
      </tr>
       
      <tr>
      <td rowspan="2">张三</td>
      <td>math</td>
      <td>80</td>
      </tr>
      <tr>
      <td>java</td>
      <td>90</td>
      </tr>
      <tr>
      <td rowspan="2">李四</td>
      <td>math</td>
      <td>85</td>
      </tr>
      <tr>
      <td>java</td>
      <td>95</td>
      </tr>
       
       
      </table>
       
      </body>
      </html>

    高级表格

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>高级表格</title>
      </head>
      <body>
      <table border="1" cellspacing="0" width="70%">
      <caption>年终数据报表</caption> <!--标题-->
      <thead bgcolor="red"> <!--页眉-->
      <tr>
      <th>月份</th>
      <th>收入</th>
      </tr>
      </thead>
      <tbody bgcolor="pink"> <!--主体-->
      <tr>
      <td>1月份</td>
      <td>5000</td>
      </tr>
      <tr>
      <td>2月份</td>
      <td>5000</td>
      </tr>
      <tr>
      <td>3月份</td>
      <td>6000</td>
      </tr>
      <tr>
      <td>4月份</td>
      <td>8000</td>
      </tr>
      </tbody>
       
      <tfoot bgcolor="green"> <!--页脚-->
      <tr>
      <td>平均月收入</td>
      <td>6000</td>
      </tr>
      <tr>
      <td>总收入</td>
      <td>24000</td>
      </tr>
      </tfoot>
      </table>
       
       
      </body>
      </html>

    音频标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>音频标签</title>
       
      <!--
      audio:音频标签
      controls:是否显示 控制条
      autoplay:是否自动播放
      -->
      </head>
      <body>
      <audio controls autoplay>
      <source src="../audio/music.mp3">
      </audio>
      </body>
      </html>

    视频标签

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>视频标签</title>
      <!--
      video:视频标签
      controls:是否显示 控制条
      autoplay:是否自动播放
      -->
      </head>
      <body>
      <video controls autoplay src="../video/video.mp4"> </video>
      </body>
      </html>

    结构元素

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>结构元素</title>
       
      <!--
       
      用于网页的布局:
       
      header: 头部区域
      section:html页面中的一块独立的部分
      footer:脚部区域
      nav:导航菜单
      article:独立的文章内容
      aside:常用于侧边栏
      -->
       
      <style type="text/css">
      header{
      height: 20px;
      border: 1px solid red;
      }
      section{
      height: 1000px;
      border: 1px solid black;
      }
      footer{
      height: 50px;
      border: 1px solid blue;
      }
      </style>
      </head>
      <body>
       
      <header>
      </header>
       
      <section>
      </section>
       
      <footer>
      </footer>
       
      </body>
      </html>

    内联框架

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>内联框架</title>
      <!--
      src :指的是 我们需要引入的外部文件地址
       
      需求:
      用户点击不同的超链接,在iframe框架中 显示不同的页面!
       
      -->
      </head>
      <body>
       
      <a href="http://www.jd.com" target="myIframe">京东</a>
      <a href="http://www.taobao.com" target="myIframe">淘宝</a>
      <a href="http://www.baidu.com" target="myIframe">百度</a>
       
      <iframe name="myIframe" src="http://www.baidu.com" scrolling="no" width="500" height="500"></iframe>
       
      </body>
      </html>

    3、CSS美化页面

    css美化页面
       
      如果在我们一行文字中,想让某个文字凸显出来,使用span!
       
      1.字体样式
      font-style:字体的风格 italic normal
      font-weight:字体的粗细 normal(默认400) bold(700) bolder 最大到900
      font-size:字体的大小 10px 2em rem pc pt
      font-family:字体的类型,比如我们的楷体,隶书,宋体。。。。。
       
      font:风格 粗细 大小 类型
      在一起设置属性的时候,四种属性顺序不能颠倒!
       
      2.文本样式
      color:文本颜色 red 16进制颜色码 rgb rgba
      rgb(red,green,blue)正数取值 0-255
      rgba(red,green,blue,alpha)
      alpha的取值必须是0-1 0不显示 1正常显示
      text-align:文本元素的水平对齐方式
      center left right justify(两端对齐)
      line-height:文本的行高!
      如果想设置文本的垂直居中line-height的值必须等于height的值
      text-indent:设置首行缩进
      p{
      text-indent:2em; 设置p首行缩进2个字符
      }
      text-decoration:文本的装饰
      none:默认值
      underline:下划线
      overline:上划线
      line-through:删除线
      text-shadow:文本阴影
       
      3.display 可以实现 块元素和行内元素的互换!
      inline inline-block block
       
      4.超链接伪类
       
      结构伪类选择器:
      div:nth-of-type() :nth-child
      css伪类是一个特殊的类! 它针对于我们设置的css选择器起作用!
       
      css伪类的语法:
      选择器:伪类名{
      属性:属性值;
     
      :link ==> 还没有点击超链接的样式
      :visited ==> 点击之后超链接的样式
      :hover ==> 鼠标悬停在超链接的样式
      :active ==> 鼠标点击未释放超链接的样式
       
      love hate
      如果同时给一个选择器设置超链接伪类样式,那么顺序是必须不变的!
       
      5.列表样式
      list-style-type 列表符号样式
      none 无符号
      disc 实心圆
      circle 空心圆
      decimal 数字 .....
      list-style-image 列表图片 url
      list-style-position 列表符号是否被li包含,默认是ul包含
      list-style 列表样式
       
      如果同时设置了type和image 那么image会覆盖type!和书写先后顺序没关系!
       
      6.背景样式
      ">   background-image:背景图片
      background-position:背景位置
      background-repeat:背景重复方式
      repeat:默认方式 水平和垂直都平铺
      no-repeat:不平铺,只有一个图片
      repeat-x:水平平铺
      repeat-y:垂直平铺
       
      background: 背景色 背景图片 背景位置 平铺方式
      虽然没有固定顺序,但是我们有个默认的写法!
       
      如果我们相对背景图片的大小进行设置!那么请使用background-size
      background-size:contain;
      background-size:背景图片的尺寸
      auto:默认值,使用图片的大小
      cover:让整个图片正好填充整个盒子
      contain:让图片自动的方法或者缩小 适应盒子的大小
      percentage:使用百分比 手动的校正图片在盒子中的大小
       
       
      7.渐变属性
      linear-gradient:(方向,color1,color2)
      to top :方向
      red:第1个颜色
      black:第2个颜色
      IE浏览器是Trident内核,加前缀:-ms-
      Chrome浏览器是Webkit内核,加前缀:-webkit-
      Safari浏览器是Webkit内核,加前缀:-webkit-
      Opera浏览器是Blink内核,加前缀:-o-
      Firefox浏览器是Mozilla内核,加前缀:-moz-

    Span

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>span标签</title>
      <!--span标签
      想让某些文字凸显出来
      -->
      <style type="text/css">
      div:first-child span{
      color: red;
      }
       
      div:last-child span{
      color: green;
      }
      /*同时设置body中的子元素span的风格 粗细 大小 类型*/
      body>span{
      font: oblique bold 50px "楷体";
      color: red;
      }
       
      </style>
       
       
       
      </head>
      <body>
      <div><span>今天</span>是个好日子!</div>
      <div><span>明天</span>也是个好日子!</div>
      <span>a</span>bcdefg
      </body>
      </html>

    字体样式

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>字体样式</title>
       
      <style type="text/css">
       
      div{
      /*01.设置字体的类型*/
      font-family:"楷体" ;
      /*02.设置字体的风格*/
      font-style: italic;
      /*03.设置字体的大小 可以设置数值*/
      font-size:small;
      /*04.设置字体的粗细 可以设置数值*/
      font-weight: bold;
      }
      /* 简写方式==》同时设置 字体的 风格,粗细,大小 ,类型 顺序不能发生变化*/
      span{
      font:italic bolder 60px "楷体";
      }
      </style>
      </head>
      <body>
       
      <div><span>今天</span>是个好日子!</div>
      <div><span>明天</span>也是个好日子!</div>
      </body>
      </html>

    display

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>display属性</title>
      <!-- 实现 块元素和 内联元素的相互转换 -->
       
      <!-- 需求:
      01.设置块元素2和3 在一行显示
      02.设置块元素2和3 的边框和宽度 高度 ==>因为已经变成了内联元素 所以宽度 高度 无效
      03.我们想块元素2和3 在一行显示 但是 还能设置 宽度 高度 ???display: inline-block;
      04.把内联元素3 变成块元素 并且设置 宽度 高度
      -->
      <style type="text/css">
      div:nth-of-type(2),div:nth-of-type(3){
      /* display: inline; 内联元素*/
      display: inline-block; /* 行内块元素*/
      border: 1px solid red;
      height: 50px;
      50px;
      }
      span:nth-child(3){
      border: 1px solid red;
      display:block;/*块元素*/
      height: 50px;
      50px;
      }
       
      </style>
       
      </head>
      <body>
       
      <span>内联元素1</span>
      <span>内联元素2</span>
      <span>内联元素3</span>
       
      <div>块元素1</div>
      <div>块元素2</div>
      <div>块元素3</div>
       
       
       
      </body>
      </html>

    文本样式

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>文本样式</title>
       
      <style type="text/css">
      /* 01.设置文本的颜色
      RGB: red green blue
      rgb(red ,green,blue) 每个颜色的数值范围是0-255
      rgba(50,100,50,0.2) 最后一个参数 设置透明度 alpha 取值是0-1
      16进制的颜色码 #020202
      前两位代表R的分量
      中间两位代表G的分量
      后两位代表B的分量
       
       
      02.设置文本的对齐方式
      text-align center right left
       
      03.设置文本的垂直居中
      我们设置的line-height的值要和 盒子的 height属性值一致!
       
      04.文本的装饰
      text-decoration: line-through; 删除线
      text-decoration: underline; 下划线
      text-decoration: overline; 上划线
      05.文本的阴影
      text-shadow:red 2px 3px 1px ;
      red:阴影的颜色
      2px:x轴的位移
      3px:y轴的位移
      1px:阴影的模糊范围 值越小 看到的文本越清晰
      */
      div{
      /*color: rgb(50,100,50);只是设置文本颜色*/
      color: rgba(50,100,50,0.8); /*设置颜色的同时设置透明度*/
      text-align: left;/*水平居中方式*/
      text-indent: 2em;/*首行缩进*/
      border: 1px solid red;
      height: 100px;
      line-height:100px ; /*行高*/
      text-decoration: underline;
      text-shadow:red 2px 2px 1px ;/*文本的阴影*/
      }
       
      </style>
       
       
      </head>
      <body>
      <div>现价 500</div>
      <div>原价 900</div>
      </body>
      </html>

    超链接伪类

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>超链接伪类</title>
      <!--
      a:link 我们还没有访问超链接时的样式
      a:visited 访问之后超链接的样式
      a:hover 鼠标悬停在超链接上的样式
      a:active 鼠标点击未释放
      顺序一定不能有误!
      -->
       
       
      <style type="text/css">
      a:link{
      color: red;
      }
      a:visited{
      color: greenyellow;
      }
      a:hover{
      color: deeppink;
      }
      a:active{
      color: yellow;
      }
       
      div[id="haha2"]:hover{
      color: red;
      text-shadow: pink 2px 2px 1px;
      }
       
       
      span:hover{
      background: red;
      }
       
      </style>
       
      </head>
      <body>
       
      <span>haha</span>
      <a href="#">大家辛苦了!</a>
       
      <div id="haha">哈哈</div>
      <div id="haha1">哈哈1</div>
      <div id="haha2">哈哈2</div>
      </body>
      </html>

    列表样式

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>列表样式</title>
       
      <style type="text/css">
      /*01.去掉列表前面实心圆点
      list-style-type: none;
      list-style-type:设置前面默认的样式
       
      02.把默认的小圆点换成图片
      list-style-image: url("../images/a.jpg");
       
      03.设置li和图标的关系
      li是否包含前面的小图标
      */
      li{
      list-style-position: inside;
      /* list-style-image: url("../images/a.jpg");
      list-style-type: disc;*/
      }
      </style>
      </head>
      <body>
      <ul>
      <li>第1项</li>
      <li>第2项</li>
      <li>第3项</li>
      <li>第4项</li>
      </ul>
      </body>
      </html>

    背景样式

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>背景样式</title>
       
      <style type="text/css">
       
      div{
      border: 1px solid red;
      height: 200px;
      200px;
      background-color: aqua; /* 01.给div增加背景颜色*/
      background-image: url("../images/b.png"); /* 02.给div增加背景图片 图片会把颜色覆盖,其实颜色在图片后面*/
      background-repeat: no-repeat;/*03.设置图片的填充方式*/
      /* background-position: 20px 10px;04.设置图片定位 设置size时 需要 注释*/
      /* background:color image position repeat ; 简写的规范*/
      /*
      background-size:contain;
      background-size:背景图片的尺寸
      auto:默认值,使用图片的大小
      cover:让整个图片正好填充整个盒子
      contain:让图片自动的方法或者缩小 适应盒子的大小
      percentage:使用百分比 手动的校正图片在盒子中的大小 100%;
      */
      }
       
       
      </style>
       
       
      </head>
      <body>
      <div></div>
       
       
      </body>
      </html>

    渐变属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>渐变属性</title>
      <!--
      01.线性渐变
      颜色按照从上到下或者从左到右 等顺序发生的变化
      02.径向渐变
      不是按照直线的顺序! 圆形,椭圆!从一个点向所有的方向混合!
      -->
       
      <style type="text/css">
      div{
      border: 1px solid red;
      height: 200px;
      200px;
      background: linear-gradient(to left top,red,green);
      /* to top :方向
      red:第1个颜色
      black:第2个颜色
      IE浏览器是Trident内核,加前缀:-ms-
      Chrome浏览器是Webkit内核,加前缀:-webkit-
      Safari浏览器是Webkit内核,加前缀:-webkit-
      Opera浏览器是Blink内核,加前缀:-o-
      Firefox浏览器是Mozilla内核,加前缀:-moz-
      */
      }
       
      </style>
       
       
      </head>
      <body>
       
      <div></div>
       
      </body>
      </html>

    文本属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title></title>
       
      <style type="text/css">
      div{
      height: 50px;
      border: 1px solid red;
      line-height: 50px;
      text-align: center;
      }
       
      </style>
      </head>
      <body>
       
      <div>我想垂直居中</div>
       
      </body>
      </html>

    4、浮动

    网页会根据块元素或者内联元素的特性,按照从左至右,从上到下的方式自然排序!
      这种元素自然排列的方式,我们称之为====》标准文档流!
       
      浮动 float
      左浮动
      右浮动
      浮动之后 会脱离 标准文档流
       
      溢出 overflow
      overflow:
      01.visible:默认显示
      02.scroll:以滚动条的形式显示溢出部分
      03.hidden:溢出部分隐藏
      04.auto:自动跳转
       
      我们书写了一个页面,里面有很多块元素,默认排版就是标准文档流!
       
      如果我们想让ul中的li能在一行显示!
      01.display
      02.浮动
       
      只要是元素设置了浮动就会脱离标准文档流!
      如果我们的父元素容不下浮动元素!
      可以选择是否显示溢出的元素!
      使用overflow!
       
      clear 清除浮动
      none 默认
      left 在左侧不允许浮动
      right 在右侧不允许浮动
      both 左右侧都不允许浮动
       
       
       
      防止父级边框塌陷的方式:
      01.给父级盒子设置宽高!
      02.在父级盒子的最后一个位置增加div没有内容
      <div class="clear"></div>
      给这个div增加样式
      .clear{
      border: 1px solid black;
      clear: both;
      }
      03.在父盒子中设置溢出处理
      overflow: hidden;
      04.最终使用的方式 :after伪类
      在父盒子中增加一个class="clear"
      .clear:after{
      display: block;/*在#main div的左后一个位置增加一个块元素*/
      content: ''; /*块元素的内容什么都没有*/
      clear: both; /*清除浮动*/
      }

    网页布局

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>网页布局</title>
      <!-- 网页会根据块元素或者内联元素的特性,按照从左至右,从上到下的方式自然排序!
      这种元素自然排列的方式,我们称之为====》标准文档流!-->
      </head>
      <body>
      <span>11111</span>
      <span>22222</span>
      <span>33333</span>
      <div>33333</div>
      <span>11111</span>
      <span>22222</span>
      <span>33333</span>
      </body>
      </html>

    浮动属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>浮动属性</title>
      <style type="text/css">
      #main{/*大盒子*/
      height: 300px;
      300px;
      border: 1px solid red;
      /*针对于浮动之后 内容溢出的处理
      overflow:
      01.visible:默认显示
      02.scroll:以滚动条的形式显示溢出部分
      03.hidden:溢出部分隐藏
      04.auto:自动调整
      */
      overflow: scroll;
      }
       
      #a,#b,#c{ /*三个小盒子*/
      height: 150px;
      110px;
      border: 1px solid red;
      margin: 2px;
      /*浮动之后 会脱离 标准文档流*/
      float: right;
      }
       
      </style>
       
      </head>
      <body>
      <div id="main">
      <div id="a">这是第1个盒子</div>
      <div id="b">这是第2个盒子</div>
      <div id="c">这是第3个盒子</div>
      </div>
      </body>
      </html>

    清除浮动属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>浮动属性</title>
      <style type="text/css">
      #main{/*大盒子*/
      height: 300px;
      300px;
      border: 1px solid red;
      }
       
      #a,#b,#c{ /*三个小盒子*/
      height: 50px;
      70px;
      border: 1px solid blue;
      margin: 2px;
      float: left;
      }/*第三个盒子清除左浮动
      #c{
      clear: left;
      }*/
      /*清除第二盒子的左浮动*/
      #b{
      clear: left;
      }
       
      </style>
       
      </head>
      <body>
      <div id="main">
      <div id="a">这是第1个盒子</div>
      <div id="b">这是第2个盒子</div>
      <div id="c">这是第3个盒子</div>
      </div>
      </body>
      </html>

    防止父级边框塌陷 

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>防止父级边框塌陷</title>
       
      <style type="text/css">
      #main{
      border: 1px solid red;
      /*01.给父级div设置高度
      height: 500px;*/
      /* 03. 设置溢出处理 overflow: hidden;*/
      }
       
      #a,#b,#c{ /*三个小盒子*/
      border: 1px solid red;
      float: left; /* 01.因为 父级div没有设置高度和宽度! 子的div右浮动了?脱离文档流 位置没了*/
      }
       
      /*02. 增加空div 防止父级边框塌陷
      .clear{
      border: 1px solid black;
      clear: both;
      }*/
       
      /*04.推荐使用 after伪类 */
      .clear:after{
      display: block;/*在#main div的左后一个位置增加一个块元素*/
      content: ''; /*块元素的内容什么都没有*/
      clear: both; /*清除浮动*/
      }
      </style>
      </head>
      <body>
      <div id="main" class="clear">
      <div id="a"><img src="../images/b.png"></div>
      <div id="b"><img src="../images/b.png"></div>
      <div id="c"><img src="../images/b.png"></div>
      <!--02. 增加空div 防止父级边框塌陷 <div class="clear"></div> -->
      </div>
      </body>
      </html>

    5、网页动画

    css变形:transform
     平移   translate(x,y)
            translateX
            translateY
     transform:translate(100px,0)
    
     旋转   rotate(deg) 旋转多少度,不会改变元素的形状
    
     缩放   scale(x,y) 如果只书写了一个值,默认第2个参数等于第一个值
            scaleX
            scaleY
    
     倾斜   skew(x,y) deg 会改变元素的形状
            skewX
            skewY
    
    
     如果说我们想给一个元素同时设置多个 变形属性!
       transform: 倾斜  缩放  旋转  ;
        多个属性之间使用空格隔开!
    
    
    我们上面的变形属性都是一瞬间就完成了!没有看到中间过程!
    
    如果想看到!使用css过渡属性  transition==>是一个动画的转换过程!
    
    css过渡属性:
    transition:property  duration  timing-function  delay
    
    property:过渡或者动画的css属性,例如color,width,如果想都设置使用all
    duration:完成过渡效果需要的时间 s为单位
    timing-function: 过渡函数
       ease:默认值  速度由快到慢
       linear:匀速
       ease-in:越来越快
       ease-out:越来越慢
       ease-in-out:先加速后减速
    delay:过渡开始的延迟时间  s为单位
    
    
    CSS动画
    
    01.创建关键帧
    @keyframes  名称(animates){
        0%{
          css属性:属性值;
        }
        50%{
          css属性:属性值;
        }
        100%{
          css属性:属性值;
        }
    }
    02.怎么调用关键帧
    animation:关键帧的名称  3s linear 1s;

    CSS3变形

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>css3变形</title>
       
      <style type="text/css">
      *{
      margin: 0px;
      padding: 0px;
      }
      li{
      list-style: none;
      float: left;
      margin-left: 15px;
      background: rgba(230,130,0,0.5);
      border-radius: 5px;/*圆角属性*/
      }
       
      li:hover{
      /*transform 变形属性*/
      /* transform:translate(4px,5px) ;平移*/
      transform: rotate(90deg) scale(1.5);/* 旋转的同时放大1.5倍*/
      /* transform: skewY(20deg);
      transform: skewX(20deg); 倾斜属性*/
      }
       
      a{
      text-decoration: none;
      }
       
      a:hover{
      background: rgba(150,230,100,0.5);
      border-radius: 5px;
      }
       
       
       
      </style>
      </head>
      <body>
      <ul>
      <li><a href="#">服装城</a></li>
      <li><a href="#">美妆馆</a></li>
      <li><a href="#">超市</a></li>
      <li><a href="#">全球购</a></li>
      <li><a href="#">闪购</a></li>
      <li><a href="#">团购</a></li>
      <li><a href="#">拍卖</a></li>
      <li><a href="#">金融</a></li>
      </ul>
      </body>
      </html>

    CSS3过渡

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>CSS3过渡</title>
       
      <style type="text/css">
      *{
      margin: 0px;
      padding: 0px;
      }
       
       
      div{
      100px;
      height: 100px;
      background-color: pink;
      text-align: center;
      line-height: 100px;
      transition:all 3s linear 2s;
      /**
      all: transition-property
      3s : transition-duration
      linear: transition-timing-function
      2s: transition-delay
      */
      }
       
      div:hover{
      background-color: red;
      font-size: 25px;
      transform: rotate(90deg) scale(1.5); /*旋转的同时放大1.5倍 这两个效果 一次性到位*/
      /*transition属性的值:
      01.transition-property:过渡的css属性的名称(color,font-size,background)等!
      想给多个属性设置过渡效果,使用all!
      02.transition-duration:过渡效果需要的时间!
      03.transition-timing-function:设置速度曲线!
      ease:慢速开始,之后变快!
      linear:匀速!
      ease-in:慢速开始!
      ease-out:慢速结束!
      04.transition-delay:过度效果开始前需要等待的时间!默认 0s!
      */
      }
       
       
       
      </style>
      </head>
      <body>
      <div>
      大家辛苦了!
      </div>
      </body>
      </html>

    CSS3动画

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>CSS3动画</title>
      <style type="text/css">
      div{
      height: 50px;
      50px;
      background: pink;
      /*调用动画*/
      animation:animates 5s linear 1s 2;
      }
      /*创建 关键帧*/
      @keyframes animates{
      0%{
      0px;
      transform: translate(50px,0);
      }
      25%{
      25px;
      height: 25px;
      transform: translate(150px,0) rotate(90deg);
      }
      50%{
      50px;
      height: 50px;
      transform: translate(300px,0) rotate(180deg);
      }
      75%{
      25px;
      height: 25px;
      transform: translate(150px,0) rotate(270deg);
      }
      100%{
      50px;
      height: 50px;
      transform: translate(50px,0) rotate(360deg);
      }
      }
       
       
       
      </style>
       
       
      </head>
      <body>
      <div></div>
      </body>
      </html>

    6、表单

    常见的表单元素:
       文本框        type="text"    默认值
       密码框        type="password"
       单选按钮      type="radio"
                <input type="radio" name="sex" value="男">男
                <input type="radio" name="sex" value="女">女<br/>
              name属性值必须一致!否则会都能选择!
             value属性值必须设置!否则后台无法获取属性值!
             后台只能获取一个值!
    
       复选框        type="checkbox"
         name属性值必须一致!否则会都能选择!
         value属性值必须设置!否则后台无法获取属性值!
         后台获取时,需要做非空验证!
    
         单选按钮和 复选框 默认被选中使用checked
    
       列表框        type="select"
           默认被选中,在option中使用selected
    
    
       按钮          type="button"  普通按钮   只是一个按钮 后面学了js可以绑定事件
                     type="reset"   重置按钮   把表单中所有的元素内容变为初始值
                     type="submit"  提交按钮   会把表单中的所有内容提交到服务器
    
       多行文本域     type="textarea"
       邮箱          type="email"
       数字          type="number"
       滑块          type="range"
       搜索          type="search"

    登陆页面

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>登录页面</title>
      <!--
      form表单的意义:
      01.获取用户的输入 ==》收集数据
      02.将用户的输入发送到服务器===》与服务器产生交互
       
       
      action:我们获取完用户的输入之后 提交到的服务器地址!
      #:代表当前页面!
      也可以不书写!
       
      method:我们提交的方式!
      可以理解成 我们
      普通人 说话 get
     
      聋哑人打手语 post
      get和post的区别 安不安全 相对而言
       
      01.get会在url地址栏中显示我们输入的数据
      post会在请求头中显示用户的输入
      F12之后选择 network 向下拉到页面的最底部 有一个 form data
      这里有post请求的数据!
       
      02.http协议对get和post请求都没有长度限制
      如果对url的长度进行限制只有两种原因:
      001.浏览器自身的设置
      002.服务器的设置
       
       
      input标签中的常用属性:
      name:可以理解成标记! 用于服务器获取我们这个表单中的元素值! 必须的!
      value: 用户在页面中输入的值! 我们一般可以不写!
      maxlength:文本框的最大字节数量
      size:表单元素的初始长度!
       
      比如说:<input type="text" name="userName" value="">
      那么再我们点击注册按钮的时候,
      会提交到服务器的数据是 userName="value的属性值"
      服务器根据 name的属性值,获取value的属性值!
      placeholder:占位符,提示语!不是value的值! 只有在value属性值为空的时候显示!
      -->
      </head>
      <body>
       
      <form action="#" method="post">
      昵称: <input type="text" name="userName" size="100" placeholder="请输入用户名" maxlength="50"><br/>
      密码: <input type="password" name="pwd"><br/>
      性别:<input type="radio" name="sex" value="男" checked>男
      <input type="radio" name="sex" value="女">女<br/>
      爱好:<input type="checkbox" name="love" value="足球" checked>足球
      <input type="checkbox" name="love" value="乒乓球">乒乓球
      <input type="checkbox" name="love" value="羽毛球">羽毛球
      <input type="checkbox" name="love" value="篮球">篮球<br/>
       
      民族:<select name="nation" size="1">
      <option value="" >请选择</option>
      <option value="汉族" selected>汉族</option>
      <option value="满族">满族</option>
      <option value="维吾尔族" >维吾尔族</option>
      </select><br/>
       
      协议:<textarea name="protocol" rows="20" cols="20">
      xxx xxx
      xxx xxx
      xxx xxx
      </textarea>
      <br/>
      文件上传: <input type="file">
      选择颜色: <input type="color">
      日期: <input type="date">
      时间: <input type="time">
      邮箱:<input type="email" name="email"><br/>
      数字:<input type="number" name="num" max="50" min="1"><br/>
      滑块:<input type="range" max="200" value="150" step="50"><br/>
      搜索:<input type="search" name="search"><br/>
      QQ只读:<input name="qq" value="501804292" readonly><br/>
      隐藏域: <input type="hidden" name="hidden" value="a"><br/>
       
       
      <label> 密码: <input type="password" name="pwd"></label>
      <label for="pwd"> 密码: <input type="password" name="pwd" id="pwd"></label>
      <br/>
       
      正则验证手机号:<input name="phoneNum" required pattern="^1[34578]d{9}$">
       
      <input name="userName" required placeholder="必填项">
      <input type="button" value="普通">
      <input type="reset" value="重置">
      <input type="submit" value="注册" disabled> <!-- disabled 按钮禁用-->
       
      <button type="submit" >button</button> <!-- 默认就是提交按钮,没有value属性-->
       
      </form>
       
       
      </body>
      </html>

    7、初识CSS

    CSS(Cascading Style Sheet)  级联(层叠)样式表!   网页样式的设计!
    
     96年 css1.0
     04年 css2.1
     10年 css3.0
    
    优势:
      01.页面和样式的分离
      02.便于我们修改和使用
      03.多个页面的应用,css样式可以复用
      04.层叠,一个元素可以多次设置样式!
      05.页面压缩
    
     设置HTML文件样式的计算机语言!
     可以对网页中的文字,颜色,字体大小,边框,背景,高度,网页定位等样式的设定!
    
     例子:
       之前设计表格的时候! 每一个单元格都是td!
       我们想让每个td的内容都居中显示??? 我们怎么做??
       在每个td上 都加上align="center"!   但是麻烦!
    
     现在   我们可以通过 css的选择器 来统一给整个页面中的所有td设置样式!
      怎么设置呢??
    
      td{    //页面中所有的td内容 水平居中!
         text-align:center;
        }
    
    CSS的语法规则:
      选择器{    //开发者模式   便于阅读
              属性1:值1;
              属性2:值2;
              属性3:值3;   //最后一个;可以省略不写!但是不建议省略!
             }
    
      选择器{属性1:值1;属性2:值2;属性3:值3;} //生产者模式   减少内存
    
    HTML中引入CSS样式的3种方式:
    
     例子:
         假如我们是一个包工头,现在需要对我们已经建好的楼房进行装修!
    
         两种选择:
           01.自己装修             == 》行内样式    <a href="#" style="color:red">百度</a>
           02.别人装修
               001.自己人装修      == 》内部样式
               002.其他人装修      == 》外部样式
    
      如果说自己人和其他人以及你自己都想干装修!
      肯定是自己说了算!!!!
    
      css样式的优先级:
      行内样式  >  内部样式 >  外部样式
    
    
      导入外部样式的两种方式:
          01.链接式   <link  rel="stylesheet"  href="外部文件位置"  type="text/css">
          02.导入式
              <style  type="text/css">
                   @import "外部文件位置";
              </style>
    
     链接式的导入式的区别:
      01.链接式的link属性XHTML     @import 属于css2.1
      02.链接式优先加载css样式,再加载页面中的html内容!
      03.@import先加载页面中的html内容,再加载css样式!
      04.@import存在浏览器兼容性问题!
    
    
     css中最重要就是 选择器:
    
     选择器:
      1.基本选择器
          01.标签选择器  p{}   a{}  div{}
          02.类选择器   .a 获取页面中class属性值是a的元素   可以有N个
          <span class="a">第一个span标签</span>
          <span class="a">第二个span标签 </span>
          <span class="a">第三个span标签</span>
          <div class="a">第1个div标签</span>
          <div class="a">第2个div标签</span>
          03.id选择器  #a  获取页面中id属性值是a的元素  只能有1个
          <div  id="a"></div>
    
      2.高级选择器
          01.交集选择器
          02.并集选择器
          03.层次选择器
             01.后代选择器
             02.子选择器
             03.相邻兄弟选择器    之后的一个兄弟元素
             04.通用兄弟选择器    之后的所有兄弟元素
    
          04.结构伪类选择器   *****
          05.属性选择器  [属性=属性值]

    标签选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>标签选择器</title>
      <!-- 内部样式设置 style标签应该写在head标签中
      <style type="text/css">
      h1{ /* h1 页面中所有的h1标签*/
      color: red; /*color 属性 red 属性值*/
      font-size: 50px;
      }
      </style> 我们css的优势之一是 网页和样式的分离-->
       
      <!-- 链接式
      <link rel="stylesheet" type="text/css" href="css/first.css">-->
       
      <!--导入式-->
      <style type="text/css">
      @import "css/first.css";
      </style>
       
      </head>
      <body>
      <!--需求:让页面中所有的h1标签 字体颜色为 红色 字体大小50px-->
      <h1 style="color: pink">这是1级标题</h1> <!--验证优先级-->
      <h1>这是1级标题</h1>
      <h1>这是1级标题</h1>
       
       
       
       
      </body>
      </html>

    类选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>类选择器</title>
      <!--需求: 让页面中的class属性值为box的盒子颜色变成红色-->
      <style type="text/css">
      .box{ /*.box 类选择器 选取页面中的class属性值为box的元素*/
      color:red;
      }
       
      /* 我想让2 3 盒子也有这个样式*/
      .boxSize{
      font-size: 52px;
      }
       
      </style>
      </head>
      <body>
       
      <div class="boxSize">这是第1个盒子</div>
      <!--说明这个div同时具有两个class样式-->
      <div class="box boxSize">这是第2个盒子</div>
      <div class="box boxSize">这是第3个盒子</div>
      <div class="box">这是第4个盒子</div>
       
      </body>
      </html>

    id选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>id选择器</title>
      <!--在一个页面中id属性值相同的而只能有一个! 页面id唯一!-->
       
      <style type="text/css">
      /*给id="box2"的元素设置 颜色为 红色*/
      #box2{
      color: red;
      }
      /*给id="box3"的元素设置 字体大小 50px*/
      #box3{
      font-size: 50px;
      }
       
      </style>
      </head>
      <body>
      <div>这是第1个盒子</div>
      <div id="box2">这是第2个盒子</div>
      <div id="box3">这是第3个盒子</div>
      <div>这是第4个盒子</div>
      </body>
      </html>

    选择器的优先级

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>选择器的优先级</title>
      <!--需求:
      分别使用 标签,类和id三种选择器 设置div的样式
      -->
      <style type="text/css">
      div{
      color: red;
      }
      .myDiv{
      color: black;
      }
      #name{
      color: pink; /* 页面显示的是 粉色*/
      }
      /*
      id选择器 > 类选择器 > 标签选择器
      */
       
      </style>
       
      </head>
      <body>
      <div id="name" class="myDiv">开始验证优先级</div>
       
      </body>
      </html>
     

    元素样式的继承性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>元素的继承性</title>
      <!-- 需求 :
      给页面中id为first的div设置样式
      给页面中id为second的div设置样式
       
      -->
       
      <style type="text/css">
      #first{
      color: red;
      }
       
      #second{
      color: pink;
      }
      #third{
      color: greenyellow;
      }
       
      </style>
      </head>
      <body>
      <div id="first"> 第一个
      <div id="second"> 第二个
      <div id="third">
      第三个
      </div>
      </div>
      </div>
      </body>
      </html>

    并集选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>并集选择器</title>
      <!-- 需求
      给id="mySpan1" ,class="mySpan2" 标签是div的所有元素
      设置相同的样式!
      -->
      <style type="text/css">
      /* 多个选择器都具有的样式. 每个选择器之间使用,隔开
      多个选择器没有顺序
      */
      #mySpan1,.mySpan2,div{
      color:red;
      }
      </style>
       
       
       
      </head>
      <body>
      <div>第1个盒子</div>
      <div>第2个盒子</div>
      <span id="mySpan1">这是第1个span</span>
      <span class="mySpan2">这是第2个span</span>
      </body>
      </html>

    交集选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>交集选择器</title>
      <!-- 交集选择器的规则
      01:标签选择器+id选择器
      02:标签选择器+类选择器
      03.多个选择器直接连着写,不需要有符号隔开
      必须标签选择器在前!-->
       
       
      <style type="text/css">
      /* 需求:
      页面中 class="mySpan2" 并且 标签是div的元素 设置样式
      */
      div.mySpan2{
      color: red;
      }
       
       
       
       
       
      </style>
       
      </head>
      <body>
      <div>第1个盒子</div>
       
      <div class="mySpan2">第2个盒子</div>
       
      <span id="mySpan1">这是第1个span</span>
       
      <span class="mySpan2">这是第2个span</span>
      </body>
      </html>

    后代选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>后代选择器</title>
      <!-- 需求:
      改变body中 所有span元素的样式
      后代选择器 中间使用空格隔开
      包含子和孙子等所有的子孙节点
      -->
      <style type="text/css">
      body span{
      color: red;
      }
      </style>
       
       
       
      </head>
      <body>
       
      <div> 儿子div1
      <span>相对于body来说是孙子span1</span>
      </div>
       
      <div>儿子div2
      <span>相对于body来说是孙子span2</span>
      </div>
       
       
      <span>相对于body来说是儿子span1</span>
      <span>相对于body来说是儿子span2</span>
       
       
      </body>
      </html>

    子选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>子选择器</title>
      <!-- 需求:
      改变body中 所有子元素是span的样式
      只包含子节点
      -->
      <style type="text/css">
      body>span{
      color: red;
      }
      /*选择body中子元素是div的节点,如果div中还有其他的节点,也会随之改变*/
      body>div{
      color: red;
      }
      </style>
       
       
       
      </head>
      <body>
       
      <div> 儿子div1
      <span>相对于body来说是孙子span1</span>
      </div>
       
      <div>儿子div2
      <span>相对于body来说是孙子span2</span>
      </div>
       
       
      <span>相对于body来说是儿子span1</span>
      <span>相对于body来说是儿子span2</span>
       
       
      </body>
      </html>

    相邻兄弟选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>相邻兄弟节点选择器</title>
      <!-- 需求:
      改变id=""second"的div元素后面第一个兄弟节点的样式
      -->
      <style type="text/css">
      #second+span{
      color: red;
      }
      </style>
       
       
       
      </head>
      <body>
       
      <div> 儿子div1
      <span>相对于body来说是孙子span1</span>
      </div>
       
      <div id="second">儿子div2
      <span>相对于body来说是孙子span2</span>
      </div>
       
       
      <span>相对于body来说是儿子span1</span>
      <span>相对于body来说是儿子span2</span>
       
       
      </body>
      </html>

    通用兄弟选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>通用兄弟选择器</title>
      <!-- 需求:
      改变id=""second"的div元素后面所有兄弟节点的样式
      -->
      <style type="text/css">
      #second~span{
      color: red;
      }
      </style>
       
       
       
      </head>
      <body>
       
      <div> 儿子div1
      <span>相对于body来说是孙子span1</span>
      </div>
       
      <div id="second">儿子div2
      <span>相对于body来说是孙子span2</span>
      </div>
       
       
      <span>相对于body来说是儿子span1</span>
      <span>相对于body来说是儿子span2</span>
      <span>相对于body来说是儿子span3</span>
      <span>相对于body来说是儿子span4</span>
       
       
      </body>
      </html>

    结构伪类选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>结构伪类选择器</title>
      <!-- 不需要在节点上新增额外的id或者class属性 ,需要我们知道节点的位置(下标)-->
      <style type="text/css">
      /*01.改变ul中第一个li的样式
      ul li:first-child{
      color: red;
      }*/
      /*02.改变ul中最后一个li的样式
      ul li:last-child{
      color: red;
      }*/
       
      /*03.改变第3个div的样式
      body中如果第3个元素是div就改变样式,
      否则都没有效果! 着重于顺序!
      body div:nth-child(3){
      color: red;
      }*/
      /*04.改变页面中第2个span元素的样式
      nth-of-type: 先查询类型 再看顺序
      body span:nth-of-type(2){
      color: red;
      }
       
      body div:nth-of-type(3){
      color: red;
      }
      */
      </style>
       
       
      </head>
      <body>
       
      <div>div1</div>
      <div>div2</div>
      <span>span1</span>
      <div>div3</div>
      <span>span2</span>
       
      <ul>
      <li>第1个列表的第1项</li>
      <li>第1个列表的第2项</li>
      <li>第1个列表的第3项</li>
      <li>第1个列表的第4项</li>
      </ul>
      <ul>
      <li>第2个列表的第1项</li>
      <li>第2个列表的第2项</li>
      <li>第2个列表的第3项</li>
      <li>第2个列表的第4项</li>
      </ul>
      </body>
      </html>

    属性选择器

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>属性选择器</title>
       
      <style type="text/css">
      /* 01.改变元素id="first"的样式
      div[id="first"]{
      color: red;
      }*/
      /*02.改变所有id属性元素
      div[id]{
      color: red;
      }*/
      /*03.改变所有id属性值以h开头元素
      div[id^="h"]{
      color: red;
      }*/
      /*04.改变所有id属性值以a结尾元素
      div[id$="a"]{
      color: red;
      }*/
      /*04.改变所有id属性值包含i的元素
      div[id*="i"]{
      color: red;
      }*/
       
       
      </style>
       
       
      </head>
      <body>
      <div id="first">第1个</div>
      <div id="haha">第2个</div>
      <div id="heihei">第3个</div>
      <div>第4个</div>
      <div style="color: red;font-size: 50px">第5个</div>
      </body>
      </html>

    8、盒子模型

    盒子模型     div+css3
    
    
    边框  border
    border:1px  solid red;
    
    
    border-color:边框颜色  上右下左四个边
    border-top-color:上边框颜色
    border-right-color:右边框颜色
    border-bottom-color:下边框颜色
    border-left-color:左边框颜色
    
    
    border-边框粗细  上右下左四个边  thin  medium  thick 可以是像素
    border-top-width
    border-right-width
    border-bottom-width
    border-left-width
    
    border-5px 10px ; 上下为5px  左右为10px
    border-5px 10px  20px ;  上为5px  下为20px  左右为10px
    
    border-style:边框样式
    dashed  常用
    solid   常用
    
    none
    hidden
    dotted
    double
    
    简写:
    border:1px  solid red; 规范写法
           粗细  样式  颜色!
    
    
    margin:外边距
    margin-top
    margin-right
    margin-bottom
    margin-left
    
    margin:5px 10px;上下外边距为5px  左右外边距为10px
    
    
    margin:0px auto; 网页中的盒子居中显示!
    前提:
      01.必须是块元素
      02.固定宽度
    
    
    padding:内边距
    padding-top
    padding-right
    padding-bottom
    padding-left
    
    padding:5px 10px;上下内边距为5px  左右内边距为10px
    
    盒子模型总尺寸=内容宽度+padding+border+margin
    
    
    box-sizing:设置盒子模型的大小规则
    
    content-box:盒子的总尺寸
    border-box:盒子的宽度或者高度 等于  内容的宽度或者高度
    inherit:继承父盒子
    
    
    圆角属性
    border-radius:左上 右上  右下 左下
    
    盒子阴影
     box-shadow:inset 10px 10px 1px pink;
    
    inset:阴影类型   内 外
    x轴
    y轴
    阴影半径
    阴影颜色

    边框border

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>边框border</title>
       
      <!--
      border的常用属性:
      01. 设置边框的颜色 border-color
      02. 设置边框的粗细 border-width
      03. 设置边框的样式 border-style
       
       
      -->
       
      <style type="text/css">
      /*设置盒子的宽高*/
      div{
      height: 50px;
      50px;
      /* 设置盒子的上边框
      border-top-color: red;
      border-top- 1px;
      border-top-style: dashed;
      */
      /*同时设置四个边框
      border-color: red;
      border- 2px;
      border-style: dashed;
      */
      /*简写方式 虽然没有顺序 但是我们推荐使用 先 粗细 再 样式 最后 颜色!*/
      border: 1px solid red;
      }
      </style>
       
      </head>
      <body>
       
      <div></div>
      </body>
      </html>

    外边距margin

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>外边距margin</title>
       
      <style type="text/css">
      *{ /*去掉网页中所有元素的内外边距*/
      margin: 0px;
      padding: 0px;
      }
       
       
      div{
      /*设置盒子的宽高*/
      height: 150px;
      150px;
      /*设置盒子的边框*/
      border: 1px solid red;
      /*设置外边距 元素以左上角为准
      margin-top: 50px;
      margin-left: 50px;
      margin-right: 50px;
      margin-bottom: 50px;*/
      /*设置上下20px 左右50px
      设置边距的时候 顺序 是 上右下左!
      margin: 20px 50px;*/
      margin: 20px;
      }
       
      </style>
       
      </head>
      <body>
      <div><img src="../images/b.png" alt="这是一个图片"></div>
      <div><img src="../images/b.png" alt="这是一个图片"></div>
      </body>
      </html>

    内边距padding

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>内边距padding</title>
       
      <style type="text/css">
      *{ /*去掉网页中所有元素的内外边距*/
      margin: 0px;
      padding: 0px;
      }
      /*设置大盒子*/
      #bigBox{
      /*设置盒子的宽高*/
      height: 200px;
      200px;
      /*设置盒子的边框*/
      border: 1px solid red;
      /*padding-left:5px ;设置小盒子距离大盒子的左内边距*/
      }
      /*设置小盒子*/
      #image{
      /*设置盒子的宽高*/
      height: 150px;
      150px;
      /*设置盒子的边框*/
      border: 1px dashed pink;
      margin-left: 5px;
      }
       
      </style>
       
      </head>
      <body>
      <div id="bigBox"> <!--大盒子-->
      <div id="image"> <!--小盒子-->
      <img src="../images/b.png" alt="这是一个图片"><!--内容-->
      </div>
      </div>
      </body>
      </html>

    网页居中

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>网页居中</title>
      <!--
      网页居中的必要条件:
      01.必须是一个块元素
      02.必须设置固定宽度
      -->
      <style type="text/css">
      *{ /*去掉网页中所有元素的内外边距*/
      margin: 0px;
      padding: 0px;
      }
      /*设置大盒子*/
      div{
      height: 200px; /*设置盒子的宽高*/
      200px;
      /*设置盒子的边框*/
      border: 1px solid red;
      /*通过外边距设置 居中*/
      margin:0px auto;
      }
       
      </style>
       
      </head>
      <body>
       
      <div> <!--大盒子-->
      </div>
       
      </body>
      </html>

    盒子的尺寸boxsizing

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>盒子的尺寸boxsizing</title>
       
      <style type="text/css">
      *{
      margin: 0px;
      padding: 0px;
      }
      #father{/* 大盒子*/
      100px;
      height: 100px;
      border: 1px solid red;
      box-sizing: border-box;
      }
       
      #son{/* 小盒子*/
      40px;
      height: 40px;
      border: 1px solid yellowgreen;
      /* box-sizing: content-box;默认值。显示盒子总尺寸*/
      /* box-sizing: border-box; 盒子的高度和宽度就是内容的高度和宽度*/
      /*如果大盒子 设置了 盒子的尺寸 我们小盒子 可以适应大盒子尺寸*/
      box-sizing: inherit;
      }
       
       
      </style>
      </head>
      <body>
      <div id="father">
      <div id="son"></div>
      </div>
      </body>
      </html>

    圆角属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>圆角属性</title>
       
      <style type="text/css">
      div{
      height: 50px;
      50px;
      border: 1px solid red;
       
      border-radius: 5px 20px;/* 左上 右下 5px 右上 左下 20px*/
      /*设置圆角属性 简写 默认是 左上 右上 右下 左下 顺时针方向
      border-radius: 5px;*/
      }
       
      </style>
      </head>
      <body>
       
      <div></div>
      </body>
      </html>

    设置半圆

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>设置半圆</title>
      <style type="text/css">
      div{
      background: pink;
      margin: 20px;
      }
      div:nth-of-type(1){
      100px;
      height: 50px;
      border-radius: 50px 50px 0 0;/* 左上和右上*/
      }
       
      div:nth-of-type(2){
      100px;
      height: 50px;
      border-radius: 0 0 50px 50px ;/* 左下和右下*/
      }
      div:nth-of-type(3){
      50px; /*高度和宽度需要调整*/
      height: 100px;
      border-radius:50px 0 0 50px ;/* 左上和左下*/
      }
      div:nth-of-type(4){
      50px;
      height: 100px;
      border-radius: 0 50px 50px 0 ;/* 右上和右下*/
      }
       
       
       
      </style>
       
      </head>
      <body>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      </body>
      </html>

    设置圆形和扇形

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>设置圆形和扇形</title>
      <style type="text/css">
      div{
      background: pink;
      margin: 20px;
      }
      /*设置圆形*/
      div:nth-of-type(1){
      50px;
      height: 50px;
      border-radius: 50px;
      }
       
      div:nth-of-type(2){
      50px;
      height: 50px;
      border-radius: 50px 0 0 0;/* 左上*/
      }
       
      div:nth-of-type(3){
      50px;
      height: 50px;
      border-radius: 0 50px 0 0;/* 右上*/
      }
       
      div:nth-of-type(4){
      50px;
      height: 50px;
      border-radius: 0 0 50px 0;/* 右下*/
      }
       
      div:nth-of-type(5){
      50px;
      height: 50px;
      border-radius: 0 0 0 50px;/* 左下*/
      }
       
       
       
      </style>
       
      </head>
      <body>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      </body>
      </html>

    盒子阴影

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>盒子阴影</title>
      <style type="text/css">
      div{
      height: 50px;
      50px;
      border: 1px solid red;/*
      box-shadow: 10px 10px 1px pink; 外阴影*/
      box-shadow:inset 10px 10px 10px pink; /*内阴影*/
      }
       
      </style>
       
      </head>
      <body>
      <div></div>
      </body>
      </html>

    9、定位

    定位:  position
      1.static 默认值  没有定位
      2.relative 相对定位,参照物是自身原来的位置
          01.  参照物是自身原来的位置
          02.  不会脱离标准文档流,对父级盒子和相邻的盒子不会产生影响
          03.  自身之前的位置会保留
    
      3.absolute 绝对定位,参照物是当前盒子的父级
          01.参照物是当前盒子的父级
          02.父级必须是设置了定位(一般父级都是相对定位)
          03.如果找不到祖先元素,以浏览器为参照物
          04.会脱离标准文档流,
              如果相邻的盒子没有设置定位属性,会产生影响,
              如果相邻的盒子设置定位属性,不会产生影响,
          05.自身之前的位置不会保留
    
      4.fixed    固定定位,参照物是浏览器
    
     顺序离我们最近的是
     fixed > relative  > absolute > static
    
    
    
    z-index:
    
    设置相同层面的元素  堆叠顺序   默认值 是0   值越大  离我们越近

    定位属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>定位属性</title>
      <!--
      position
      01.static :默认,没有定位! 离我们最远
      02.absolute:绝对定位
      001.脱离了标准文档流
      002.位置发生变化之后,位置不会被保留!后续元素会顶替之前的位置
      003.参照离这个设置了定位属性的最近的父级元素!如果没有 就以浏览器为准
      03.relative:相对定位
      001.相对于自身原来的位置
      002.没有脱离标准文档流
      003.位置发生变化之后,位置会被保留
      04.fixed:固定定位
      相对于浏览器
      -->
       
      <style type="text/css">
      *{
      margin: 0px;
      padding: 0px;
      }
       
      div{
      height: 50px;
      50px;
      }
      #box{ /*大盒子*/
      height: 300px;
      300px;
      border: 2px solid red;
      }
       
       
       
      #box div:nth-of-type(1){
      background: red;
      /*绝对定位*/
      position: absolute;
      left: 20px; /* 距离父级元素 左边20px*/
      }
       
      #box div:nth-of-type(2){
      background: orange;
      position:static ;/*默认值*/
      }
       
      #box div:nth-of-type(3){
      background: pink;
      /*相对定位*/
      position: relative;
      bottom:20px;
      }
       
       
       
      #box div:nth-of-type(4){
      background: red;
      /*固定定位*/
      position: fixed;
      left: 30px;
      top: 30px;
      }
       
      #box div:nth-of-type(5){ /*如果两个盒子设置的定位属性相同,默认按照html结构元素顺序 后面会覆盖前面*/
      background: greenyellow;
      /*固定定位
      position: fixed;
      left: 30px;
      top: 30px;*/
      }
       
      /*层级关系
      固定定位 > 相对定位 > 绝对定位 > 默认static
      */
       
      </style>
       
      </head>
      <body>
      <div id="box">
      <div>第1个盒子</div>
      <div>第2个盒子</div>
      <div>第3个盒子</div>
      <div>第4个盒子</div>
      <div>第5个盒子</div>
      </div>
      </body>
      </html>

    z-index属性

    <!DOCTYPE html>
      <html>
      <head lang="en">
      <meta charset="UTF-8">
      <title>z-index属性</title>
       
      <style type="text/css">
      *{
      margin: 0px;
      padding: 0px;
      }
      li{
      list-style: none;
      }
      #content{
      350px;
      height: 300px;
      border: 1px solid red;
      margin: 0px auto;
      }
       
      .tipBg{ /*带背景的*/
      background: gray; /*可以使用 rgba*/
      opacity: 0.5;
      filter: alpha(opacity=50);/*解决低版本IE兼容性*/
      }
      .tipBg,.tipText{ /*都需要跑到 图片上去*/
      position: absolute; /* 都是绝对定位*/
      height: 25px;
      line-height: 25px;
      331px; ;
      top: 102px;
      }
       
      .tipText{
      z-index:1;/*设置相同层面的元素 堆叠顺序 默认值 是0 值越大 离我们越近*/
      text-align: center;
      }
      </style>
      </head>
      <body>
      <div id="content">
      <ul>
      <li><img src="../images/maple.jpg" alt="香山红叶" /></li>
      <li class="tipText">京秋魅力&#8226;相约共赏香山红叶</li>
      <li class="tipBg"></li>
      <li>时间:11月16日 星期六 8:30</li>
      <li>地点:朝阳区西大望路珠江帝景K区正门前集合</li>
      </ul>
      </div>
      </body>
      </html>
    
    
  • 相关阅读:
    时隔 4 年!ElasticJob 3.0.0 发布,王者归来。。
    Git 代码防丢指南,再也不怕丢失代码了!
    排查线上问题必须掌握的 6 个 Linux 命令!
    Leaflet添加图片图层:ImageOverlay
    js图片数据流
    arcgis查找与要素相交的内容 by 空间连接查询
    Leaflet添加图片图层:使用Axios请求arcgis server rest api的exportmap,获取图片并进行显示
    esri-leaflet: unique value renderer唯一值渲染-dynamiclayers参数
    arcgis server缓存切片
    城市给排水法律法规
  • 原文地址:https://www.cnblogs.com/yunfeioliver/p/7784681.html
Copyright © 2020-2023  润新知