当前位置 : 主页 > 网页制作 > css >

CSS:基础

来源:互联网 收集:自由互联 发布时间:2021-06-13
CSS概述 1、CSS指层叠样式表 (Cascading Style Sheets) 2、样式定义如何显示 HTML 元素 3、样式通常存储在样式表中 4、把样式添加到HTML 4.0 中,是为了解决内容与表现分离的问题 5、外部样式表

CSS概述

1、CSS指层叠样式表 (Cascading Style Sheets)

2、样式定义如何显示 HTML 元素

3、样式通常存储在样式表中

4、把样式添加到HTML 4.0 中,是为了解决内容与表现分离的问题

5、外部样式表可以极大提高工作效率

6、外部样式表通常存储在 CSS 文件中

7、多个样式定义可层叠为一

 

 

用途

1、HTML标签原本被设计为用于定义文档内容。通过使用<h1>、<p>、<table>这样的标签,HTML的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。同时文档布局由浏览器来完成,而不使用任何的格式化标签。由于两种主要的浏览器(Netscape 和 Internet Explorer)不断地将新的HTML标签和属性(比如字体标签和颜色属性)添加到HTML规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。因此为了解决这个问题,所有的主流浏览器均支持层叠样式表

2、样式表定义如何显示HTML元素,样式通常保存在外部的.css文件中。通过仅仅编辑一个简单的CSS文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观

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

 

 

层叠次序

一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字4拥有最高的优先权
1、浏览器缺省设置

2、外部样式表

3、内部样式表(位于<head>标签内部)

4、内联样式(在HTML元素内部)

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

 

 

CSS基础语法

CSS规则由两个主要的部分构成:选择器,以及一条或多条声明(这种是写在head标签中的格式)

selector {declaration1; declaration2; ... declarationN }

注:
1、选择器通常是您需要改变样式的HTML元素

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

3、属性是您希望设置的样式属性:每个属性有一个值。属性和值被冒号分开selector {property: value}

4、请使用花括号来包围声明

例1:

h1 {color:red; font-size:14px;}

?

注:如果值为若干单词,则要给值加引号,如p {font-family: "sans serif";}

 

 

多重声明

1、如果要定义不止一个声明,则需要用分号将每个声明分开

2、最后一条声明后是不需要加分号的,只是通常大家都会在每条声明的末尾都加上分号(包括末尾的声明后)

3、应该在每行只描述一个属性,这样可以增强样式定义的可读性,如:

例2:

p {
  text-align: center;
  color: black;
  font-family: arial;
}

 

 

空格和大小写

1、大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。多重声明和空格的使用使得样式表更容易被编辑

2、是否包含空格不会影响CSS在浏览器的工作效果

3、CSS对大小写不敏感。不过存在一个例外:如果涉及到与HTML文档一起工作的话,class和id名称对大小写是敏感的

例3:

body {
  color: #000;
  background: #fff;
  margin: 0;
  padding: 0;
  font-family: Georgia, Palatino, serif;
  }

 

 

内部样式表

1、在<head>标签对中通过<style>标签定义内部样式表,并为<style>标签增加属性type="text/css"

2、在<head>标签中可以对整个HTML文档中的标签对进行样式设置(<style>标签对),格式为:标签名{属性:属性值;}


内联样式

1、需要对某个标签对设置样式时,可以使用内联样式,格式为:标签名 style="属性:属性值;" (在开始标签中设置样式属性)

2、当设置了内部样式表但未设置内联样式时,就使用的是内部样式表;当设置了内部样式表且设置了内联样式时,就使用的是内联样式

例4:

<html>
<head>
<meta charset="utf-8">
<style type="text/css">
    p{background-color: gray; padding: 20px;}
</style>
</head>

<body>
<p style="background-color: red">这是段落</p>
<p class="no2">这个段落设置了内边距。</p>
</body>

</html>


 

 

CSS高级语法

选择器的分组

你可以对选择器进行分组,这样被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开

例5:

<html>
<head>
<style type="text/css">
    h1,h2,h3,h4,h5,h6,p{color: green;}
</style>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<h6>这是标题 2</h6>
<p>这是段落</p>
</body>
</html>

 

 

 

继承

根据CSS语法规则子元素将从父元素继承属性

例6:

<html>
<head>
<style type="text/css">
    body {
     font-family: Verdana, sans-serif;
     color: green;
     }
</style>
</head>
<body>
<h1>这是一个标题</h1>
<p class="normal">这是一个段落</p>
<p class="italic">这是一个段落</p>

<ol style="color: red";>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Lemons</li>
    <li>Oranges</li>
</ol>
</body>
</html>

?

注:
1、上面例子中:我们只是对body标签对进行了属性设置,未对其子标签(元素:h1、p)设置属性,但根据输出结果可以看出其子标签也使用(继承)了父标签的属性

2、通过CSS继承,子元素将继承最高级元素(在本例中是body)所拥有的属性。不需要另外的规则,所有 body 的子元素都应该显示 Verdana 字体,子元素的子元素也一样。并且在大部分的现代浏览器中,也确实是这样的。

3、这些子元素诸如p, td, ul, ol, ul, li, dl, dt,和dd也会继承父元素的样式

4、如果不希望子元素继承父元素的样式,则可以对子元素设置特定的样式

例6_1:

<html>
<head>
<style type="text/css">
    body {
     font-family: Verdana, sans-serif;
     color: green;
     }
    p.italic {font-style:oblique;
                color: blue;
                }
</style>
</head>
<body>
<h1>这是一个标题</h1>
<p class="normal">这是一个段落</p>
<p class="italic">这是一个段落</p>

<ol style="color: red";>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Lemons</li>
    <li style="color: green";>Oranges</li>
</ol>
</body>
</html>

?

 

 

如何插入样式表

当读到一个样式表时,浏览器会根据它来格式化HTML文档。插入样式表的方法有三种:

外部样式表

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

例7:

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

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

2、外部样式表应用于多个HTML文档,对于某个HTML而言它是作用于整个HTML文档的(把内部样式写在了一个外部文档里面,只是声明方式不一样?)

3、外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的html标签。样式表应该以.css扩展名进行保存

4、link 元素是空元素,它仅包含属性

5、此元素只能存在于head部分,不过它可出现任何次数

例7_1:

body {background-image: url("images/back40.gif");}
hr {color: sienna;}
p {margin-left: 20px;}

注:
不要在属性值与单位之间留有空格。假如将"margin-left: 20px" 写成了"argin-left: 20 px",它可能在在Mozilla/Firefox中却无法正常工作

 


内部样式表

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

例8:

<head>
<style type="text/css">
  hr {color: sienna;}
  p {margin-left: 20px;}
  body {background-image: url("images/back40.gif");}
</style>
</head>

 

 

内联样式

由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。要使用内联样式,需要在相关的标签内使用样式(style)属性。Style属性可以包含任何CSS属性

例9:

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

 

 

多重样式

如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来,优先级为内联->内部->外部

例10:

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

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

 

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

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

 

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

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

 

 

派生选择器

1、通过依据元素在其位置的上下文关系来定义样式;在CSS1中,通过这种方式来应用规则的选择器被称为上下文选择器,这是由于它们依赖于上下文关系来应用或者避免某项规则

2、派生选择器允许你根据文档的上下文关系来确定某个标签的样式。通过合理地使用派生选择器,我们可以使 HTML 代码变得更加整洁

例7:希望列表中的strong元素变为斜体字,而不是通常的粗体字

<html>
<head>
<style type="text/css">
    li strong {
    font-style: italic;
    font-weight: normal;
  }
</style>
</head>
<body>
<p>
    <strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用</strong>
</p>

<ol>
    <li>
        <strong>我是斜体字。这是因为 strong 元素位于 li 元素内。</strong>
    </li>
    <li>我是正常的字体。</li>
</ol>
</body>
</html>

?

注:
1、首先看在定义样式时的定义方法:li strong表示li标签下的strong,即需要满足这两个条件才会生效

2、上面的例子中,只有li元素中的strong元素的样式为斜体字,无需为strong元素定义特别的class或id

例7_1:

<html>
<head>
<style type="text/css">
    strong {
         color: red;
         }

    h2 {
         color: red;
         }

    h2 strong {
         color: blue;
        }
</style>
</head>
<body>
<p>The strongly emphasized word in this paragraph is<strong>red</strong>.</p>
<h2>This subhead is also red.</h2>
<h2>The strongly emphasized word in this subhead is<strong>blue</strong>.</h2>
</body>
</html>

 

网友评论