CSS基础总结(2)

1. 文字段落排版

1.字体body{font-family:"宋体";} body{font-family:"Microsoft Yahei";}body{font-family:"微软雅黑";}英文的兼容性更好
2.字号颜色body{font-size:12px;color:#666}大小一般都用像素单位,颜色有多重表达方式。可用十六进制数,或者rgb(r,g,b)形式每个分量0~255.或者使用名称red,blue等。
3.粗体斜体下划线删除线:font-weight:bold; font-style:italic; text-decoration:underline; text-decoration:line-through;

4.缩进行间距文字间距对齐:text-indent:2em;line-height:1.5em;letter-spacing:50px;word-spacing:50px;前一个是字母间距后一个是单词。text-align:center/right/left;为块儿状元素的内容设置对齐方式

2.元素分类

在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素
常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>
块级元素特点:
1.每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
2.元素的高度、宽度、行高以及顶和底边距都可设置。
3.元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
4.使用display:block;可设置块儿状元素
内联元素特点:
1.和其他元素都在一行上;
2.元素的高度、宽度及顶部和底部边距不可设置;
3.元素的宽度就是它包含的文字或图片的宽度,不可改变
4.display:inline;设置内联元素
内联块状元素特点:
1.和其他元素都在一行上;
2.元素的高度、宽度、行高以及顶和底边距都可设置。
3.display:inline-block;设置内联块状

3. 盒模型


通过上图知道一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色.如border:2px solid red;border-style(边框样式)常见样式有:dashed(虚线)| dotted(点线)| solid(实线)。也可以分开写:

1
2
3
4
5
div{
border-width:2px;
border-style:solid;
border-color:red;
}

每个部分都是四个方向的并且可以分别设置,如border-top,padding-right,也可以用margin,padding,设置四个方向.padding和margin的区别,padding在边框里,margin在边框外。
比如下面代码:

1
2
3
4
5
6
div{
width:200px;
padding:20px;
border:1px solid red;
margin:10px;
}

素的实际长度为:10px+1px+20px+200px+20px+1px+10px=262px。在chrome浏览器下可查看元素盒模型,如下图:

4.布局模型

在网页中,元素有三种布局模型:
1.流动模型(Flow)是默认的网页布局模式。特点:第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

2.浮动模型 (Float)可以用 CSS 定义为浮动

1
2
3
4
5
6
7
8
div{
width:200px;
height:200px;
border:2px red solid;
float:left;
}
<div id="div1"></div>
<div id="div2"></div>

效果:

3.层模型(Layer)CSS定义了一组定位(positioning)属性来支持层布局模型。

  • 绝对定位需要设置position:absolute(表示绝对定位)这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口
  • 相对定位需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。
  • 固定定位需要设置position:fixed(表示固定定位),与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。
  • Relative与Absolute组合使用。使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以。使用position:relative来帮忙,但是必须遵守下面规范:参照定位的元素必须是相对定位元素的前辈元素:参照定位的元素必须加入position:relative;定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>相对参照元素进行定位</title>
    <style type="text/css">
    div{border:2px red solid;}
    #box1{
    width:200px;
    height:200px;
    position:relative;

    }
    #box2{
    position:absolute;
    top:20px;
    left:30px;

    }
    #box3{
    width:200px;
    height:200px;
    position:relative;
    }
    #box4{
    width:99%;
    position:absolute;
    bottom:0px;


    }
    </style>

    </head>

    <body>
    <div id="box1">
    <div id="box2">相对参照元素进行定位</div>
    </div>

    <div id="box3">
    <img src="http://img.mukewang.com/541a7d8a00018cf102000200.jpg">
    <div id="box4">当我还是三年级的学生时是一个害羞的小女生</div>
    </div>
    </body>
    </html>

效果:

本节完