Fork me on github

CSS选择器

目录:

  • CSS派生选择器
  • CSS元素选择器
  • CSS Id 和 Class选择器
  • CSS 属性选择器

CSS 派生选择器

通过依据元素在其位置的上下文关系来定义样式,你可以使标记更加简洁。

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

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

比方说,你希望列表中的 strong 元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器:

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

请注意标记为<strong>的蓝色代码的上下文关系:

<p><strong>我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用  </strong></p>
<ol>
<li><strong> 我是斜体字。这是因为 strong 元素位于 li 元素内。 </strong></li>
<li>我是正常的字体。</li>
</ol>

在上面的例子中,只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class
或 id,代码更加简洁。
再看看下面的 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 后代选择器
CSS 子元素选择器
CSS 相邻兄弟选择器

CSS元素选择器

元素选择器,就是“选中”相同的元素,然后对相同的元素设置同一个CSS样式。

语法:
CSS元素选择器

CSS Id 和 Class选择器

两者的区别:传送门

* HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。
* class 选择器在HTML中以class属性表示, 在 CSS 中,类选择器以一个点"."号显示:
* 类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。
  • class 和 id 有什么区别
    1、class是设置标签的类, class属性用于指定元素属于何种样式的类;
    2、id是设置标签的标识。id属性用于定义一个元素的独特的样式。
    3、class是一个样式,先定义好, 然后可以套给多个结构/内容, 便于复用。也就是说class名称可以相同。
    4、id是一个标签,用于区分不同的结构和内容,就象你的名字, 如果一个屋子有2个人同名,就会出现混淆;id是先找到结构/内容,再给它定义样式;
    5、id的优先级要高于class

  • 那么什么时候用 class 什么时候用 id呢

    • 单一的元素,或需要程序、JS控制的东西,需要用id定义;重复使用的元素、类别,用class定义。
    • 如果在页面中要对某个对象进行脚本操作(js),那么可以给他定义一个id,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个id来得简单.

CSS 属性选择器

对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。
注释:只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持属性选择器。在 IE6 及更低的版本中,不支持属性选择。

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

[title]
{
color:red;
}

属性和值选择器
下面的例子为 title="robot" 的所有元素设置样式:

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

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

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

下面的例子为带有包含指定值的 lang 属性的所有元素设置样式。适用于由连字符分隔的属性值:

[lang|=en] { color:red; }

设置表单的样式
属性选择器在为不带有 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;
}
posted @ 2017-07-27 13:46  Zenquan  阅读(219)  评论(0编辑  收藏  举报