css学习笔记1

CSS 基础语法

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

selector {declaration1; declaration2; ... declarationN }

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

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

属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。如果不止一个声明,则要在声明之间加引号。

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

值的不同写法和单位

除了英文单词 red,我们还可以使用十六进制的颜色值 #ff0000:

p { color: #ff0000; }

使用css缩写形式为:

p { color: #f00; }

使用rgb值确定颜色:

p{color:rgb(1,0,0);}
p{color:rgb(100%,0%,0%);}

注意:当rgb值为0时也不可省略百分号%。

为了避免增减声明时产生错误,无论声明个数,最好都在声明后加一个分号;表示隔断而非结束。为增加代码可读性,一个声明占据一行。

声明中是否包含空格不会影响 CSS 在浏览器的工作效果,同样,与 XHTML 不同,CSS 对大小写不敏感。不过存在一个例外:如果涉及到与 HTML 文档一起工作的话,class 和 id 名称对大小写是敏感的。

CSS高级语法

对选择器分类,这样就可以对相同类的选择器进行统一声明。每个选择器之间用逗号隔开。如下是对标题进行声明:

h1,h2,h3,h4,h5,h6{
color:green;
}

继承

根据 CSS,子元素从父元素继承属性。例如:

body {
     font-family: Verdana, sans-serif;
     }

那么body的子元素,如p、tr、th等,都将继承最高元素(本例中为body)的属性,即字体为Verdana。

对于Netscape4这样,忽略继承的浏览器,我们需要再对子元素进行声明。而对于个别想要摆脱继承父元素属性的子元素,可单独对其进行声明。

CSS派生选择器

通过依据元素在其位置的上下文关系来定义样式,在 CSS1 中,通过这种方式来应用规则的选择器被称为上下文选择器 (contextual selectors),这是由于它们依赖于上下文关系来应用或者避免某项规则。在 CSS2 中,它们称为派生选择器,但是无论你如何称呼它们,它们的作用都是相同的。

比如,将strong里的字体变成斜体:

li strong{
    font-style: italic;
    font-weight: normal;
}

则:

<p><strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用</strong></p>

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

仅有列表中的strong为斜体字,其他不变。

又如下述css规则:

strong {
     color: red;
     }

h2 {
     color: red;
     }

h2 strong {
     color: blue;
     }

应用于html中表现为:

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

CSS id选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。id 选择器以 "#" 来定义。

#red{color:red;}
#green{color:green;}

下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。

<p id="red">这个段落是红色</p>
<p id="green">这个段落是绿色</p>

注意:id 属性只能在每个 HTML 文档中出现一次。

id选择器可用作派生选择器。

CSS 类选择器

在css中,类选择器以一个点显示:

.center{text-align:center;}

上例表示,所有拥有center类的元素均为居中:

<h1 class="center">
This heading will be center-aligned
</h1>

<p class="center">
This paragraph will also be center-aligned.
</p>

注意:类名的第一个字符不能是数字,它无法在 Mozilla 或 Firefox 中起作用。

类选择器也可用作派生选择器:

.fancy td {
    color: #f60;
    background: #666;
    }

类名为 fancy 的更大的元素内部的表格单元都会以灰色背景显示橙色文字。(名为 fancy 的更大的元素可能是一个表格或者一个 div)。

元素也可以基于他们的类而被选择:

td.fancy{
color=#f60;
background: #666;
}

在上面的例子中,类名为 fancy 的表格单元将是带有灰色背景的橙色。

你可以将类 fancy 分配给任何一个表格元素任意多的次数。那些以 fancy 标注的单元格都会是带有灰色背景的橙色。那些没有被分配名为 fancy 的类的单元格不会受这条规则的影响。还有一点值得注意,class 为 fancy 的段落也不会是带有灰色背景的橙色,当然,任何其他被标注为 fancy 的元素也不会受这条规则的影响。这都是由于我们书写这条规则的方式,这个效果被限制于被标注为 fancy 的表格单元(即使用 td 元素来选择 fancy 类)。

CSS 属性选择器

下面的例子为带有 title 属性的所有元素设置样式:

[title]
{
color:red;
}

带有title属性的元素将被设置为红色:

<h2 title="Hello world">Hello world</h2>
<a title="W3School" href="http://w3school.com.cn">W3School</a>

显示结果为:

对title=“W3School”的所有元素设置样式:

[title=W3School]
{
border:5px solid blue;
}

则只能对title=“W3School”元素产生影响,而对title=“***”,***为不是W3School的其他内容没有影响:

<img title="W3School" src="/i/w3school_logo_white.gif" />

效果如下:

下面的例子为包含指定值的 title 属性的所有元素设置样式。适用于由空格分隔的属性值:

[title~=hello]
{
color:red;
} 

则可用情况为:

<h2 title="hello world">Hello world</h2>
<p title="student hello">Hello W3School students!</h1>

不可用情况为:

<h2 title="world">Hello world</h2>
<p title="student">Hello W3School students!</p>

该效果的另一种定义方式是:[title | =hello],使用方式同上。

属性选择器在为不带有 class 或 id 的表单设置样式时特别有用:

input[type="text"]
{
  width:150px;
  display:block;
  margin-bottom:10px;
  background-color:yellow;
  font-family: Verdana, Arial;
}

input[type="button"]
{
  width:120px;
  margin-left:35px;
  display:block;
  font-family: Verdana, Arial;
}
<form name="input" action="" method="get">
<input type="text" name="Name" value="Bill" size="20">
<input type="text" name="Name" value="Gates" size="20">
<input type="button" value="Example Button">

CSS 选择器参考手册

选择器 描述
[attribute] 用于选取带有指定属性的元素。
[attribute=value] 用于选取带有指定属性和值的元素。
[attribute~=value] 用于选取属性值中包含指定词汇的元素。
[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value] 匹配属性值以指定值开头的每个元素。
[attribute$=value] 匹配属性值以指定值结尾的每个元素。
[attribute*=value] 匹配属性值中包含指定值的每个元素。

猜你喜欢

转载自www.cnblogs.com/cff2121/p/9277566.html