CSS
简介
-
CSS,即层叠样式表 (Cascading Style Sheets),样式定义如何显示 HTML 元素
-
外部样式表可以极大提高工作效率,通常存储在 CSS 文件中。
-
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:
-
CSS声明总是以分号(;)结束,声明总以大括号({})括起来:
p {color:red;text-align:center;}
- CSS注释以 /* 开始, 以 */ 结束。
选择器
1. id选择器
可以为标有特定id的HTML元素指定特定的样式。HTML元素以id属性来设置id选择器,CSS 中id选择器以 “#” 来定义。
#para1
{
text-align:center;
color:red;
}
ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
2. class选择器
class 选择器用于描述一组元素的样式,在 CSS 中,类选择器以一个点**"."**号显示。
在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。
.center {
text-align:center;}
也可以指定特定的HTML元素使用class。在以下实例中, 所有的 p 元素使用class=“center” 让该元素的文本居中:
p.center {
text-align:center;}
3. 元素选择器
元素选择器通过标签名选择元素。
<style>
p{
color:red;
}
</style>
<p>p元素</p>
<p>p元素</p>
<p>p元素</p>
背景
- 背景颜色:background-color
- 背景图像:background-image
(1)默认背景图像水平或者垂直方向平铺重复显示;
body {
background-image:url('paper.gif');}
(2)如果图像只在水平方向平铺(repeat-x),则:background-repeat:repeat-x;
(3)取消平铺:background-repeat:no-repeat;
(4)改变图像在背景中的位置: background-position
(5)CSS3允许在元素上添加多个图像
body
{
background-image:url(img_flwr.gif),url(img_tree.gif);
}
- background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。
- 简写属性
body {background:#ffffff url(‘img_tree.png’) no-repeat right top;}
简写时属性顺序:background-color>image> repeat> attachment> position
- 背景平铺background-size:contain
通过拉伸实现,会有失真
同时,在CSS3中,background-size可以设置背景图像的大小,可以指定像素或百分比大小。
div
{
background:url(img_flwr.gif);
background-size:80px 60px;
background-repeat:no-repeat;
}
- background-origin 属性指定了背景图像的位置区域。
content-box, padding-box和 border-box区域内可以放置背景图像。
div
{
background:url(img_flwr.gif);
background-repeat:no-repeat;
background-size:100% 100%;
background-origin:content-box;
}
- 渐变
1)CSS3 定义了两种类型的渐变(gradients):
- 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
- 径向渐变(Radial Gradients)- 由它们的中心定义
以线性渐变为例,从上到下(默认情况下),语法:
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
//从上到下的线性渐变
#grad {
height: 200px;
background-image: linear-gradient( red , yellow);
}
//从左到右的线性渐变
#grad1 {
height: 200px;
background-image: linear-gradient(to right, red , yellow);
}
//从左上角到右下角的线性渐变
#grad {
height: 200px;
background-image: linear-gradient(to bottom right, red, yellow);
}
2)角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。
//语法
background-image: linear-gradient(angle, color-stop1, color-stop2);
//从右到左:red-->yellow
#grad {
background-image: linear-gradient(-90deg, red, yellow);
}
文本
- 文本颜色:color
- 文本对齐方式:text-align
当text-align设置为"justify",为两端对齐
-
文本修饰:text-decoration
overline 上划线
line-through 删除线
underline 下划线
从设计的角度看,text-decoration属性主要是用来删除链接的下划线,不建议强调指出不是链接的文本,因为这常常混淆用户。 -
文本转换:text-transform用来指定在一个文本中的大写、小写字母和首字母大写。
(uppercase、capitalize、lowercase)
<style>
p.uppercase {
text-transform:uppercase;}
p.lowercase {
text-transform:lowercase;}
p.capitalize {
text-transform:capitalize;}
</style>
</head>
<body>
<p class="uppercase">This is some text.</p>
<p class="lowercase">This is some text.</p>
<p class="capitalize">This is some text.</p>
</body>
- 文本缩进:text-indent用来指定文本的首行缩进。
- 行高:line-height
- 字符间距:letter-spacing
- 字间距:word-spacing
- 垂直对齐:vertical-align
- 文本阴影:text-shadow
- 文本方向:direction
- 空白格:white-space
normal 默认。多个空白格或者换行符会被合并成一个空白格
pre 有多少空白格,显示多少空白格,相当于pre标签,如果长度超出父容器也不会换行。
pre-wrap 有多少空白格,显示多少空白格,相当于pre标签,如果长度超出父容器,会换行。
nowrap 一直不换行,直到使用br
- 字体
- 字体系列:font-family
(1)font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,他将尝试下一种字体。
(2)注意: 如果字体系列的名称超过一个字,它必须用引号,如Font Family:“宋体”。
- 字体样式:font-style
如:normal标准字体;italic 斜体
- 字体大小:font-size
1em的默认大小是16px,通过下面这个公式将像素转换为em:px/16=em
- 字体粗细:font-weight
- 字体转变:font-variant
链接
- 链接样式
(1)a:link - 正常,未访问过的链接
(2)a:visited - 用户已访问过的链接
(3)a:hover - 当用户鼠标放在链接上时
(4)a:active - 链接被点击的那一刻
当设置为若干链路状态的样式,也有一些顺序规则:
- a:hover 必须跟在 a:link 和 a:visited后面
- a:active 必须跟在 a:hover后面
列表样式
- 列表项标记list-style-type
<style>
ul.a {
list-style-type:circle;}
ul.b {
list-style-type:square;}
ol.c {
list-style-type:upper-roman;}
ol.d {
list-style-type:lower-alpha;}
</style>
- 列表项图片标记list-style-image
ul
{
list-style-image: url('sqpurple.gif');
}
- 列表项标志位置list-style-position
- 列表-简写属性
优先顺序:list-style-type >list-style-position >list-style-image
ul
{
list-style: square url("sqpurple.gif");
}
- CSS3多列
CSS3 可以将文本内容设计成像报纸一样的多列布局,有以下几个 CSS3 的多列属性:
- column-count 需要分割的列数
- column-gap 列与列间的间隙
- column-rule-style 列与列间的边框样式
- column-rule-width 列与列间的边框宽度
- column-rule-color 列与列间的边框颜色
- column-rule 是column-rule-* 所有属性的简写
- column-span 指定元素跨越多少列
- column-width 指定列的宽度
表格
- 表格边框border:1px solid black
- 折叠边框(折叠成一个单一的边框)border-collapse
separate:边框分隔;collapse:边框合并
盒子模型
- 盒子模型