您的位置:首页 > Web前端 > CSS

CSS基础知识

2017-08-13 17:43 316 查看
CSS 概述

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

样式定义如何显示 HTML 元素

样式通常存储在样式表中

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

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

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

多个样式定义可层叠为一

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

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

浏览器缺省设置

外部样式表

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

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

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

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

selector {declaration1; declaration2; ... declarationN }

派生选择器

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

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

li strong {

    font-style: italic;

    font-weight: normal;

  }

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

id 选择器以 "#" 来定义。

下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色:

#red {color:red;}

#green {color:green;}

id 选择器和派生选择器

在现代布局中,id 选择器常常用于建立派生选择器。

#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}

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

.center {text-align: center}

和 id 一样,class 也可被用作派生选择器:

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

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

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

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

<td class="fancy">

属性选择器

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

[title]

{

color:red;

}

属性和值选择器

下面的例子为 title="W3School" 的所有元素设置样式:

[title=W3School]

{

border:5px solid blue;

}

设置表单的样式

属性选择器在为不带有 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;

}

CSS 选择器参考手册

选择器 描述

[attribute] 用于选取带有指定属性的元素。

[attribute=value] 用于选取带有指定属性和值的元素。

[attribute~=value] 用于选取属性值中包含指定词汇的元素。

[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

[attribute^=value] 匹配属性值以指定值开头的每个元素。

[attribute$=value] 匹配属性值以指定值结尾的每个元素。

[attribute*=value] 匹配属性值中包含指定值的每个元素。

CSS 背景属性

属性 描述

background 简写属性,作用是将背景属性设置在一个声明中。

background-attachment 背景图像是否固定或者随着页面的其余部分滚动。

background-color 设置元素的背景颜色。

background-image 把图像设置为背景。

background-position 设置背景图像的起始位置。

background-repeat 设置背景图像是否及如何重复。

CSS 文本属性

属性 描述

color 设置文本颜色

direction 设置文本方向。

line-height 设置行高。

letter-spacing 设置字符间距。

text-align 对齐元素中的文本。

text-decoration 向文本添加修饰。

text-indent 缩进元素中文本的首行。

text-shadow 设置文本阴影。CSS2 包含该属性,但是 CSS2.1 没有保留该属性。

text-transform 控制元素中的字母。

unicode-bidi 设置文本方向。

white-space 设置元素中空白的处理方式。

word-spacing 设置字间距。

CSS 字体属性

属性 描述

font 简写属性。作用是把所有针对字体的属性设置在一个声明中。

font-family 设置字体系列。

font-size 设置字体的尺寸。

font-size-adjust 当首选字体不可用时,对替换字体进行智能缩放。(CSS2.1 已删除该属性。)

font-stretch 对字体进行水平拉伸。(CSS2.1 已删除该属性。)

font-style 设置字体风格。

font-variant 以小型大写字体或者正常字体显示文本。

font-weight 设置字体的粗细。

CSS 列表属性(list)

属性 描述

list-style 简写属性。用于把所有用于列表的属性设置于一个声明中。

list-style-image 将图象设置为列表项标志。

list-style-position 设置列表中列表项标志的位置。

list-style-type 设置列表项标志的类型。

marker-offset  

CSS Table 属性

属性 描述

border-collapse 设置是否把表格边框合并为单一的边框。

border-spacing 设置分隔单元格边框的距离。

caption-side 设置表格标题的位置。

empty-cells 设置是否显示表格中的空单元格。

table-layout 设置显示单元、行和列的算法。

CSS 边框属性

"CSS" 列中的数字指示哪个 CSS 版本定义了该属性。

属性 描述 CSS

outline 在一个声明中设置所有的轮廓属性。
2

outline-color 设置轮廓的颜色。
2

outline-style 设置轮廓的样式。
2

outline-width 设置轮廓的宽度。

CSS padding 属性

CSS padding 属性定义元素的内边距。padding 属性接受长度值或百分比值,但不允许使用负值。

例如,如果您希望所有 h1 元素的各边都有 10 像素的内边距,只需要这样:

h1 {padding: 10px;}

您还可以按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值:

h1 {padding: 10px 0.25em 2ex 20%;}

单边内边距属性

也通过使用下面四个单独的属性,分别设置上、右、下、左内边距:

padding-top

padding-right

padding-bottom

padding-left

您也许已经想到了,下面的规则实现的效果与上面的简写规则是完全相同的:

h1 {

  padding-top: 10px;

  padding-right: 0.25em;

  padding-bottom: 2ex;

  padding-left: 20%;

  }

CSS 内边距属性

属性 描述

padding 简写属性。作用是在一个声明中设置元素的所内边距属性。

padding-bottom 设置元素的下内边距。

padding-left 设置元素的左内边距。

padding-right 设置元素的右内边距。

padding-top 设置元素的上内边距。

CSS 边框属性

属性 描述

border 简写属性,用于把针对四个边的属性设置在一个声明。

border-style 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。

border-width 简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。

border-color 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。

border-bottom 简写属性,用于把下边框的所有属性设置到一个声明中。

border-bottom-color 设置元素的下边框的颜色。

border-bottom-style 设置元素的下边框的样式。

border-bottom-width 设置元素的下边框的宽度。

border-left 简写属性,用于把左边框的所有属性设置到一个声明中。

border-left-color 设置元素的左边框的颜色。

border-left-style 设置元素的左边框的样式。

border-left-width 设置元素的左边框的宽度。

border-right 简写属性,用于把右边框的所有属性设置到一个声明中。

border-right-color 设置元素的右边框的颜色。

border-right-style 设置元素的右边框的样式。

border-right-width 设置元素的右边框的宽度。

border-top 简写属性,用于把上边框的所有属性设置到一个声明中。

border-top-color 设置元素的上边框的颜色。

border-top-style 设置元素的上边框的样式。

border-top-width 设置元素的上边框的宽度。

CSS margin 属性

设置外边距的最简单的方法就是使用 margin 属性。

margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。

CSS 外边距属性

属性 描述

margin 简写属性。在一个声明中设置所有外边距属性。

margin-bottom 设置元素的下外边距。

margin-left 设置元素的左外边距。

margin-right 设置元素的右外边距。

margin-top 设置元素的上外边距。

CSS 外边距属性

属性 描述

margin 简写属性。在一个声明中设置所有外边距属性。

margin-bottom 设置元素的下外边距。

margin-left 设置元素的左外边距。

margin-right 设置元素的右外边距。

margin-top 设置元素的上外边距。

CSS 元素选择器

最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。

如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身:

html {color:black;}

h1 {color:blue;}

h2 {color:silver;}

元素选择器又称为类型选择器(type selector)

锚伪类

在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。

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

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

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

a:active {color: #0000FF} /* 选定的链接 */

伪类

W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。

属性 描述 CSS

:active 向被激活的元素添加样式。
1

:focus 向拥有键盘输入焦点的元素添加样式。
2

:hover 当鼠标悬浮在元素上方时,向元素添加样式。
1

:link 向未被访问的链接添加样式。
1

:visited 向已被访问的链接添加样式。
1

:first-child 向元素的第一个子元素添加样式。
2

:lang 向带有指定 lang 属性的元素添加样式。
2

元素

W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。

属性 描述 CSS

:first-letter 向文本的第一个字母添加特殊样式。
1

:first-line 向文本的首行添加特殊样式。
1

:before 在元素之前添加内容。
2

:after 在元素之后添加内容。

使用 margin 属性来水平对齐

可通过将左和右外边距设置为 "auto",来对齐块元素。

.center

{

margin-left:auto;

margin-right:auto;

width:70%;

background-color:#b0e0e6;

}

使用 position 属性进行左和右对齐

对齐元素的方法之一是使用绝对定位:

实例

.right

{

position:absolute;

right:0px;

width:300px;

background-color:#b0e0e6;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: