层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式。

1.首先先看盒装模型,如下图,平时设置的width,height是指元素内容(content)的width,height,一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界;

2.三种元素分类:block,inline,inline-block

 2.1 block

  块级元素特点:
  1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(一个块级元素独占一行)
  2、元素的高度、宽度、行高以及顶和底边距都可设置。
  3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度

  在html中<div>、<p>、<h1>、<form>、<ul> 和 <li>就是块级元素。设置display:block就是将元素显示为块级元素。

  如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。a{display:block;}

 2.2 inline

  内联元素特点:
  1、和其他元素都在一行上;
  2、元素的高度、宽度及顶部和底部边距不可设置;
  3、元素的宽度就是它包含的文字或图片的宽度,不可改变。<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。

  块状元素也可以通过代码display:inline将元素设置为内联元素

 2.3 inline-block

  内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,

  代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。
  inline-block 元素特点:
  1、和其他元素都在一行上;
  2、元素的高度、宽度、行高以及顶和底边距都可设置。

3 padding&margin

  Padding:分为上、右、下、左(顺时针)
  div{padding:1px 2px 3px 4px;}
  div{padding:10px(top-bottom) 20px(left-right);}
  div{padding:10px}
  Margin:上、右、下、左
  div{margin:20px 10px 15px 30px;}
  div{margin:10px;}
  div{margin:10px 20px;}

  如果top、right、bottom、left的值相同,如:margin:10px 10px 10px 10px;

  可缩写为:margin:10px;

  如果top和bottom值相同、left和 right的值相同,如下面代码:margin:10px 20px 10px 20px;

  可缩写为:margin:10px 20px;

  如果left和right的值相同,如下面代码:margin:10px 20px 30px 20px;
  可缩写为:margin:10px 20px 30px;

4.font

body{
  font-style:italic;
  font-variant:small-caps;
  font-weight:bold;
  font-size:12px;
  line-height:1.5em;
  font-family:"宋体",sans-serif;
  }
  这么多行的代码其实可以缩写为一句:
  body{
    font:italic small-caps bold 12px/1.5em "宋体",sans-serif;
  }

5 布局之FLOW、Float、Layer

Flow默认流动布局方式,即 一个div占一行

float浮动布局,设置元素为浮动:float:left/right

layer层布局:

层模型有三种形式:
1、绝对定位(position: absolute)
2、相对定位(position: relative)
3、固定定位(position: fixed)

position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位
position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。

相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动(虽然位置移动了 但是它的占有空间还保留在原地)。

position:fixed:表示固定定位的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化

相对于参照物进行绝对定位(用一个div作为参考对另一个div定位):
1、参照定位的元素必须是相对定位元素的前辈元素:
<div id="box1"><!--参照定位的元素-->
<div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>
从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。
2、参照定位的元素必须加入position:relative;
#box1{
width:200px;
height:200px;
position:relative;
}
3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
#box2{
position:absolute;
top:20px;
left:30px;
}

CSS 初体验之一的更多相关文章

  1. CSS初体验

    经过学习,我对css有了初步的认识.css是层叠样式表(Cascading Style Sheets的缩写,它用于HTML元素的显示形式,是W3C推出的格式化的标准技术.CSS现在已经被大多数浏览器所 ...

  2. CSS 初体验之Line-height

    p{ line-height:20px; } line-height : normal | length 参数: normal : 默认行高length : 百分比数字 | 由浮点数字和单位标识符组成 ...

  3. 范仁义web前端介绍课程---4、html、css、js初体验

    范仁义web前端介绍课程---4.html.css.js初体验 一.总结 一句话总结: html:就是网站的骨架,比如div标签.a标签等 css:style标签或者style属性里面的就是css j ...

  4. python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨

    python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...

  5. Knockout.js初体验

    前不久在网上看到一个轻量级MVVM js类库叫Knockout.js,觉得很好奇,搜了一下Knockout.js相关资料,也初体验了一下,顿时感觉这个类库的设计很有意思.接下来就搞清楚什么是Knock ...

  6. YII学习,初体验 ,对YII的一些理解.

    先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...

  7. gulp快速入门&初体验

    前言 一句话先 gulp 是一个可以简单和自动化"管理"前端文件的构建工具 先说我以前的主要工作,我主要是做游戏服务端的,用c++/python,所以我对东西的概念理解难免要套到自 ...

  8. [转]Python爬虫框架--pyspider初体验

    标签: python爬虫pyspider 2015-09-05 10:57 9752人阅读 评论(0) 收藏 举报  分类: Python(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  9. AngularJS路由系列(3)-- UI-Router初体验

    本系列探寻AngularJS的路由机制,在WebStorm下开发. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新. ...

随机推荐

  1. perl 变量详解

    http://www.perlmonks.org/?node_id=933450 use strict; use Devel::Peek; my $a; Dump($a); $a=4; Dump($a ...

  2. 面向对象设计原则OO

    面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator ...

  3. Linux(Debian) vps安装gnome桌面+VNC

      昨天转载了一篇关于在Linux VPS上安装xface桌面并VNC连接的文章,因为文章是基于CentOS系统来操作的,有热心读者希望有一个Debian下的类似的东西,这就促成了今天的这篇文字.需要 ...

  4. MySQL查询优化 (一)

    以下的文章主要讲述的是MySQL查询优化的5个十分好用方法,熟悉SQL语句的人都清楚,如果要对一个任务进行操作的话,SQL语句可以有很多种相关写法,但是不同的写法查询的性能可能会有天壤之别. 本文列举 ...

  5. 大文件读取方法(C#)

    之前都是用StreamReader.ReadLine方法逐行读取文件,自从.NET4有了File.ReadLines这一利器,就再也不用为大文件发愁了. File.ReadLines在整个文件读取到内 ...

  6. Android(java)学习笔记107-1:通过反射获得带参构造方法并且使用

    反射获得带参构造方法并且使用: 1. 获取字节码文件对象       Class c = Class.forName("cn.itcast_01.Person"); 2.获取带参构 ...

  7. U盘安装Debian 7

    网上看到好多使用U盘安装的教程,齐说不一.实践是检验真理的标准,Try it ! 下载系统镜像:http://cdimage.debian.org/cdimage/release/current/am ...

  8. 线程NSThread的使用

    // // ZYThreadViewController.h // Thread // // Created by yejiong on 15/11/4. // Copyright © 2015年 z ...

  9. SQL Server 2012 performance dashboard 安装

    微软提供了一个很好用的工具performance dashboard: 下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=29 ...

  10. 基于BaseHTTPServer的简单存储服务器

    服务器代码: from BaseHTTPServer import BaseHTTPRequestHandler from BaseHTTPServer import HTTPServer impor ...