CSS笔记摘抄及理解

属性选择器
下面的例子为带有 title 属性的所有元素设置样式:
[title]
{
color:red;
}
属性和值选择器
下面的例子为 title="W3School" 的所有元素设置样式:
[title=W3School]
{
border:5px solid blue;
}
属性和值选择器 - 多个值
下面的例子为包含指定值的 title 属性的所有元素设置样式。适用于由空格分隔的属性值:
[title~=hello] { color:red; }
下面的例子为带有包含指定值的 lang 属性的所有元素设置样式。适用于由连字符分隔的属性值:
[lang|=en] { color:red; }

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
[lang|=en]
{
color:red;
}
</style>
</head>
<body>
<h1>可以应用样式:</h1>
<p lang="en">Hello!</p>
<p lang="en-us">Hi!</p>
<hr />
<h1>无法应用样式:</h1>
<p lang="us">Hi!</p>
<p lang="zh">Hao!</p>
</body>
</html>

设置表单的样式
属性选择器在为不带有 class 或 id 的表单设置样式时特别有用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style>
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;
}
</style>
</head>
<body>
<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">
</form>
</body>
</html>
CSS 选择器参考手册
选择器        描述
[attribute]        用于选取带有指定属性的元素。
[attribute=value]        用于选取带有指定属性和值的元素。
[attribute~=value]        用于选取属性值中包含指定词汇的元素。
[attribute|=value]        用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value]        匹配属性值以指定值开头的每个元素。
[attribute$=value]        匹配属性值以指定值结尾的每个元素。
[attribute*=value]        匹配属性值中包含指定值的每个元素。


如何创建 CSS
1.外部:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css" />
</head>
2.内部样式表:
<head>
<style type="text/css">
  hr {color: sienna;}
  p {margin-left: 20px;}
  body {background-image: url("images/back40.gif");}
</style>
</head>
3.内联样式:
<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>

CSS 背景:

背景色
p {background-color: gray;}

如果您希望背景色从元素中的文本向外少有延伸,只需增加一些内边距:p {background-color: gray; padding: 20px;}
练习:
<html>
<head>
<style type="text/css">
body {background-color: green}
h1 {background-color: #00ff00}
h2 {background-color: transparent}
p {background-color: rgb(250,0,255)}
p.no2 {background-color: gray; padding: 20px;border:20px solid blue;}
</style>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<p>这是段落</p>
<p class="no2">这个段落设置了内边距。</p>
</body>
</html>
background-color 不能继承,其默认值是 transparent。transparent 有“透明”之意。也就是说,如果一个元素没有指定背景色,那么背景就是透明的,这样其祖先元素的背景才能可见。
背景图像
<html>
<head>
<style type="text/css">
body {background-image:url(/i/eg_bg_04.gif);}
p.flower {background-image: url(/i/eg_bg_03.gif); padding: 25px;}
a.radio {background-image: url(/i/eg_bg_07.gif);  padding: 20px;}
</style>
</head>
<body>
<p class="flower">我是一个有花纹背景的段落。<a href="#" class="radio">我是一个有放射性背景的链接。</a></p>
<p><b>注释:</b>为了清晰地显示出段落和链接的背景图像,我们为它们设置了少许内边距。</p>
</body>

</html>


其中url为相对路径!!!

背景重复
如果需要在页面上对背景图像进行平铺,可以使用 background-repeat 属性。
属性值 repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样。repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复,no-repeat 则不允许图像在任何方向上平铺。
默认地,背景图像将从一个元素的左上角开始。请看下面的例子:
body
  { 
  background-image: url(/i/eg_bg_03.gif);
  background-repeat: repeat-y;
  }
如果不设置这个属性,则满屏重复!!!

背景定位
可以利用 background-position 属性改变图像在背景中的位置。
下面的例子在 body 元素中将一个背景图像居中放置:
body
  { 
    background-image:url('/i/eg_bg_03.gif');
    background-repeat:no-repeat;
    background-position:center;
  }
单一关键字        等价的关键字
center        center center
top        top center 或 center top
bottom        bottom center 或 center bottom
right        right center 或 center right
left        left center 或 center left
百分数值
百分数值的表现方式更为复杂。假设你希望用百分数值将图像在其元素中居中,这很容易:
body
  { 
    background-image:url('/i/eg_bg_03.gif');
    background-repeat:no-repeat;
    background-position:50% 50%;
  }

背景关联
如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。
您可以通过 background-attachment 属性防止这种滚动。通过这个属性,可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影响:
body 
  {
  background-image:url(/i/eg_bg_02.gif);
  background-repeat:no-repeat;
  background-attachment:fixed
  }
background-attachment 属性的默认值是 scroll,也就是说,在默认的情况下,背景会随文档滚动。

总结:
CSS 背景属性
属性        描述
background        简写属性,作用是将背景属性设置在一个声明中。
background-attachment        背景图像是否固定或者随着页面的其余部分滚动。
background-color        设置元素的背景颜色。
background-image        把图像设置为背景。
background-position        设置背景图像的起始位置。
background-repeat        设置背景图像是否及如何重复。
----------------------------
CSS 文本

CSS 文本属性可定义文本的外观。
通过文本属性,您可以改变文本的颜色、字符间距,对齐文本,装饰文本,对文本进行缩进,等等。

CSS 提供了 text-indent 属性,该属性可以方便地实现文本缩进。
通过使用 text-indent 属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。
这个属性最常见的用途是将段落的首行缩进,下面的规则会使所有段落的首行缩进 5 em:
p {text-indent: 5em;}
注意:一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素,图像之类的替换元素上也无法应用 text-indent 属性。不过,如果一个块级元素(比如段落)的首行中有一个图像,它会随该行的其余文本移动。

使用负值
text-indent 还可以设置为负值。利用这种技术,可以实现很多有趣的效果,比如“悬挂缩进”,即第一行悬挂在元素中余下部分的左边:
p {text-indent: -5em;}

不过在为 text-indent 设置负值时要当心,如果对一个段落设置了负值,那么首行的某些文本可能会超出浏览器窗口的左边界。为了避免出现这种显示问题,建议针对负缩进再设置一个外边距或一些内边距:
p {text-indent: -5em; padding-left: 5em;}

使用百分比值
text-indent 可以使用所有长度单位,包括百分比值。
百分数要相对于缩进元素父元素的宽度。换句话说,如果将缩进值设置为 20%,所影响元素的第一行会缩进其父元素宽度的 20%。
在下例中,缩进值是父元素的 20%,即 100 个像素:
div {width: 500px;}
p {text-indent: 20%;}
<div>
<p>this is a paragragh</p>
</div>
继承
text-indent 属性可以继承,请考虑如下标记:
div#outer {width: 500px;}
div#inner {text-indent: 10%;}
p {width: 200px;}

<div id="outer">
<div id="inner">some text. some text. some text.
<p>this is a paragragh.</p>
</div>
</div>
以上标记中的段落也会缩进 50 像素,这是因为这个段落继承了 id 为 inner 的 div 元素的缩进值。

水平对齐
text-align 是一个基本的属性,它会影响一个元素中的文本行互相之间的对齐方式。
值 left、right 和 center 会导致元素中的文本分别左对齐、右对齐和居中。


text-align:center 与 <CENTER>
您可能会认为 text-align:center 与 <CENTER> 元素的作用一样,但实际上二者大不相同。
<CENTER> 不仅影响文本,还会把整个元素居中。text-align 不会控制元素的对齐,而只影响内部内容。元素本身不会从一段移到另一端,只是其中的文本受影响。


字间隔
word-spacing 属性可以改变字(单词)之间的标准间隔。其默认值 normal 与设置值为 0 是一样的。

word-spacing 属性接受一个正长度值或负长度值。如果提供一个正长度值,那么字之间的间隔就会增加。为 word-spacing 设置一个负值,会把它拉近:
p.spread {word-spacing: 30px;}
p.tight {word-spacing: -0.5em;}

<p class="spread">
This is a paragraph. The spaces between words will be increased.
</p>

<p class="tight">
This is a paragraph. The spaces between words will be decreased.
</p>

字母间隔
letter-spacing 属性与 word-spacing 的区别在于,字母间隔修改的是字符或字母之间的间隔。
h1 {letter-spacing: -0.5em}
h4 {letter-spacing: 20px}
<h1>This is header 1</h1>
<h4>This is header 4</h4>

字符转换
text-transform 属性处理文本的大小写。这个属性有 4 个值:
none
uppercase
lowercase
capitalize
默认值 none 对文本不做任何改动,将使用源文档中的原有大小写。顾名思义,uppercase 和 lowercase 将文本转换为全大写和全小写字符。最后,capitalize 只对每个单词的首字母大写。
如果您突然决定把所有 h1 元素变为大写,这个属性就很有用。不必单独地修改所有 h1 元素的内容,只需使用 text-transform 为你完成这个修改:
h1 {text-transform: uppercase}

<html>
<head>
<style type="text/css">
  h1 {text-transform: uppercase}
  p.uppercase {text-transform: uppercase}
  p.lowercase {text-transform: lowercase}
  p.capitalize {text-transform: capitalize}
</style>
</head>
<body>
<h1>This Is An H1 Element</h1>
<p class="uppercase">This is some text in a paragraph.</p>--------------------------------------------->THIS IS SOME TEXT IN A PARAGRAPH.
<p class="lowercase">This is some text in a paragraph.</p>---------------------------------------------->this is some text in a paragraph.
<p class="capitalize">This is some text in a paragraph.</p>----------------------------------------------->This Is Some Text In A Paragraph.
</body>
</html>
----------------------------------
文本装饰
text-decoration 有 5 个值:
none
underline--------------------下划线
overline------------------会在文本的顶端画一个上划线。
line-through-------------- line-through 则在文本中间画一个贯穿线
blink------------------------blink 会让文本闪烁
none 值会关闭原本应用到一个元素上的所有装饰。通常,无装饰的文本是默认外观,但也不总是这样。例如,链接默认地会有下划线。如果您希望去掉超链接的下划线,可以使用以下 CSS 来做到这一点:a {text-decoration: none;}

还可以在一个规则中结合多种装饰。如果希望所有超链接既有下划线,又有上划线,则规则如下:
a:link a:visited {text-decoration: underline overline;}

处理空白符
white-space 属性会影响到用户代理对源文档中的空格、换行和 tab 字符的处理。
它会把所有空白符合并为一个空格。
所以给定以下标记,它在 Web 浏览器中显示时,各个字之间只会显示一个空格,同时忽略元素中的换行:
<p>This     paragraph has    many
    spaces           in it.</p>
可以用以下声明显式地设置这种默认行为:
p {white-space: normal;}
值 pre:设为white-space: pre,则保留空格和换行符
值 nowrap:会防止元素中的文本换行,除非使用了一个 br 元素。
值 pre-wrap 和 pre-line:这在以前版本的 CSS 中是没有的。这些值的作用是允许创作人员更好地控制空白符处理。

文本方向
div
  {
  direction: rtl
  }
值        描述
ltr        默认。文本方向从左到右。
rtl        文本方向从右到左。
inherit        规定应该从父元素继承 direction 属性的值。

对于行内元素,只有当 unicode-bidi 属性设置为 embed 或 bidi-override 时才会应用 direction 属性。

对齐文本
h1 {text-align: center}
h2 {text-align: left}
h3 {text-align: right}

设置行高
p.small {line-height: 90%}
p.big {line-height: 200%}
-------------------------------------------------
CSS 字体

CSS 字体属性定义文本的字体系列、大小、加粗、风格(如斜体)和变形(如小型大写字母)。
CSS 字体系列
在 CSS 中,有两种不同类型的字体系列名称:
通用字体系列 - 拥有相似外观的字体系统组合(比如 "Serif" 或 "Monospace")
特定字体系列 - 具体的字体系列(比如 "Times" 或 "Courier")
除了各种特定的字体系列外,CSS 定义了 5 种通用字体系列:
Serif 字体
Sans-serif 字体
Monospace 字体
Cursive 字体
Fantasy 字体

指定字体系列
使用 font-family 属性 定义文本的字体系列。body {font-family: sans-serif;}

p {font-family: Times, TimesNR, 'New Century Schoolbook',
     Georgia, 'New York', serif;}上面的例子中使用了单引号。只有当字体名中有一个或多个空格(比如 New York),或者如果字体名包括 # 或 $ 之类的符号,才需要在 font-family 声明中加引号。

字体风格
font-style 属性最常用于规定斜体文本。
该属性有三个值:
normal - 文本正常显示
italic - 文本斜体显示
oblique - 文本倾斜显示
p.normal {font-style:normal;}
p.italic {font-style:italic;}             italic [ɪ'tælɪk]
p.oblique {font-style:oblique;}           oblique[ə'bliːk]
italic 和 oblique 的区别
font-style 非常简单:用于在 normal 文本、italic 文本和 oblique 文本之间选择。唯一有点复杂的是明确 italic 文本和 oblique 文本之间的差别。
斜体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。与此不同,倾斜(oblique)文本则是正常竖直文本的一个倾斜版本。

字体变形
font-variant 属性可以设定小型大写字母。(variant ['veərɪənt])
小型大写字母不是一般的大写字母,也不是小写字母,这种字母采用不同大小的大写字母。
值        描述
normal        默认值。浏览器会显示一个标准的字体。
small-caps        浏览器会显示小型大写字母的字体。
inherit        规定应该从父元素继承 font-variant 属性的值。

字体加粗
font-weight 属性设置文本的粗细。使用 bold 关键字可以将文本设置为粗体。关键字 100 ~ 900 为字体指定了 9 级加粗度。100 对应最细的字体变形,900 对应最粗的字体变形。数字 400 等价于 normal,而 700 等价于 bold。
值        描述
normal        默认值。定义标准的字符。
bold        定义粗体字符。
bolder        定义更粗的字符。
lighter        定义更细的字符。
100
200
300
400
500
600
700
800
900
定义由粗到细的字符。400 等同于 normal,而 700 等同于 bold。
inherit        规定应该从父元素继承字体的粗细。

字体大小
font-size 属性设置文本的大小。font-size 值可以是绝对或相对值。
绝对值:
将文本设置为指定的大小
不允许用户在所有浏览器中改变文本大小(不利于可用性)
绝对大小在确定了输出的物理尺寸时很有用
相对大小:
相对于周围的元素来设置大小
允许用户在浏览器改变文本大小
注意:如果您没有规定字体大小,普通文本(比如段落)的默认大小是 16 像素 (16px=1em)。

使用像素来设置字体大小
通过像素设置文本大小,可以对文本大小进行完全控制:
实例
h1 {font-size:60px;}
h2 {font-size:40px;}
p {font-size:14px;}

使用 em 来设置字体大小,1em 等于当前的字体尺寸。如果一个元素的 font-size 为 16 像素,那么对于该元素,1em 就等于 16 像素。在设置字体大小时,em 的值会相对于父元素的字体大小改变。
h1 {font-size:3.75em;} /* 60px/16=3.75em */
h2 {font-size:2.5em;}  /* 40px/16=2.5em */
p {font-size:0.875em;} /* 14px/16=0.875em */
结合使用百分比和 EM,在所有浏览器中均有效的方案是为 body 元素(父元素)以百分比设置默认的 font-size 值:
body {font-size:100%;}
h1 {font-size:3.75em;}
h2 {font-size:2.5em;}
p {font-size:0.875em;}

CSS 链接

设置链接的样式:能够设置链接样式的 CSS 属性有很多种(例如 color, font-family, background 等等)。链接的特殊性在于能够根据它们所处的状态来设置它们的样式。
链接的四种状态:
a:link - 普通的、未被访问的链接
a:visited - 用户已访问的链接
a:hover - 鼠标指针位于链接的上方   hover ['hɔvə, 'hʌ-]翱翔;徘徊
a:active - 链接被点击的时刻
如:
a:link {color:#FF0000;}                /* 未被访问的链接 */
a:visited {color:#00FF00;}        /* 已被访问的链接 */
a:hover {color:#FF00FF;}        /* 鼠标指针移动到链接上 */
a:active {color:#0000FF;}        /* 正在被点击的链接 */

a:active - 链接被点击的时刻

当为链接的不同状态设置样式时,请按照以下次序规则:
a:hover 必须位于 a:link 和 a:visited 之后
a:active 必须位于 a:hover 之后

常见的链接样式
文本修饰
text-decoration 属性大多用于去掉链接中的下划线:
实例
a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:underline;}
a:active {text-decoration:underline;}

background-color 属性规定链接的背景色
a:link {background-color:#B2FF99;}
a:visited {background-color:#FFFF85;}
a:hover {background-color:#FF704D;}
a:active {background-color:#FF704D;}
-------------------------
CSS 列表
CSS 列表属性允许你放置、改变列表项标志,或者将图像作为列表项标志。
列表类型,要影响列表的样式,最简单(同时支持最充分)的办法就是改变其标志类型。
要修改用于列表项的标志类型,可以使用属性 list-style-type:    ul {list-style-type : square}
值        描述
none        无标记。
disc        默认。标记是实心圆。
circle        标记是空心圆。
square        标记是实心方块。
decimal        标记是数字。。。。。。。。。。。。

列表项图像
有时,常规的标志是不够的。你可能想对各标志使用一个图像,这可以利用 list-style-image 属性做到:ul li {list-style-image : url(xxx.gif)}

列表标志位置
可以确定标志出现在列表项内容之外还是内容内部。这是利用 list-style-position 完成的。
值        描述
inside        列表项目标记放置在文本以内,且环绕文本根据标记对齐。
outside        默认值。保持标记位于文本的左侧。列表项目标记放置在文本以外,且环绕文本不根据标记对齐。
inherit        规定应该从父元素继承 list-style-position 属性的值。

简写列表样式
可以将以上 3 个列表样式属性合并为一个方便的属性:list-style,就像这样:li {list-style : url(example.gif) square inside}

------------------------------
CSS 表格
表格边框
下面的例子为 table、th 以及 td 设置了蓝色边框:
table, th, td
  {
  border: 1px solid blue;
  }

折叠边框
border-collapse 属性设置是否将表格边框折叠为单一边框:
table
  {
  border-collapse:collapse;    [kə'læps] 详细»n. 倒塌;失败;衰竭
  }

table,th, td
  {
  border: 1px solid black;
  }
表格宽度和高度
下面的例子将表格宽度设置为 100%,同时将 th 元素的高度设置为 50px:
table
  {
  width:100%;
  }
th
  {
  height:50px;
  }
表格文本对齐
text-align (属性设置水平对齐方式,比如左对齐、右对齐或者居中)和 vertical-align (设置垂直对齐方式,比如顶部对齐、底部对齐或居中对齐)属性设置表格中文本的对齐方式。
表格内边距
td
  {
  padding:15px;
  }
表格颜色
table, td, th
  {
  border:1px solid green;
  }
th
  {
  background-color:green;
  color:white;
  }
CSS Table 属性
属性        描述
border-collapse        设置是否把表格边框合并为单一的边框。
border-spacing        设置分隔单元格边框的距离。
caption-side        设置表格标题的位置。
empty-cells        设置是否显示表格中的空单元格。
table-layout        设置显示单元、行和列的算法。
---------------------
CSS 轮廓
轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
CSS outline 属性规定元素轮廓的样式、颜色和宽度。
轮廓(Outline) 实例:
outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。注释:轮廓线不会占据空间,也不一定是矩形。outline 简写属性在一个声明中设置所有的轮廓属性。
可以按顺序设置如下属性:
outline-color
outline-style
outline-width:thin(规定细轮廓)/medium(默认。规定中等的轮廓。)/thick(规定粗的轮廓)/length(允许您规定轮廓粗细的值)/inherit(规定应该从父元素继承轮廓宽度的设置)

outline-style
值        描述
none        默认。定义无轮廓。
dotted        定义点状的轮廓。
dashed        定义虚线轮廓。
solid        定义实线轮廓。
double        定义双线轮廓。双线的宽度等同于 outline-width 的值。
groove        定义 3D 凹槽轮廓。此效果取决于 outline-color 值。
ridge        定义 3D 凸槽轮廓。此效果取决于 outline-color 值。
inset        定义 3D 凹边轮廓。此效果取决于 outline-color 值。
outset        定义 3D 凸边轮廓。此效果取决于 outline-color 值。(style可能的值)

注释:请始终在 outline-width 属性之前声明 outline-style 属性。元素只有获得轮廓以后才能改变其轮廓的颜色。

--------------------------------------------------------------------------------

CSS 框模型概述


元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。
提示:背景应用于由内容和内边距、边框组成的区域。
内边距、边框和外边距都是可选的,默认值是零。
许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。这可以分别进行,也可以使用通用选择器对所有元素进行设置:
* {
  margin: 0;
  padding: 0;
}
在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
假设框的每个边上有 10 个像素的外边距和 5 个像素的内边距。如果希望这个元素框达到 100 个像素,就需要将内容的宽度设置为 70 像素,请看下图:


#box {
  width: 70px;
  margin: 10px;
  padding: 5px;
}
提示:内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。
提示:外边距可以是负值,而且在很多情况下都要使用负值的外边距。
浏览器兼容性
一旦为页面设置了恰当的 DTD,大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。不幸的是,IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。
虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。
术语翻译
element : 元素。
padding : 内边距,也有资料将其翻译为填充。
border : 边框。
margin : 外边距,也有资料将其翻译为空白或空白边。

CSS 内边距
元素的内边距在边框和内容区之间。控制该区域最简单的属性是 padding 属性。
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%;
  }

内边距的百分比数值
可以为元素的内边距设置百分数值。百分数值是相对于其父元素的 width 计算的,这一点与外边距一样。所以,如果父元素的 width 改变,它们也会改变。\
下面这条规则把段落的内边距设置为父元素 width 的 10%:p {padding: 10%;}
例如:如果一个段落的父元素是 div 元素,那么它的内边距要根据 div 的 width 计算。
<div style="width: 200px;">
<p>This paragragh is contained within a DIV that has a width of 200 pixels.</p>
</div> 
注意:上下内边距与左右内边距一致;即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度。

例子:
<html>
<head>
<style type="text/css">
td.test1 {padding: 1.5cm}
td.test2 {padding: 0.5cm 2.5cm}
</style>
</head>
<body>
<table border="1">
<tr>
<td class="test1">
这个表格单元的每个边拥有相等的内边距。
</td>
</tr>
</table>
<br />
<table border="1">
<tr>
<td class="test2">
这个表格单元的上和下内边距是 0.5cm,左和右内边距是 2.5cm。
</td>
</tr>
</table>
</body>
</html>

td {padding-bottom: 2cm}
td {padding-bottom: 10%}
td {padding-left: 2cm}
td {padding-top: 2cm}

-------------------
CSS 边框

元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。
CSS border 属性允许你规定元素边框的样式、宽度和颜色。
元素外边距内就是元素的的边框 (border)。元素的边框就是围绕元素内容和内边据的一条或多条线。
每个边框有 3 个方面:宽度、样式,以及颜色。

边框与背景
CSS 规范指出,边框绘制在“元素的背景之上”。
CSS2 指出背景只延伸到内边距,而不是边框。后来 CSS2.1 进行了更正:元素的背景是内容、内边距和边框区的背景。大多数浏览器都遵循 CSS2.1 定义,不过一些较老的浏览器可能会有不同的表现。

边框的样式
如果没有样式,将根本没有边框。
您可以为把一幅图片的边框定义为 outset,使之看上去像是“凸起按钮”:a:link img {border-style: outset;}
定义多种样式,p.aside {border-style: solid dotted dashed double;}-------------为类名为 aside 的段落定义了四种边框样式:实线上边框、点线右边框、虚线下边框和一个双线左边框。

定义单边样式
border-top-style
border-right-style
border-bottom-style
border-left-style
因此这两种方法是等价的:
p {border-style: solid solid solid none;}
p {border-style: solid; border-left-style: none;}
注意:如果要使用第二种方法,必须把单边属性放在简写属性之后。因为如果把单边属性放在 border-style 之前,简写属性的值就会覆盖单边值 none。

边框的宽度
通过 border-width 属性为边框指定宽度。
为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em;或者使用 3 个关键字之一,它们分别是 thin 、medium(默认值) 和 thick。
设置四个边框的宽度:
p
  {
  border-style:solid;
  border-width:15px;
  }
定义单边宽度
p {border-style: solid; border-width: 15px 5px 15px 5px;}
上面的例子也可以简写为(这样写法称为值复制):p {border-style: solid; border-width: 15px 5px;}

您也可以通过下列属性分别设置边框各边的宽度:
border-top-width
border-right-width
border-bottom-width
border-left-width

没有边框
在前面的例子中,您已经看到,如果希望显示某种边框,就必须设置边框样式,比如 solid 或 outset。
那么如果把 border-style 设置为 none 会出现什么情况:p {border-style: none; border-width: 50px;}---因为如果边框样式为 none,即边框根本不存在,那么边框就不可能有宽度,因此边框宽度自动设置为 0,而不论您原先定义的是什么。

根据以下规则,所有 h1 元素都不会有任何边框,更不用说 20 像素宽了:
h1 {border-width: 20px;}由于 border-style 的默认值是 none,如果没有声明样式,就相当于 border-style: none。因此,如果您希望边框出现,就必须声明一个边框样式。

边框的颜色
 border-color 属性,它一次可以接受最多 4 个颜色值
p {
  border-style: solid;
  border-color: blue rgb(25%,35%,45%) #909090 red;
  }
如果颜色值小于 4 个,值复制就会起作用。例如下面的规则声明了段落的上下边框是蓝色,左右边框是红色:
p {
  border-style: solid;
  border-color: blue red;
  }
默认的边框颜色是元素本身的前景色。如果没有为边框声明颜色,它将与元素的文本颜色相同。另一方面,如果元素没有任何文本,假设它是一个表格,其中只包含图像,那么该表的边框颜色就是其父元素的文本颜色(因为 color 可以继承)。这个父元素很可能是 body、div 或另一个 table。
定义单边颜色
还有一些单边边框颜色属性。它们的原理与单边样式和宽度属性相同:
border-top-color
border-right-color
border-bottom-color
border-left-color
要为 h1 元素指定实线黑色边框,而右边框为实线红色,可以这样指定:
h1 {
  border-style: solid;
  border-color: black;
  border-right-color: red;
  }

透明边框
CSS2 引入了边框颜色值 transparent。这个值用于创建有宽度的不可见边框。请看下面的例子:
<a href="#">AAA</a>
<a href="#">BBB</a>
<a href="#">CCC</a>
我们为上面的链接定义了如下样式:
a:link, a:visited {
  border-style: solid;
  border-width: 5px;
  border-color: transparent;
  }
a:hover {border-color: gray;}
从某种意义上说,利用 transparent,使用边框就像是额外的内边距一样;此外还有一个好处,就是能在你需要的时候使其可见。这种透明边框相当于内边距,因为元素的背景会延伸到边框区域(如果有可见背景的话)
-----------------------------------------
CSS 外边距
围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”。
设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。
设置 p 元素的 4 个外边距:
p
  {
  margin:2cm 4cm 3cm 4cm;
  }
margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。
margin 可以设置为 auto。更常见的做法是为外边距设置长度值。下面的声明在 h1 元素的各个边上设置了 1/4 英寸宽的空白:h1 {margin : 0.25in;}
下面的例子为 h1 元素的四个边分别定义了不同的外边距,所使用的长度单位是像素 (px):h1 {margin : 10px 0px 15px 5px;}
另外,还可以为 margin 设置一个百分比数值:p {margin : 10%;}-----百分数是相对于父元素的 width 计算的。上面这个例子为 p 元素设置的外边距是其父元素的 width 的 10%。

值复制
有时,我们会输入一些重复的值:p {margin: 0.5em 1em 0.5em 1em;}
通过值复制,您可以不必重复地键入这对数字。上面的规则与下面的规则是等价的:p {margin: 0.5em 1em;}
这两个值可以取代前面 4 个值。这是如何做到的呢?CSS 定义了一些规则,允许为外边距指定少于 4 个值。规则如下:
如果缺少左外边距的值,则使用右外边距的值。
如果缺少下外边距的值,则使用上外边距的值。
如果缺少右外边距的值,则使用上外边距的值。
不必全部都应用 4 个值,例如:
h1 {margin: 0.25em 1em 0.5em;}        /* 等价于 0.25em 1em 0.5em 1em */
h2 {margin: 0.5em 1em;}                /* 等价于 0.5em 1em 0.5em 1em */
p {margin: 1px;}                        /* 等价于 1px 1px 1px 1px */
再来看另外一个例子。如果希望除了左外边距以外所有其他外边距都是 auto(左外边距是 20px):p {margin: auto auto auto 20px;}

单边外边距属性
您可以使用单边外边距属性为元素单边上的外边距设置值。假设您希望把 p 元素的左外边距设置为 20px。不必使用 margin(需要键入很多 auto),而是可以采用以下方法:
p {margin-left: 20px;}
您可以使用下列任何一个属性来只设置相应上的外边距,而不会直接影响所有其他外边距:
margin-top
margin-right
margin-bottom
margin-left
一个规则中可以使用多个这种单边属性,例如:
h2 {
  margin-top: 20px;
  margin-right: 30px;
  margin-bottom: 30px;
  margin-left: 20px;
  }
当然,对于这种情况,使用 margin 可能更容易一些:p {margin: 20px 30px 30px 20px;}

CSS 外边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。
合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
外边距合并
当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:


当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:


------------------------------------------------------------------

CSS 定位 (Positioning)
CSS 定位 (Positioning) 属性允许你对元素进行定位。
CSS 定位和浮动
CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。
定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。
一切皆为框
div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
您可以使用 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让行内元素(比如 <a> 元素)表现得像块级元素一样。还可以通过把 display 设置为 none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。除非专门指定,否则所有框都在普通流中定位。普通流中的元素的位置由元素在 (X)HTML 中的位置决定。块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
CSS position 属性
static
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed
元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。
注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。
提示:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。

CSS 浮动
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
<html>
<head>
<style type="text/css">
ul
{
float:left;
width:100%;
padding:0;
margin:0;
list-style-type:none;
}
a
{
float:left;
width:7em;
text-decoration:none;
color:white;
background-color:purple;
padding:0.2em 0.6em;
border-right:1px solid white;
}
a:hover {background-color:#ff3300}
li {display:inline}
</style>
</head>
<body>
<ul>
<li><a href="#">Link one</a></li>
<li><a href="#">Link two</a></li>
<li><a href="#">Link three</a></li>
<li><a href="#">Link four</a></li>
</ul>
<p>
在上面的例子中,我们把 ul 元素和 a 元素浮向左浮动。li 元素显示为行内元素(元素前后没有换行)。这样就可以使列表排列成一行。ul 元素的宽度是 100%,列表中的每个超链接的宽度是 7em(当前字体尺寸的 7 倍)。我们添加了颜色和边框,以使其更漂亮。
</p>
</body>
</html>
------------------------
行框和清理
浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。
因此,创建浮动框可以使文本围绕图像:

要想阻止行框围绕浮动框,需要对该框应用 clear 属性。clear 属性的值可以是 left、right、both 或 none,它表示框的哪些边不应该挨着浮动框。
为了实现这种效果,在被清理的元素的上外边距上添加足够的空间,使元素的顶边缘垂直下降到浮动框下面:


----------------------------

CSS 元素选择器

类型选择器(元素选择器)
html {color:black;}
h1 {color:blue;}
h2 {color:silver;}

选择器分组
假设希望 h2 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:h2, p {color:gray;}

通配符选择器
文档中的每个元素都为红色:* {color:red;}

声明分组
h1 {font: 28px Verdana; color: white; background: black;}
提示:在规则的最后一个声明后也加上分号是一个好习惯。在向规则增加另一个声明时,就不必担心忘记再插入一个分号。

CSS 类选择器详解
类选择器允许以一种独立于文档元素的方式来指定样式。
*.important {color:red;}
结合元素选择器
p.important {color:red;}

CSS 多类选择器
在 HTML 中,一个 class 值中可能包含一个词列表,各个词之间用空格分隔。例如,如果希望将一个特定的元素同时标记为重要(important)和警告(warning),就可以写作:
<p class="important warning">
This paragraph is a very important warning.
</p>
这两个词的顺序无关紧要,写成 warning important 也可以。
class 中同时包含 important 和 warning 的所有元素还有一个银色的背景 。就可以写作:.important.warning {background:silver;}
如果一个多类选择器包含类名列表中没有的一个类名,匹配就会失败。请看下面的规则:.important.urgent {background:silver;}


CSS ID 选择器详解
ID 选择器允许以一种独立于文档元素的方式来指定样式。
类选择器还是 ID 选择器?
区别 1:只能在文档中使用一次
区别 2:不能使用 ID 词列表.不同于类选择器,ID 选择器不能结合使用,因为 ID 属性不允许有以空格分隔的词列表。
区别 3:ID 能包含更多含义

CSS 属性选择器详解
属性选择器可以根据元素的属性及属性值来选择元素。
如果您希望把包含标题(title)的所有元素变为红色,可以写作:*[title] {color:red;}
与上面类似,可以只对有 href 属性的锚(a 元素)应用样式:a[href] {color:red;}
还可以根据多个属性进行选择,只需将属性选择器链接在一起即可。例如,为了将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色,可以这样写:a[href][title] {color:red;}------必须是同时拥有的标签,才有用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
a[href][title]
{
color:red;
}
</style>
</head>
<body>
<h1>可以应用样式:</h1>
<a title="W3School Home" href="http://w3school.com.cn">W3School</a>
<hr />
<h1>无法应用样式:</h1>
<a href="http://w3school.com.cn">W3School</a>
</body>
</html>
可以对所有带有 alt 属性的图像应用样式,从而突出显示这些有效的图像:
img[alt] {border: 5px solid red;}--------------提示:上面这个特例更适合用来诊断而不是设计,即用来确定图像是否确实有效。

例子 5:为 XML 文档使用属性选择器
属性选择器在 XML 文档中相当有用,因为 XML 语言主张要针对元素和属性的用途指定元素名和属性名。
假设我们为描述太阳系行星设计了一个 XML 文档。如果我们想选择有 moons 属性的所有 planet 元素,使之显示为红色,以便能更关注有 moons 的行星,就可以这样写:
planet[moons] {color:red;}
这会让以下标记片段中的第二个和第三个元素的文本显示为红色,但第一个元素的文本不是红色:
<planet>Venus</planet>
<planet moons="1">Earth</planet>
<planet moons="2">Mars</planet>

属性与属性值必须完全匹配
这种格式要求必须与属性值完全匹配。
如果属性值包含用空格分隔的值列表,匹配就可能出问题。
请考虑一下的标记片段:<p class="important warning">This paragraph is a very important warning.</p>
如果写成 p[class="important"],那么这个规则不能匹配示例标记。
要根据具体属性值来选择该元素,必须这样写:p[class="important warning"] {color: red;}

根据部分属性值选择
如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。
假设您想选择 class 属性中包含 important 的元素,可以用下面这个选择器做到这一点:p[class~ = "important"] {color: red;}

部分值属性选择器与点号类名记法的区别
p.important 和 p[class="important"] 应用到 HTML 文档时是等价的


子串匹配属性选择器
 CSS2 完成之后发布的,其中包含了更多的部分值属性选择器。称之为“子串匹配属性选择器”。很多现代浏览器都支持这些选择器,包括 IE7。
类型        描述
[abc^="def"]        选择 abc 属性值以 "def" 开头的所有元素
[abc$="def"]        选择 abc 属性值以 "def" 结尾的所有元素
[abc*="def"]        选择 abc 属性值中包含子串 "def" 的所有元素
提示:任何属性都可以使用这些选择器。

特定属性选择类型
*[lang|="en"] {color: red;}
上面这个规则会选择 lang 属性等于 en 或以 en- 开头的所有元素。因此,以下示例标记中的前三个元素将被选中,而不会选择后两个元素:
<p lang="en">Hello!</p>
<p lang="en-us">Greetings!</p>
<p lang="en-au">G'day!</p>
<p lang="fr">Bonjour!</p>
<p lang="cy-en">Jrooana!</p>
一般来说,[att|="val"] 可以用于任何属性及其值。
SS 选择器参考手册
选择器        描述
[attribute]        用于选取带有指定属性的元素。
[attribute=value]        用于选取带有指定属性和值的元素。
[attribute~=value]        用于选取属性值中包含指定词汇的元素。
[attribute|=value]        用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value]        匹配属性值以指定值开头的每个元素。
[attribute$=value]        匹配属性值以指定值结尾的每个元素。
[attribute*=value]        匹配属性值中包含指定值的每个元素。
后代选择器(descendant selector)又称为包含选择器。--------------------空格
后代选择器可以选择作为某元素后代的元素。
根据上下文选择元素
如果您希望只对 h1 元素中的 em 元素应用样式,可以这样写:
h1 em {color:red;}
上面这个规则会把作为 h1 元素后代的 em 元素的文本变为 红色。其他 em 文本(如段落或块引用中的 em)则不会被这个规则选中:
<h1>This is a <em>important</em> heading</h1>
<p>This is a <em>important</em> paragraph.</p>当然,您也可以在 h1 中找到的每个 em 元素上放一个 class 属性,但是显然,后代选择器的效率更高。

CSS 子元素选择器
与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。
如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器(Child selector)。
如果您希望选择只作为 h1 元素子元素的 strong 元素,可以这样写:h1 > strong {color:red;}
这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
table.company td > p
上面的选择器会选择作为 td 元素子元素的所有 p 元素,这个 td 元素本身从 table 元素继承,该 table 元素有一个包含 company 的 class 属性。
<h1>This is <em>really <strong>very</strong></em> important.</h1>

CSS 相邻兄弟选择器
相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
选择相邻兄弟
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。
例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:h1 + p {margin-top:50px;}
这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”。
html > body table + ul {margin-top:20px;}这个选择器解释为:选择紧接在 table 元素后出现的所有兄弟 ul 元素,该 table 元素包含在一个 body 元素中,body 元素本身是 html 元素的子元素。


CSS 伪类 (Pseudo-classes)
CSS 伪类用于向某些选择器添加特殊的效果。
如:超链接
<style type="text/css">
a:link {color: #FF0000}
a:visited {color: #00FF00}
a:hover {color: #FF00FF}
a:active {color: #0000FF}
</style>
a.one:link {color: #ff0000}
a.one:visited {color: #0000ff}
a.one:hover {color: #ffcc00}------------------------链接中,class为one


focuse的使用:
<style type="text/css">
input:focus
{
background-color:yellow;
}
</style>
(效果,鼠标放到input的框内,背景色变为黄色)

:first-child(首个子对象)---------------------------------------------来选择元素的第一个子元素。
<style type="text/css">
p:first-child {font-weight: bold;}
li:first-child {text-transform:uppercase;}
</style>

:lang(语言)
<style type="text/css">
q:lang(no)
{
quotes: "~" "~"
}
</style>

语法
伪类的语法:
selector : pseudo-class {property: value}
CSS 类也可与伪类搭配使用。
selector.class : pseudo-class {property: value}

伪类可以与 CSS 类配合使用:
a.red : visited {color: #FF0000}
<a class="red" href="css_syntax.asp">CSS Syntax</a>
假如上面的例子中的链接被访问过,那么它将显示为红色。

例子 1 - 匹配第一个 <p> 元素
在下面的例子中,选择器匹配作为任何元素的第一个子元素的 p 元素:
<html>
<head>
<style type="text/css">
p:first-child {
  color: red;
  } 
</style>
</head>
<body>
<p>some text</p>
<p>some text</p>
</body>
</html>
例子 2 - 匹配所有 <p> 元素中的第一个 <i> 元素
在下面的例子中,选择器匹配所有 <p> 元素中的第一个 <i> 元素:
<html>
<head>
<style type="text/css">
p > i:first-child {
  font-weight:bold;
  } 
</style>
</head>
<body>
<p>some <i>text</i>. some <i>text</i>.</p>
<p>some <i>text</i>. some <i>text</i>.</p>
</body>
</html>
例子 3 - 匹配所有作为第一个子元素的 <p> 元素中的所有 <i> 元素
在下面的例子中,选择器匹配所有作为元素的第一个子元素的 <p> 元素中的所有 <i> 元素:
<html>
<head>
<style type="text/css">
p:first-child i {
  color:blue;
  } 
</style>
</head>
<body>
<p>some <i>text</i>. some <i>text</i>.</p>
<p>some <i>text</i>. some <i>text</i>.</p>
</body>
</html>


CSS 伪元素 (Pseudo-elements)
CSS 伪元素用于向某些选择器设置特殊效果。
伪元素的语法:
selector:pseudo-element {property:value;}
CSS 类也可以与伪元素配合使用:
selector.class:pseudo-element {property:value;}
:first-line 伪元素
"first-line" 伪元素用于向文本的首行设置特殊样式。
p:first-line
  {
  color:#ff0000;
  font-variant:small-caps;
  }
注释:"first-line" 伪元素只能用于块级元素。
注释:下面的属性可应用于 "first-line" 伪元素:
font
color
background
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
clear

:first-letter 伪元素用于向文本的首字母设置特殊样式:
p:first-letter
  {
  color:#ff0000;
  font-size:xx-large;
  }
注释:"first-letter" 伪元素只能用于块级元素。
注释:下面的属性可应用于 "first-letter" 伪元素:
font
color
background
margin
padding
border
text-decoration
vertical-align (仅当 float 为 none 时)
text-transform
line-height
float
clear

伪元素和 CSS 类
伪元素可以与 CSS 类配合使用:
p.article:first-letter
  {
  color: #FF0000;
  }

<p class="article">This is a paragraph in an article。</p>
上面的例子会使所有 class 为 article 的段落的首字母变为红色。

多重伪元素
可以结合多个伪元素来使用。
段落的第一个字母将显示为红色,其字体大小为 xx-large。第一行中的其余文本将为蓝色,并以小型大写字母显示。段落中的其余文本将以默认字体大小和颜色来显示:
p:first-letter
  {
  color:#ff0000;
  font-size:xx-large;
  }


p:first-line
  {
  color:#0000ff;
  font-variant:small-caps;
  }

CSS2 - :before 伪元素
":before" 伪元素可以在元素的内容前面插入新内容。
h1:before
  {
  content:url(logo.gif);
  }

CSS2 - :after 伪元素
h1:after
  {
  content:url(logo.gif);
  }

伪元素
W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。
属性                  描述                                     CSS
:first-letter        向文本的第一个字母添加特殊样式。          1
:first-line          向文本的首行添加特殊样式。                1
:before              在元素之前添加内容。                      2
:after               在元素之后添加内容。                      2
----------------------
CSS 水平对齐

对齐块元素
块元素指的是占据全部可用宽度的元素,并且在其前后都会换行。
块元素的例子:<h1><p><div>

使用 margin 属性来水平对齐
通过将左和右外边距设置为 "auto",来对齐块元素。注释:除非已经声明了 !DOCTYPE,否则使用 margin:auto 在 IE8 以及更早的版本中是无效的。
把左和右外边距设置为 auto,规定的是均等地分配可用的外边距。结果就是居中的元素:
实例
.center
{
margin-left:auto;
margin-right:auto;
width:70%;
background-color:#b0e0e6;
}
提示:如果宽度是 100%,则对齐没有效果。

使用 position 属性进行左和右对齐
.right
{
position:absolute;
right:0px;
width:300px;
background-color:#b0e0e6;
}
注释:绝对定位元素会被从正常流中删除,并且能够交叠元素。

跨浏览器兼容性问题
当像这样对齐元素时,对 <body> 元素的外边距和内边距进行预定义是一个好主意。这样可以避免在不同的浏览器中出现可见的差异。
当使用 position 属性时,IE8 以及更早的版本存在一个问题。如果容器元素(在我们的案例中是 <div class="container">)设置了指定的宽度,并且省略了 !DOCTYPE 声明,那么 IE8 以及更早的版本会在右侧增加 17px 的外边距。这似乎是为滚动条预留的空间。当使用 position 属性时,请始终设置 !DOCTYPE 声明:

使用 float 属性来进行左和右对齐
.right
{
float:right;
width:300px;
background-color:#b0e0e6;
}
------------------------
CSS 尺寸 (Dimension)
CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度。同样,它允许你增加行间距。
属性        描述
height        设置元素的高度。
line-height        设置行高。
max-height        设置元素的最大高度。
max-width        设置元素的最大宽度。
min-height        设置元素的最小高度。
min-width        设置元素的最小宽度。
width        设置元素的宽度。

CSS 分类 (Classification)
CSS 分类属性允许你规定如何以及在何处显示元素。
CSS 分类属性 (Classification)
CSS 分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。
属性        描述
clear        设置一个元素的侧面是否允许其他的浮动元素。
cursor        规定当指向某元素之上时显示的指针类型。
display        设置是否及如何显示元素。
float        定义元素在哪个方向浮动。
position        把元素放置到一个静态的、相对的、绝对的、或固定的位置中。
visibility        设置元素是否可见或不可见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值