层叠样式表,是一种样式表语言,用来描述HTMIL和XML文档的呈现。随看HTML的发展,为了满足页面设计者的要求,HTML添加了很多显示功能,但是随着这些功能的增加,使得HTML越来越杂乱,HTML页面也越来越臃肿,CSS便随之诞生,CSS用于简化HTML标签,把关于样式部分的内容提取出来,进行单独的控制,使结构与样式分离开发
CSS是以HTMIL为基础,设置网页的外观显示样式,如字体、颜色、背景的控制及整体的布局等,和HTML类似,CSS也不是真正的编程语言,甚至不是标记语言。它是一门样式表语言。当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。
标签引入样式,内部遵循CSS样式规范。在HTML中使用CSS选择器引用样式
标签引入为外部CSS文件。在HTML中使用CSS选择器引入样式CSS选择器 {属性1:属性值; 属性2:属性值;...}
大小有 px 和 % 两种写法,px 指屏幕像素值,% 指当前标签基于其父标签的百分比
一个标签可以设置一个id属性和id值(类似于每个人的身份证号,具有唯一性),然后可以通过id选择器找到对应的标签并为其添加CSS样式
# id1{
属性1:属性值1;
属性2:属性值2;
...
}
一个类名可以应用到多个标签,然后可以通过class选择器找到对应的标签并为其添加CSS样式,适用于多个标签使用同一份样式的情况
. class2{
属性1:属性值1;
属性2:属性值2;
...
}
不管HTML还是CSS,都是从上向下执行,下面的样式会覆盖上面的样式
可以直接通过标签名找到对应的标签并为其添加CSS样式
div {
属性1:属性值1;
属性2:属性值2;
...
}
优先级 行间样式引入 > 内部引入
使用通配符来广泛的查找标签,并为匹配到的标签添加CSS样式
* {
background-color: red;
}
查找某一个标签内部所有符合条件的标签的选择器,同样也是用来定位到标签并添加CSS样式
外层标签(li) 内层标签(a) {
background-color: red;
}
选择所有父级是 选择所有和当前标签紧挨着的标签,添加CSS样式 当前标签后面所有的兄弟标签,添加CSS样式 可以根据标带有指定属性或属性值确定标签,并添加CSS样式 当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,通过逗号 (,)来进行分组设置 多种选择器可以混合起来使用,比如:.c1类内部所有p标签字体设置为红色 元素之前插入内容*/ 元素之后插入内容*/ before和after多用于清除浮动。 块级标签才能设置宽度,内联标签的宽度由内容来决定。 颜色属性被用来设置文字的颜色。 颜色是通过CSS最经常的指定: 常用的为去掉a标签默认的自划线: a { text-decoration: none; } 将段落的第一行缩进 32像素 边框属性有 通常使用简写方式: 边框样式有 除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示: 圆角边框 用于控制HTML元素的显示效果。 display:"none"与visibility:hidden的区别: visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。 margin: 用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。 padding: 用于控制内容与边框之间的距离; Border(边框): 围绕在内边距和内容外的边框。 Content(内容): 盒子的内容,显示文本和图像。 补充 padding 的常用简写方式: 提供一个,用于四边;提供两个,第一个用于上-下,第二个用于左-右; 在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。 特点: 取值: clear属性只会对自身起作用,而不会影响其他元素 用法 文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行 内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。 static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的 相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据 position:relative 的一个主要用法:方便绝对定位元素找到参照物。 设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素 没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。 如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即 另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。 对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出 现滚动条时,对象不会随着滚动。而其层叠通过z-index属性定义。 一个元素若设置了 position:absolute/fixed; 则该元素就不能设置float。这是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。 用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。 元素就是标签,布局中常用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。 块元素,也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd等等都是块元素,它在布局中的行为: 内联元素,也可以称为行内元素,布局中常用的标签如:a、span、em、b、strong、i等等 都是内联元素,它们在布局中的行为: 内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和 input元素的行为类似这种元素,但是也归类于内联元素,我们可以用display属性将块元素或者内联元素转化成这种元素。它们在布局中表现的行为: 这三种元素,可以通过display属性来相互转化,不过实际开发中,块元素用得比较多,所以我们经常 把内联元素转化为块元素,少量转化为内联块,而要使用内联元素时,直接使用内联元素,而不用块 元素转化了。元素,添加CSS样式
div>p {
color: red;
}
毗邻选择器
标签(div)+紧挨的标签(p){
color:red;
}
弟弟选择器
当前标签(#i1)~兄弟标签(p) {
color:red;
}
属性选择器
标签[属性] {
color:red;
}
标签 [属性=“属性值”]{
color:red;
}
分组和嵌套
分组
标签1,标签2 {
color:red;
}
嵌套(和 后代选择器 的区别?)
.c1 p {
color:red;
}
伪类选择器
/* 未访问的链接 */
a:link {
color: #FF0000;
}
/* 已访问的链接 */
a:visited {
color: #00FF00;
}
/* 鼠标移动到链接上 */
a:hover {
color: #FF00FF;
}
/* 选定的链接 */
a:active {
color: #0000FF;
}
/*input输入框获取焦点时样式*/
input:focus {
outline: none;
background-color: #eee;
}
伪元素选择器
first-letter
常用的给首字母设置特殊样式p:first-letter {
font-size: 48px;
color: red;
}
before
/*在每个
after
/*在每个
选择器的优先级
CSS 属性相关
宽和高
width
属性可以为元素设置宽度。 height
属性可以为元素设置高度。
文字字体
font-family
可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。字体大小
font-size
设置字体的大小,如果设置成inherit表示继承父元素的字体大小值。字重(粗细)
font-weight
用来设置字体的字重(粗细)
值
描述
normal
默认值,标准粗细
bold
粗体
bolder
更粗
lighter
更细
100 - 900
设置具体粗细,400 等同于 normal ,而 700 等同于 bold
inherit
继承父元素字体的粗细值
文本颜色
文字属性
text-align
属性规定元素中的文本的水平对齐方式。
left
左边对齐,默认值right
右对齐center
居中对齐justify
两端对齐文字装饰
text-decoration
属性用来给文字添加特殊效果.
none
默认,标准文本underline
定义文本下划线overline
定义文本上划线line-through
定义文本删除线inherit
继承父元素的对应属性值
首行缩进
p{
text-indent:32px;
}
背景属性
/*背景颜色*/
background-color: red;
/*背景图片*/
background-image: url('1.jpg');
/*背景重复
repeat(默认):背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
9*/
background-repeat: no-repeat;
/*背景位置*/
background-position: right top;
/*background-position: 200px 200px;*/
background:#ffffff url('1.png') no-repeat right top;
边框
边框属性
border-width
border-style
border-color
border-radius
等#i1 { border: 2px solid red; }
none
无边框dotted
点状虚线边框dashed
矩形虚线边框solid
实线边框#i1 {
border-top-style:dotted;
border-top-color:red;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:none;
}
border-radius
将``border-radius`设置为长或高的一半即可得到一个圆形。display 属性
值
意义
display:“none”
HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。
display:“block”
默认占满整个页面宽度,如果设置了指定宽度,则 会用margin填充剩下的部分。
display:“inline”
按行内元素显示,此时再设置元素的 width、height、margin-top、margin-botton 和 float 属性都不会有什么影响。
display:“inline-block”
使元素同时具有行内元素和块级元素的特点。
display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏 了,而且该元素原本占用的空间也会从页面布局中消失。CSS盒子模型(丄)
margin 外边距
.margin-test {
margin-top:5px;
margin-right:10px;
margin-bottom:15px;
margin-left:20px;
}
/* 一般使用简写 */
.margin-test {
margin: 5px 10px 15px 20px; /* 顺序:上右下左 */
}
/* 常见居中 */
.mycenter {
margin: 0 auto;
}
padding 内填充
.padding-test {
padding-top: 5px;
padding-right: 10px;
padding-bottom: 15px;
padding-left: 20px;
}
/* 一般使用简写 */
.padding-test {
padding: 5px 10px 15px 20px;
}
提供三个,第一个用于上,第二个用于左-右,第三个用于下;提供四个参数值,将按上-右-下-左的顺序作用于四边;float 浮动
left
向左浮动right
向右浮动none
默认值,不浮动clear
clear
属性规定元素的哪一侧不允许其他浮动元素。
overflow溢出属性
值
描述
visible
默认值。内容不会被修剪,会呈现在元素框之外。
hidden
内容会被修剪,并且其余内容是不可见的。
scroll
内容会被修剪,但是浏览器会显示滚动条以便查看 其余的内容。
auto
如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit
规定应该从父元素继承 overflow 属性的值。
CSS盒子模型(丅)
定位(position)
文档流
static
left、top
等值是不起作用的。relative(相对定位)
top,right,bottom,left
等属性在正常文档流中偏移位置。而其层叠通过z-index
属性定义,值越大,越靠前(相对于屏幕前的你)。
absolute(绝对定位)
元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在 正常流中生成何种类型的框。
父级为自适应的,那我子元素就设置 position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。fixed(固定)
z-index 设置对象的层叠顺序。
opacity
块元素、内联元素、内联块元素
块元素
内联元素
内联块元素
应用
制作一个导航栏
<style>