zoukankan      html  css  js  c++  java
  • CSS基础总结 1

    一、什么是 CSS?

      CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网页表现与结构分离的一种样式设计语言。样式通常存储在样式表中,外部样式表通常存储在 CSS 文件中,多个样式定义可层叠为一。

      HTML 标签被设计为用于定义文档内容,也就是文档结构,为了增强代码的可读性,实现网页结构与表现相分离的原则,万维网联盟(W3C),肩负起了 HTML 标准化的使命,并在 HTML4 之外创造出样式(Style)。CSS 目前最新版本是 CSS3,相对于传统 HTML 的表现而言,CSS 能够对网页中对象的位置排版进行像素级的精确控制,拥有对网页对象编辑的能力,易于维护和改版,提高页面浏览速度,使用 CSS 布局页面更符合 W3C 标准,他是目前基于文本展示最优秀的表现设计语言。

    二、CSS基础语法

    CSS 实例

    CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:

    选择器通常是您需要改变样式的 HTML 元素。

    每条声明由一个属性和一个值组成。

    属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。

    CSS 实例

      CSS声明总是以分号(;)结束,声明组以大括号({})括起来:

      p {color:red;text-align:center;}

      为了让CSS可读性更强,你可以每行只描述一个属性:

    实例

    p
    {
    color:red;
    text-align:center;
    }

    CSS 注释

    注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。

    CSS注释以 "/*" 开始, 以 "*/" 结束, 实例如下:

    /*这是个注释*/
    p
    {
    text-align:center;
    /*这是另一个注释*/
    color:black;
    font-family:arial;
    }
    三、CSS选择器

    1.基础的选择器

    选择器

    含义

    示例

    *

    通用元素选择器,匹配任何元素

    * { margin:0; padding:0; }

    E

    标签选择器,匹配所有使用E标签的元素

    p { font-size:2em; }

    .info和E.info

    class选择器,匹配所有class属性中包含info的元素

    .info { background:#ff0; }

    p.info { background:#ff0; }

    #info和E#info

    id选择器,匹配所有id属性等于footer的元素

    #info { background:#ff0; }

    p#info { background:#ff0; }

     

    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; }

    3.CSS 2.1 属性选择器

    选择器

    含义

    示例

    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; }

    注:CSS 2.1 属性选择器还有一个特点就是使用多个选择器,同事满足这多个选择器:blockquote[class=quote][cite] { color:#f00; }

    4.CSS 2.1 中的伪类

    选择器

    含义

    示例

    E:first-child

    匹配父元素的第一个子元素

    p:first-child { font-style:italic; }

    input[type=text]:focus { color:#000; background:#ffe; }

    input[type=text]:focus:hover { background:#fff; }

    q:lang(sv) { quotes: “201D” “201D” “2019″ “2019″; }

    E:link

    匹配所有未被点击的链接

    E:visited

    匹配所有已被点击的链接

    E:active

    匹配鼠标已经其上按下、还没有释放的E元素

    E:hover

    匹配鼠标悬停其上的E元素

    E:focus

    匹配获得当前焦点的E元素

    E:lang(c)

    匹配lang属性等于c的E元素

    5.CSS 2.1中的伪元素

    选择器

    含义

    示例

    E:first-line

    匹配E元素的第一行

    p:first-line { font-weight:bold; color;#600; }

    .preamble:first-letter { font-size:1.5em; font-weight:bold; }

    .cbb:before { content:”"; display:block; height:17px; 18px; background:url(top.png) no-repeat 0 0; margin:0 0 0 -18px; }

    a:link:after { content: ” (” attr(href) “) “; }

    E:first-letter

    匹配E元素的第一个字母

    E:before

    在E元素之前插入生成的内容

    E:after

    在E元素之后插入生成的内容

    6.CSS 3的同级元素通用选择器

    选择器

    含义

    示例

    E ~ F

    匹配任何在E元素之后的同级F元素

    p ~ ul { background:#ff0; }

    7.CSS 3 属性选择器

    选择器

    含义

    示例

    E[att^=”val”]

    属性att的值以”val”开头的元素

    div[id^="nav"] { background:#ff0; }

    E[att$=”val”]

    属性att的值以”val”结尾的元素

    E[att*=”val”]

    属性att的值包含”val”字符串的元素

    8. CSS 3中与用户界面有关的伪类

    选择器

    含义

    示例

    E:enabled

    匹配表单中激活的元素

    input[type="text"]:disabled { background:#ddd;}

    E:disabled

    匹配表单中禁用的元素

    E:checked

    匹配表单中被选中的radio(单选框)或checkbox(复选框)元素

    E::selection

    匹配用户当前选中的元素

    9. CSS 3中的结构性伪类

    选择器

    含义

    示例

    E:root

    匹配文档的根元素,对于HTML文档,就是HTML元素

    p:nth-child(3) { color:#f00; }

    p:nth-child(odd) { color:#f00; }

    p:nth-child(even) { color:#f00; }

    p:nth-child(3n+0) { color:#f00; }

    p:nth-child(3n) { color:#f00; }

    tr:nth-child(2n+11) { background:#ff0; }

    tr:nth-last-child(2) { background:#ff0; }

    p:last-child { background:#ff0; }

    p:only-child { background:#ff0; }

    p:empty { background:#ff0; }

    E:nth-child(n)

    匹配其父元素的第n个子元素,第一个编号为1

    E:nth-last-child(n)

    匹配其父元素的倒数第n个子元素,第一个编号为1

    E:nth-of-type(n)

    与:nth-child()作用类似,但是仅匹配使用同种标签的元素

    E:nth-last-of-type(n)

    与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素

    E:last-child

    匹配父元素的最后一个子元素,等同于:nth-last-child(1)

    E:first-of-type

    匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)

    E:last-of-type

    匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)

    E:only-child

    匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)

    E:only-of-type

    匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)

    E:empty

    匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素

    10.CSS 3的反选伪类

    选择器

    含义

    示例

    E:not(s)

    匹配不符合当前选择器的任何元素

    :not(p) { border:1px solid #ccc; }

    11. CSS 3中的 :target 伪类

    选择器

    含义

     

    E:target

    匹配文档中特定”id”点击后的效果

     

    优先级

    不同级别

    1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。

    2.作为style属性写在元素内的样式

    3.id选择器

    4.类选择器

    5.标签选择器

    6.通配符选择器

    7.浏览器自定义

    同一级别

    同一级别中后写的会覆盖先写的样式

    四、CSS的创建

    CSS样式的创建常见的有

      1、外部样式表

      2、内部样式表

      3、内联样式

    1、外部样式表

      当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表。 <link> 标签在(文档的)头部:

    <head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    </head>

    浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。

    外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子:

    hr {color:sienna;}
    p {margin-left:20px;}
    body {background-image:url("/images/back40.gif");}
      注意: 不要在属性值与单位之间留有空格(如:"margin-left: 20 px" ),正确的写法是 "margin-left: 20px" 。
    2、内部样式表

    当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用 <style> 标签在文档头部定义内部样式表,就像这样:

    <head>
    <style>
    hr {color:sienna;}
    p {margin-left:20px;}
    body {background-image:url("images/back40.gif");}
    </style>
    </head>
    3、内联样式

      由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

    要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距:

    <p style="color:sienna;margin-left:20px">This is a paragraph.</p>

    多重样式

    如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。 

    例如,外部样式表拥有针对 h3 选择器的三个属性:

    h3
    {
    color:red;
    text-align:left;
    font-size:8pt;
    }

    而内部样式表拥有针对 h3 选择器的两个属性:

    h3
    {
    text-align:right;
    font-size:20pt;
    }

    假如拥有内部样式表的这个页面同时与外部样式表链接,那么 h3 得到的样式是:

    color:red;
    text-align:right;
    font-size:20pt;

    即颜色属性将被继承于外部样式表,而文字排列(text-alignment)和字体尺寸(font-size)会被内部样式表中的规则取代。

    多重样式将层叠为一个

    样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。

    层叠次序

    当同一个 HTML 元素被不止一个样式定义时,会使用哪个样式呢?

    一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字 4 拥有最高的优先权。

    1. 浏览器缺省设置
    2. 外部样式表
    3. 内部样式表(位于 <head> 标签内部)
    4. 内联样式(在 HTML 元素内部)

    因此,内联样式(在 HTML 元素内部)拥有最高的优先权,这意味着它将优先于以下的样式声明: 标签中的样式声明,外部样式表中的样式声明,或者浏览器中的样式声明(缺省值)。

  • 相关阅读:
    Lucene.Net 2.3.1开发介绍 —— 二、分词(一)
    控制‘控制台应用程序’的关闭操作
    详解for循环(各种用法)
    敏捷软件开发
    Sql Server的一些知识点
    在SharePoint 2010 中配置Remote Blob Storage FILESTREAM Provider
    使用LotusScript操作Lotus Notes RTF域
    JOpt Simple 4.5 发布,命令行解析器
    John the Ripper 1.8.0 发布,密码破解工具
    PacketFence ZEN 4.0.1 发布,网络接入控制
  • 原文地址:https://www.cnblogs.com/crx234/p/6591264.html
Copyright © 2011-2022 走看看