层叠样式表 (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. 【M4】非必要不提供default 构造方法

    1.default 构造方法意味着,没有外来信息的情况下,进行初始化,构造出一个对象.对于有些对象是很合理的,比如数值之类的对象,可以初始化为0:对于指针之类的对象,初始化为null:对于集合如vec ...

  2. Android监听SD卡文件变化

    今天再一次使用到FileObserver,上一次使用还是很久之前了.总结一下FileObserver里留的一些“坑”   1.FileObserver只能监听一个目录下的“一级”子文件,也就是说Fil ...

  3. grunt自动化工具

    Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. 安装 CLI 首先,需要先将Grunt命令行(CLI)安装到全局环境中. npm install - ...

  4. Windows下用Git下载android源码 转载

    http://my.oschina.net/jiadebin/blog/52631 1.首先你的电脑要安装好git,这个请参考git官网. 2.打开git命令窗口输入git clone http:// ...

  5. 十六款值得关注的NoSQL与NewSQL数据库--转载

    原文地址:http://tech.it168.com/a2014/0929/1670/000001670840_all.shtml [IT168 评论]传统关系型数据库在诞生之时并未考虑到如今如火如荼 ...

  6. 使用hibernate自动创建Mysql表失败原因

    1.使用 schemaExport(hibernate5.2.3)创建Mysql表 @Test public void testSchemaExport() { ServiceRegistry ser ...

  7. Stupid Tower Defense

    Problem Description FSF is addicted to a stupid tower defense game. The goal of tower defense games ...

  8. LeetCode 263

    Ugly Number Write a program to check whether a given number is an ugly number. Ugly numbers are posi ...

  9. nodejs自己在项目中使用的一个工具库utils.js文件

    文件内容如下: /** * utils.js */ var crypto = require('crypto'); var url = require('url'); var querystring ...

  10. 钓鱼 贪心 end

    #include<iostream> int m,n; int *p; int dis=0; int peo=0; int data[3][2]; int b[3][2]; int da[ ...