什么是CSS?
CSS(Cascading Style Sheet)译作"层叠样式表",是用于控制或增强网页样式并允许将样式信息与网页内容分离的一种标记性语言。 使用CSS样式可以控制许多仅使用HTML无法控制的属性。当浏览器中打开一个HTML网页时,浏览器将读取该网页中的HTML标签,并根据内置的 解释规则将网页元素呈现出来。CSS决定浏览器将如何描述HTML元素的表现形式。
CSS3模块
CSS3中的模块
模块名称 | 功能描述 |
Basic box model |
定义各种与盒相关的样式 |
Line |
定义各种与直线相关的样式 |
Lists |
定义各种与列表相关的样式 |
Presentation Levels |
定义页面中元素的不同样式级别 |
Speech |
定义各种与语音相关的样式。比如音量,音速,说话间歇时间等属性 |
Background and border |
定义各种与背景和边框相关的样式 |
Text |
定义各种与文字相关的样式 |
Color |
定义各种与颜色相关的样式 |
Font |
定义各种与字体相关的样式 |
Paged Media |
定义各种页眉,页脚,页数等页面元数据的样式 |
Cascading and inheritance |
定义怎样对属性进行赋值 |
Value and Units |
将页面上各种各样的值与单位进行统一定义,以供其他模板使用 |
Image Values |
定义对image元素的赋值方式 |
2D Transforms |
在页面中实现二维空间上的变形效果 |
3D Transforms |
在页面中实现三维空间上的变形效果 |
Transforms |
在页面中实现平滑过渡的视觉效果 |
Animations |
在页面中实现动画 |
CSSOM View |
查看管理页面或页面的视觉效果,处理元素的位置信息 |
Syntax |
定义CSS样式表的基本结构,样式表中的一些语法细节,浏览器对于样式表的分析规则 |
Generated and Replaced Content |
定义怎样在元素中插入内容 |
Marquee |
定义当一些元素的内容太大,超出指定的元素尺寸时,是否以及怎样显示溢出部分 |
Ruby |
定义页面中ruby元素(用于显示拼音文字)的样式 |
Writing Modes |
定义页面中文本数据的布局方式 |
Basic User Interface |
定义在屏幕,纸张上进行输出时页面的渲染方式 |
Namespaces |
定义使用命名空间时的语法 |
Media Queries |
根据媒体类型来实现不同的样式 |
'Reader' Media Type |
定义用于屏幕阅读器之类的阅读程序时的样式 |
Multi-column Layout |
在页面中使用多栏布局方式 |
Template Layout |
在页面中使用特殊布局方式 |
Flexible Box Layout |
创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局 |
Grid Position |
在页面中使用风格布局方式 |
Generated Content for Paged Media |
在页面中使用印刷时使用的布局方式 |
在HTML中使用CSS
<li style="float: left;padding: 4px 5px 0 5px;color: black">首页</li>
<style type="text/css">
body{
margin: 0;
}
</style>
<link rel="stylesheet" href="xxx.css" type="text/css">
基础选择器
CSS语法由选择器,属性和值三部分组成.
选择器名字{
属性:值;
属性:值;
}
基础选择器含义
选择器 | 含义 |
* |
通用元素选择器,匹配任何元素 |
E |
标签选择器,匹配所有使用E标签的元素 |
.info 和 E.info |
class选择器,匹配所有class属性中包含info的元素 |
#info 和 E#info |
ID选择器,匹配所有ID属性等于footer的元素 |
- 通配符选择器
- 元素选择器
- 类选择器
- ID选择器
层次选择器
其语法如下:
选择器名称 选择符选择器名称{
属性:值;
属性:值;
}
后代选择器也被称为包含选择器,就是可以选择某元素的后代元素。
比如说 E F,前面E为祖先元素,F为后代元素。所表达的意思就是选择了E元素的所有后代F元素。请注意祖先元素和后代元素之间使用 一个空格隔开。这里F不管是E元素的子元素或者是孙元素或者更深层次的关系,都将被选中。
子选择器只能选择某元素的子元素。
比如说E>F,其中E为父元素,F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。和后代选择器(E F) 不同,E>F仅选择E元素下的F子元素,更深层次的F元素则不会被选择。
相邻兄弟选择器可以选择紧接在另一元素后的元素,而且两者需具有一个相同的父元素。
比如E+F,E和F元素具有一个相同的父元素,而且F元素在E元素后面且紧相邻,这样就可以使用相邻兄弟选择器来选择F元素。
通用兄弟选择器是CSS3新增的选择器,将选择某元素后面的所有兄弟元素,通用兄弟元素需要在同一个父元素之中。
比如E~F,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E~F选择器将选择E元素后面的所有F元素。
伪类选择器
伪类 | 说明 |
:active |
设置a对象在被用户激活时(在鼠标单击与释放之间发生的事件)时的样式 |
:visited |
设置a对象在其链接地址已被访问过时的样式 |
:focus |
设置元素获取焦点时的样式 |
:first-chilld |
设置元素的第一个子对象的样式 |
:lang |
设置对象使用特殊语言的内容的样式 |
属性选择器
元素名字[元素类型=“类型名字”]:选择器名字{
属性:值;
属性:值;
}
- [att=val] 指定特定名字的元素;
- [att*=val] 匹配val*的元素;
- [att^=val] 匹配val开头的元素,比如id为val1,等;
- [att$=val] 匹配val结尾的元素,比如id为1213val等;
- [att|=val] 匹配val开头的元素;
文本样式
文本样式
属性 | 描述 |
color |
设置文本颜色 |
text-indent |
缩进元素中文本的首行 |
line-height |
设置行高 |
letter-spacing |
设置字符间距 |
text-aline |
对齐元素中的文本 |
text-decoration |
向文本添加修饰 |
text-transform |
控制元素中的字母 |
text-shadow |
设置文本阴影 |
white-space |
设置元素中空白的处理方式 |
word-spacing |
设置字间距 |
unicode-bidi |
设置文本方向 |
direction |
设置文本方向 |
first-letter |
实现文本首字下沉效果 |
字体样式
字体样式
属性 | 描述 |
font |
简写属性,作用是把所有针对字体的属性设置在一个声明中 |
font-family |
设置字体系列 |
font-size |
设置字体的尺寸 |
font-size-adjust |
当首选字体不可用时,对替换字体进行智能缩放 |
font-stretch |
对字体进行水平拉伸 |
font-style |
设置字体风格 |
font-variant |
以小型大写字体或者正常字体显示文本 |
font-weight |
设置字体的粗细 |
盒模型
![](https://images2015.cnblogs.com/blog/877318/201610/877318-20161020102135748-1861483747.png)
- 外边距:margin
- 内边距:padding
- 边框属性:border
盒子的属性
overflow的属性值
属性值 | 描述 |
visible |
默认值。内容不会被修剪,会呈现在元素框之外 |
hidden |
内容会被修剪,并且其余内容是不可见的 |
scroll |
内容会被修剪,但浏览器会显示滚动条以便查看其余内容 |
auto |
如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容 |
inherit |
规定应该从父元素继承overflow属性的值 |
overflow-x和overflow-y的属性值
属性值 | 描述 |
visible |
不修剪内容,可能会显示在内容框之外 |
hidden |
裁减内容--不提供滚动机制 |
scroll |
裁减内容--提供滚动机制 |
auto |
如果溢出框,则应该提供滚动机制 |
no-display |
如果内容不适合内容框,则删除整个框 |
no-content |
如果内容不适合内容框,则隐藏整个内容 |
text-overflow的属性值
属性值 | 描述 |
clip |
修剪文本 |
ellipsis |
显示省略号来代表被修剪的文本 |
string |
使用给定的字符串来代表被修饰的文本 |
resize的属性值
属性值 | 描述 |
none |
用户无法调整元素的尺寸 |
both |
用户可调整元素的高度和宽度 |
horizontal |
用户可调整元素的宽度 |
vertical |
用户可调整元素的高度 |
inherit |
继承父级元素的resize的属性值 |
外轮廓的属性值
属性值 | 描述 |
outline-color |
规定边框的颜色 |
outline-style |
规定边框的样式 |
outline-width |
规定边框的宽度 |
outline-offset |
规定外轮廓的偏移位置的数值 |
inherit |
继承父级元素的outline的属性值 |
outline-style的属性值
属性值 | 描述 |
none |
默认。定义无轮廓 |
dotted |
定义点状的轮廓 |
dashed |
定义虚线轮廓 |
solid |
定义实线轮廓 |
double |
定义双线轮廓。双线的宽度等同于outline-width的值 |
groove |
定义3D凹槽轮廓。此效果取决于outline-color值 |
ridge |
定义3D凸槽轮廓。此效果取决于outline-color值 |
inset |
定义3D凹边轮廓。此效果取决于outline-color值 |
ridge |
定义3D凸边轮廓。此效果取决于outline-color值 |
inherit |
规定应该从父级元素继承轮廓样式的设置 |
outline-width的属性值
属性值 | 描述 |
thin |
规定细的轮廓 |
medium |
默认。规定中等的轮廓 |
thick |
规定粗的轮廓 |
length |
允许你规定轮廓粗细的值(只能为正值) |
inherit |
规定应该从父元素继承轮廓宽度的设置 |
box-shadow的属性值
属性 | 描述 |
h-shadow |
必需。水平阴影的位置。允许负值 |
v-shadow |
必需。垂直阴影的位置。允许负值 |
blur |
可选。模糊距离 |
spread |
可选。阴影的尺寸 |
color |
可选。阴影的颜色 |
inset |
可选。将外部阴影(outset)改为内部阴影 |
背景属性
背景的基本属性
属性 | 描述 |
background-color |
设置元素的背景颜色 |
background-image |
把图像设置为背景 |
background-repeat |
设置对象的背景图片是否平铺 |
background-attachment |
背景图像是否固定或者随着页面的其余部分滚动 |
background-position |
设置背景图像的起始位置 |
background |
简写属性,作用是将背景属性设置在一个声明中 |
CSS3新增的背景属性
属性 | 描述 |
background-clip |
规定背景的绘制区域 |
background-origin |
规定背景图片的定位区域 |
background-size |
规定背景图片的尺寸 |
background-break |
规定内联元素的背景图像进行平铺时的循环方式 |
定位与布局
定位与布局的基本属性
定位与布局的基本属性
属性 | 描述 |
margin |
在一个声明中设置所有的外边距属性 |
padding |
在一个声明中设置所有的内边距属性 |
bottom |
设置定位元素下外边距边界与其包含块下边界之间的位移 |
clear |
规定元素的哪一侧不允许有其他浮动元素 |
clip |
剪裁绝对定位元素 |
cursor |
规定要显示的光标的类型(形状) |
display |
规定元素应该生成的框的类型 |
float |
规定框是否浮动 |
overflow |
规定当内容溢出元素框时发生的事情 |
position |
规定元素的定位类型 |
vertical-align |
设置元素的垂直对齐方式 |
visibility |
规定元素是否可见 |
z-index |
设置元素的堆叠顺序 |
- 定位布局
- static:static为position的默认属性值,没有定位,元素出现在正常流中(忽略top,bottom,left,right或者z-index声明)
- absolute:absolute可用于生成绝对定位的元素,相对于static定位外的第一个父元素进行定位。元素位置通过left,top,right,bottom属性进行设置。
- fixed:fixed可用于生成固定定位的元素,即相对于浏览器窗口进行定位。元素的位置通过top,bottom,right,left进行定义。
- relative:relative可用于生成相对定位的元素,相对于其正常位置进行定位。
- inherit:inherit用于从父元素继承position属性的值。
多列布局
多列布局的基本属性
属性 | 描述 |
column-count |
规定元素应该被分隔的列数 |
column-fill |
规定如何填充列 |
column-gap |
规定列之间的间隔 |
column-rule |
设置所有column-rule-*属性的简写属性 |
column-rule-color |
规定列之间规则的颜色 |
column-rule-style |
规定列之间规则的样式 |
column-rule-width |
规定列之间规则的宽度 |
column-span |
规定元素应该横跨的列数 |
column-width |
规定列的宽度 |
columns |
设置column-width和column-count的简写属性 |