关于css

css基础知识回顾


层叠样式表(英语:Cascading Style Sheets,简写CSS),又称串样式列表、级联样式表、串接样式表、层叠样式表、階層式樣式表,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。目前最新版本是CSS2.1,为W3C的推荐标准。CSS3现在已被大部分现代浏览器支持,而下一版的CSS4仍在开发过程中。(引自维基百科)

1.css 样式由选择符和声明组成,而声明又由属性和值组成,选择器{属性:值}

2.声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔

3.注释方式 //

1、 css的引入方式:

**

① <style></style>标签引入
 缺点:不利于复用,常用在单一页面开发

② 标签内部引入方式(行间样式)用于修改别人的代码,有冲突的样式,标签内部的引入方式高于style标签的引入方式以及外部引入方式
缺点:不利于维护,没有样式内容分离,代码陈余,不利于阅读
优点:优先级高,不会被其他样式覆盖和影响

③ 外部引入<link rel="stylesheet" type="text/css" href="css/....css"/>
link是单标签有两个属性,rel:类型 stylesheet表示样式 type:关联文件的类型是css,href:表示路径。
缺点:增加了一次请求
优点:完全实现内容样式分离,模块儿化,利于复用

④import url(reset.css)不常用(如果有相关自动化工具,不影响性能时可以使用)

2、 罗列一下css样式表中的元素:

宽高,背景,边框

width: 00px;宽 (px是单位)

height: 00px;高 (px是单位,以下类同)

background-color:  ;背景颜色 (后面可以跟16进制颜色值和rgb颜色值或颜色的英文名,例如red)

background-image:url("路径");

background-repeat:值;值一般有三个repeat-x,repeat-y no-repeat来说明背景图片的平铺情况

background-position:X轴位移,Y轴位移;后可以跟多少px值,也可以跟left,right,center,top,bottom;

background:color image position 是否平铺;这是background的组合写法;

border-color:颜色值;

border-style:样式值;(solid实线,dashed虚线,dotted点线‘ie6不支持点线’)

border-width:值;

border:width color style; border 的组合写法;

border-radius:值;值的类型可以是数字加px也可以是%比,一般50%表示圆;

边距 分为外边距margin和内边距padding

内边距padding

padding-top:;

padding-right:;

padding-bottom:;

padding-left:;

padding:T R B L ;padding的组合写法,成为TRBL法则;

padding:10px; 上下左右的内边距都为10px;

padding:10px 20px; 上下的内边距是10px,左右的内边距是20px;

padding:10px 20px 30px; 上 左右 下;

注意:没有设宽度时,自动默认为100%,宽度不定right不可设!内边距是可以显示背景的,影响盒子的宽度!

外边距margin

margin-top:; margin-right:; margin-bottom:; margin-left:;

margin:10px; margin:10px 20px; margin:10px 20px 30px;(同内边距)

遵循TRBL法则;

注意:外边距影响的是盒子的位置,不会影响宽高!子级的首元素margin-top会传递给父级,解决方法:用父级的padding-top或者子级加边框或者overflow

盒模型(可以把我们的每一个标签都理解为一个盒子)

盒子的大小 = border + padding + width/height ;

盒子宽度 = 左border + 左padding + width + 右padding + 右border;

盒子高度 = 上border + 上padding + height + 下padding + 下border ;

标准盒模型
IE盒模型

IE的盒模型同样也包括content,padding,border,margin,但是和标准浏览器唯一不同的地方就是content包含了border和padding。

浮动 float

float:left;向左浮  clear:left;清除左浮动   但浮动的窗口位置不动

float:right;向右浮  clear:right;清除右浮动

float:none; 不浮   clear:both; 将内容重新赋到父级中

float会对父级和父级的同级以及下面样式产生影响,不可控(因为父级没有被撑开)行级标签浮动后可以设置宽高

清楚浮动的方法 1.在父级增加overflow:hidden; 

                2.在父级的同级写clearfix <class="clearfix">;

                3.给父级加height(必须精确知道height);

定位position:

position:relative;相对自身当前的位置移动

left,right,top,bottom 可以对块级标签行级标签使用 不会改变标签属性 不对元素自身造成影响

z-index表示当前的标签的层级  取值数字可以为负数  必须使用position属性才可以使用

position:absolute; 绝对定位

该情况可以设置宽高百分比 如果没有父级设置position:relative; 则当前标签从body可视区域为起点

如果有父级标签设置position:relative; 则是以父级标签(可以是上上级 不一定是父级)位置为起点

脱离文档流,改变标签属性 使之类似于inline-block

关于文本css样式

font-size:值; 多少px用来表示字体的大小

font-color:颜色值;

font-style:值; 这个值一般为 normal正常  italic斜体

font-family:值; 这个值为字体类型,可以跟多个字体类型

font-weight:值; normal正常

line-height:值;一般为父级的高度,用来垂直居中

text-align:值;一般为center用来水平居中

其他常用样式

opacity:0~1; 透明度 0为完全透明,1为完全不透明,就是正常显示状态

filter:alpha(opacity=sqlN) sqlN的值为0到100 (IE下的透明度)

clear:left right both; 清除 左 右 两边的浮动;

overflow:hidden; 用来清楚浮动 隐藏溢出部分

3.css法则:同等优先级,后面的样式覆盖前面的样式

①标签选择器:直接作用于选择的标签元素,是一个集合,如 #div{ }; 优先级为 1

②ID选择器:直接作用于该名称的标签元素,ID名是唯一的,所以直对该名称的标签有效; 优先级 1000 永远都比标签选择器高

③【(派生)(层级选择器)父子级选择器】层级选择器 如 div h1{ }; 找到的是div下面所有的h1包括h1的子孙

④类选择器: 优先级100

<div class="header"></div>
<div class="header sex age"></div>

这个时候选择器就可以用 .header{ } 这个选择起就叫类选择器,这样写的话选择器选择的就是上面两个div标签,class命名是可以重复的,也可以有很多个class名,像第二个div标签里面的名字不分顺序。

⑤群组选择器:body,#div,#lianjie,.sex{ } 由逗号隔开,表示这些标签全部选中 偏重于代码优化

⑥通配选择器: { }所有的标签都是该样式,优先级比标签还低,通常用来清除一些默认属性如 {margin:0px;}这样就把所有标签的默认margin设置为0

⑦伪类选择器::link :visited :hover :active :focus :target :lang

:link 超链接未被访问过

:visited 超链接被访问过

:hover 鼠标在元素上面

:active 鼠标在元素上按着

以上4个伪类选择器有一定的顺序,请不要随意改变

:focus 焦点在元素上

:target 元素被URL标记(css3新增的类)

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

优先级总结

优先级:通配选择器(慎用) < 标签选择器 < 类选择器 < ID选择器(少用) < 层选择器 < 群组选择器 < 行间样式 < ! important(直接跟在属性后面不用空格,例如:color:red!important;)

4、reset样式表

①reset样式表的引入方式:等同于css的引入方式

<link rel="stylesheet" type="text/css" href="路径"/>

注意:该引入方式一般放在css引入方式的上边

②作用:用于标签默认样式的初始化,方便开发人员控制元素!

③常用的reset样式表

body{
    margin:0px; 初始化body的margin为0
    font-family:16px/1.5 Tohoam,Arila,san-serif; 初始化body的字体大小为16px,1.5倍的行高以及字体样式
}

ol,ul,dl,dd,dt{
    margin:0px; 初始化ol,ul的外边距为0
    padding:0px; 初始化ol,ul的内边距为0 
    list-style-type:none; 把ol,ul的默认样式去掉 ol前面的 1. 2. 3. 等等以及 ul前面的 . . .
}
image{
    border:none; 去掉图片外面的边框(在IE下)
}
a{
    text-decoration:none; 去掉链接的下划线
}
h1,h2,h3,h4,h5,h6,p{
    margin:0px; 去掉标题以及P标签的margin(外边距)
}

5.