array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 web 前端2 CSS - 爱码网

CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离。

 

一 css的四种引入方式

 

1.行内式
          行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,不推荐使用。

 

2.嵌入式
          嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。格式如下:

         <head>

        <style type="text/css">

               ...此处写CSS样式

       </style>

      </head>

3.导入式
          将一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中,使用的语法如下:

          <style type="text/css">

                    @import"mystyle.css"; 此处要注意.css文件的路径

         </style>

4.链接式
            也是将一个.css文件引入到HTML文件中    <link href="mystyle.css" rel="stylesheet" type="text/css"/>

注意:

      导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。

二 css的选择器(Selector)

 

“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素

 

 

1 基础选择器:

 

* :                                 通用元素选择器,匹配任何元素                                * { margin:0; padding:0; }

E  :                                 标签选择器,匹配所有使用E标签的元素p { color:green; }

.info和E.info:                     class选择器,匹配所有class属性中包含info的元素        .info { background:#ff0; }    p.info { background:blue; }

#info和E#info                    id选择器,匹配所有id属性等于footer的元素                #info { background:#ff0; }   p#info { background:#ff0; }

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css 选择器</title>
    <style>
        *{
            /*通用元素选择器*/
            /*color:red;*/
        }
        p{
            /*标签选择器*/
            /*color:yellowgreen;*/
            font-size: 50px;
        }
        .info{
            /*类选择器*/
            color: darkblue;
        }
        h3.info{
            color:gold;
        }
        .x1{
            color:hotpink;
        }
    </style>
</head>
<body>
    <p>段落</p>
    <a>超链接</a>
    <div class="x1">
        <h4 class="info">标题4</h4>
        <h4 class="x1">标题4</h4>
        <div class="x1">
            <p>标题3</p>
        </div>
        <h3 class="info">标题3</h3>
    </div>
</body>
</html>

练习代码

 

ID选择不可重复,class可以重复。例如:身份证号不可用重复,而名字可以重复

2 组合选择器

           E,F               多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔             Div,p { color:#f00; }

           E F               后代元素选择器,后代不管儿子还是孙子。都会有影响。匹配所有属于E元素后代的F元素,E和F之间用空格分隔    #nav li { display:inline; }    li a { font-weight:bold; }

          E > F             子元素选择器,匹配所有E元素的子元素F                                            div > strong { color:#f00; }

     E + F            毗邻元素选择器,匹配所有紧随E元素之后的同级元素F                            p + p { color:#f00; }    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>

        .div1>p{
            background-color: aqua;
            color: deeppink;
        }

        .main2>div{
            background-color: blueviolet;
            color: chartreuse;
        }
    </style>
</head>
<body>

      <div class="div1">hello1
          <div class="div2">hello2
              <div>hello4</div>
              <p>hello5</p>
          </div>
          <p>hello3</p>
      </div>
      <p>hello6</p>

<hr>

     <div class="main2">1
       <div>222222
           <div>
           </div>
       </div>
       <div>
           </div>
     </div>
</body>
</html>

 

注意嵌套规则

  1. 块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
  2. 块级元素不能放在p里面
  3. 有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt
  4. li内可以包含div
  5. 块级元素与块级元素并列、内联元素与内联元素并列。(错误的:<div><h2></h2><span></span></div>)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        [suoning]{
            color: blueviolet;
        }
        .he>div{
            color: bisque;
        }

    </style>
</head>
<body>

<div class="he">111
    <p class="fr">222
        <div>333</div>
    </p>
    <div>444</div>
</div>


***************************

<div suoning="sb">ddd
         <p>pppp</p>
     </div>
     <p suoning="sb2">ddd2
         <p>pppp2</p>
     </p>
</body>
</html>

遇到情况:

  h标签包含h标签是当做兄弟处理,而包含div则什么关系也没有,p标签包含div是当做兄弟处理

练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style>
        h2[htit]{
            color:red;
        }
        p[duanl="duanluo1"]{
            color:green;
            font-size: 55px;
            border: 6px;
        }
        p[duanl~="du"]{
            color:sienna;
        }
        h2[x|=biao]{
            color: fuchsia;
            font-size: 33px;
        }
        p[duanl^=bun]{
            font-size: 44px;
        }
        p[duanl$=xx]{
            font-size: 4px;
        }
        p[duanl*=unx]{
            font-size: 99px;
        }
        p:before{
            content: "段落开始:::";
        }
        p:after{
            content: ":段落结束";
        }
    </style>
</head>
<body>
    <div div1="content">
        <h2 htit="biaoti">标题2</h2>
        <h2 htit="biaoti1">标题2-1</h2>
        <h2 x="biao-ti1">标题2xx1</h2>
        <p duanl="du dluo1">段落</p>
        <p duanl="duanluo1">段落1123</p>
        <p duanl="duanluo2">段落1123</p>
        <p duanl="bunxx">段落1123</p>
        <h3 htit="pipei">标题3</h3>
    </div>
</body>
</html>

 

3 属性选择器

 

          E[att]            匹配所有具有att属性的E元素,不考虑它的值。

                             (注意:E在此处可以省略,比如“[cheacked]”。以下同。)                 p[title] { color:#f00; }

 

         E[att=val]     匹配所有att属性等于“val”的E元素                                                   div[class=”error”] { color:#f00; }

 

        E[att~=val]    匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素      td[class~=”name”] { color:#f00; }

 

        E[att|=val]    匹配所有att属性具有多个连字号分隔(hyphen-separated)的值、其中一个值以“val”开头的E元素,主要用于lang属性,

                            比如“en”、“en-us”、“en-gb”等等                                                    p[lang|=en] { color:#f00; }

        E[attr^=val]    匹配属性值以指定值开头的每个元素                       div[class^="test"]{background:#ffff00;}

        E[attr$=val]    匹配属性值以指定值结尾的每个元素                       div[class$="test"]{background:#ffff00;}

        E[attr*=val]    匹配属性值中包含指定值的每个元素                       div[class*="test"]{background:#ffff00;}

 

        p:before         在每个 <p> 元素的内容之前插入内容                     p:before{content:"hello";color:red}

        p:after           在每个 <p> 元素的内容之前插入内容                      p:after{ content:"hello";color:red}

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style>
        h2[htit]{
            color:red;
        }
        p[duanl="duanluo1"]{
            color:green;
            font-size: 55px;
            border: 6px;
        }
        p[duanl~="du"]{
            color:sienna;
        }
        h2[x|=biao]{
            color: fuchsia;
            font-size: 33px;
        }
        p[duanl^=bun]{
            font-size: 44px;
        }
        p[duanl$=xx]{
            font-size: 4px;
        }
        p[duanl*=unx]{
            font-size: 99px;
        }
        p:before{
            content: "段落开始:::";
        }
        p:after{
            content: ":段落结束";
        }
    </style>
</head>
<body>
    <div div1="content">
        <h2 htit="biaoti">标题2</h2>
        <h2 htit="biaoti1">标题2-1</h2>
        <h2 x="biao-ti1">标题2xx1</h2>
        <p duanl="du dluo1">段落</p>
        <p duanl="duanluo1">段落1123</p>
        <p duanl="duanluo2">段落1123</p>
        <p duanl="bunxx">段落1123</p>
        <h3 htit="pipei">标题3</h3>
    </div>
</body>
</html>

4 伪类选择器:

    伪类选择器: 专用于控制链接的显示效果,伪类选择器:

a:link(没有接触过的链接),用于定义了链接的常规状态。

a:hover(鼠标放在链接上的状态),用于产生视觉效果。

a:visited(访问过的链接),用于阅读文章,能清楚的判断已经访问过的链接。

a:active(在链接上按下鼠标时的状态),用于表现鼠标按下时的链接状态。

     伪类选择器 : 伪类指的是标签的不同状态:

            a ==> 点过状态 没有点过的状态 鼠标悬浮状态 激活状态

a:link {color: #FF0000} /* 未访问的链接 */

a:visited {color: #00FF00} /* 已访问的链接 */

a:hover {color: #FF00FF} /* 鼠标移动到链接上 */

a:active {color: #0000FF} /* 选定的链接 */ 格式: 标签:伪类名称{ css代码; }

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>伪类选择器</title>
    <style>
        a:link{
            color: blue;
        }
        h2{
            color: blue;
        }
        a,h2:hover{
            color: yellow;
        }
        a:visited{
            color: firebrick;
        }
        a,h2:active{
            color: fuchsia;;
        }
    </style>
</head>
<body>
    <a href="http://www.sohu.com/" target="_blank">ww.sohu.com</a>
    <h2>标题2</h2>
</body>
</html>

伪类选择器
伪类选择器
<style type="text/css">
    a:link{
        color: red;
    }
    a:visited {
        color: blue;
    }
    a:hover {
        color: green;
    }
    a:active {
        color: yellow;
    }
</style>
</head>
<body>
    <a href="01-hello-world.html">hello-world</a>
</body>
</html>

code
View Code

相关文章: