1、关于盒子模型

css盒子模型 又称框模型 (Box Model) ,包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。如图:

理解css外边距的叠加:

两个上下方向相邻的元素框垂直相遇时,外边距会合并,合并后的外边距的高度等于两个发生合并的外边距中较高的那个边距值,如图:

需要注意的是:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

 2、CSS中的文档流

普通流就是正常的文档流,在HTML里面的写法就是从上到下,从左到右的排版布局。其中涉及到了块状元素和内联元素。

脱离文档流的几个属性:绝对定位(absolute)、固定定位(fixed)、浮动(float)。

3、CSS3中的动画

一:transition

在CSS中创建简单的过渡效果可以从以下几个步骤来实现:

1、在默认样式中声明元素的初始状态样式;

2、声明过渡元素最终状态样式,比如悬浮状态;

3、在默认样式中通过添加过渡函数,添加一些不同的样式。

CSS3的过度transition属性是一个复合属性,主要包括以下几个子属性:

案例展示:

二:animation

首先用@keyframes(关键帧)定义一个动画函数,接着使用animation调用该函数

更多详情:http://www.cnblogs.com/fengxiongZz/p/6536835.html

4、CSS3中的变形

更多详情:http://www.cnblogs.com/fengxiongZz/p/6536418.html

 5、CSS中的伪类

定义:

伪类存在的意义是为了通过选择器找到那些不存在与DOM树中的信息以及不能被常规CSS选择器获取到的信息。

其他说明:

伪类由一个冒号:开头,冒号后面是伪类的名称和包含在圆括号中的可选参数。

任何常规选择器可以再任何位置使用伪类。伪类语法不区别大小写。一些伪类的作用会互斥,另外一些伪类可以同时被同一个元素使用。并且,为了满足用户在操作DOM时产生的DOM结构改变,伪类也可以是动态的。

CSS2中的伪类:

:active;:focus;:hover;:link;:visited;:first-child;:lang

CSS3中新增的伪类:

:last-of-type;:last-child;:first-of-child;:first-child;:only-child;:only-of-type;:empty;:target;:not(p);:enabled;

:nth-child(n);:nth-last-child(n);:nth-of-type(n);nth-last-of-type(n);:enabled;:disabled;:checked;

6、CSS中的伪元素

定义:

伪元素在DOM树中创建了一些抽象元素,这些抽象元素是不存在于文档语言里的(可以理解为html源码)。比如:document接口不提供访问元素内容的第一个字或者第一行的机制,而伪元素可以使开发者可以提取到这些信息。并且,一些伪元素可以使开发者获取到不存在于源文档中的内容(比如常见的::before,::after)。

 其他说明:

伪元素的由两个冒号::开头,然后是伪元素的名称。

使用两个冒号::是为了区别伪类和伪元素(CSS2中并没有区别)。当然,考虑到兼容性,CSS2中已存的伪元素仍然可以使用一个冒号:的语法,但是CSS3中新增的伪元素必须使用两个冒号::

一个选择器只能使用一个伪元素,并且伪元素必须处于选择器语句的最后。

 CSS2中的伪元素:

::first-letter;::first-line;::before;::after;

 CSS3中新增的伪元素:

::selection;(对用户所选取的部分样式改变)

 7、伪元素和伪类的区别

CSS伪类:用于向某些选择器添加特殊的效果。

CSS伪元素:用于将特殊的效果添加到某些选择器。伪元素代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。

总结:

一、伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息;

二、伪元素本质上是创建了一个有内容的虚拟容器;

三、CSS3中伪类和伪元素的语法不同;

四、可以同时使用多个伪类,而只能同时使用一个伪元素。

 8、CSS3新增的选择器

三个属性选择器:

E[foo^="bar"]表示E元素的foo属性值以bar开始的;

E[foo$="bar"]表示E元素的foo属性值以bar结束的;

E[foo*="bar"]表示E元素的foo属性值包含bar的;

9、CSS隐藏元素的几种方法

一、Opacity:元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互;

二、Visibility:与 opacity 唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件中也会被隐藏;

三、Display:display 设为 none 任何对该元素直接打用户交互操作都不可能生效。此外,读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在;

四、Position:不会影响布局,能让元素保持可以操作;

10、link和@import的区别?

一、link属于XHTML标签,而@import是CSS提供的。
二、页面被加载时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载。
三、import只在IE 5以上才能识别,而link是XHTML标签,无兼容问题。
四、link方式的样式权重高于@import的权重。
五、使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。
 
 
 
 
 
 
 

CSS 3篇(持续更新)的更多相关文章

  1. 标准化命名CSS类,持续更新

    放链接.持续化更新,以后可能会用上.https://github.com/zhangxinxu/zxx.lib.css/blob/master/zxx.lib.css

  2. 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新

    为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! ...

  3. css 技巧 (持续更新)

    1.滚动条样式   /*自定义滚动条-----隐藏型*/ .scroll::-webkit-scrollbar-track{ border-radius: 1px;   }   .scroll::-w ...

  4. WebApi学习总结系列第三篇(Http)此篇持续更新...

    越了解Http对WebApi开发就越有帮助,因为WebApi就是建立在Http基础之上的. 一.Http: 通过 <ASP.NET Web API 2 框架揭秘>一书中 了解到 什么叫We ...

  5. CSS用法总结(持续更新)

    一.html,body{height:100%} 解决了容器高度不足(容器高度由子元素高度决定,而%按照父元素的百分比),无法用%布局页面的问题 把html和body的高度设置为浏览器高度,此时会出现 ...

  6. css用法(持续更新ing)

    *:选择所有节点 #container:选取id为container的节点 .container:选取所有class包含container的节点 li a:选取li下的所有a节点 ul +p:选取ul ...

  7. 原生开发之css样式问题(持续更新)

    ·移动端开发将div高度设置为设备高度 div{ Height:100vh; } · select选择器文字设置: /*select文字右对齐*/ select{ direction: rtl; } ...

  8. CSS 常用效果--持续更新

    单行超出省略: white-space: nowrap; text-overflow:ellipsis; overflow:hidden; 多行超出省略: text-overflow: -o-elli ...

  9. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  10. css面试题汇总 (持续更新)

    前言:这篇随笔是为了准备后面的面试而整理的,网上各种面试题太多了,但是我感觉很多太偏了,而且实际开发过程中并不会遇到,因此这里我整理一些比较常用的,或者是相对比较重要的知识点,每个知识点都会由浅入深, ...

随机推荐

  1. 02-线性结构4 Pop Sequence (25 分)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  2. [转] vagrant学习笔记 - provision

    [From]  https://blog.csdn.net/54powerman/article/details/50684844 从字面上来看,provision是准备,实现的功能是在原生镜像的基础 ...

  3. 2019.4.18 HTML + CSS相关整理

    目录 标签 块标签 行标签 行块转化 嵌套规则 css引入方式 行间样式 内部引入 外部引入 选择器 基础选择器 组合选择器 盒模型 css样式 字体属性 设置字体的大小 设置字体的粗细 设置字体的风 ...

  4. python自动化day3-函数、递归、内置函数

    一.什么是函数 修理工===>程序员 具备某一功能的工具===>函数 要想使用工具,需要事先准备好,然后拿来就用且可以重复使用要想用函数,需要先定义,再使用 二.函数基础 1.函数分类 # ...

  5. Robot Framework自动化测试二(元素定位)

    前言 在学习的过程中,可能会误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加 ...

  6. bug缺陷级别定义

    缺陷定义: 出现以下缺陷测试定义为致命 bug l  系统无响应处于死机状态. l  点击某个菜单后出现“The page cannot be displayed”或者返回异常错误. l  进行某 ...

  7. 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作

    第十九章 Scala语言的数据结构和算法19.1 数据结构(算法)的介绍19.2 看几个实际编程中遇到的问题19.2.1 一个五子棋程序19.2.2 约瑟夫问题(丢手帕问题)19.2.3 其它常见算法 ...

  8. Linux上用户之间对话

    Linux上用户之间对话 昨天想在CentOS7上与另外一个用户对话,但把命令忘记了,特此记录下来. Write命令 write命令是单向发送一条消息给同机器的Linux用户.首先通过who命令查看谁 ...

  9. <数据挖掘导论>读书笔记1

    数据预处理: 1.聚集:将两个或者多个对象合并成单个对象. 2.抽样:一种选择数据对象子集进行分析的常用方法.抽象方法:简单随机抽样 和渐进抽样 3.维度约:我觉得翻译的不好,英文明细是降维.降维技术 ...

  10. ES6中的类继承和ES5中的继承模式详解

    1.ES5中的继承模式 我们先看ES5中的继承. 既然要实现继承,首先我们得要有一个父类. Animal.prototype.eat = function(food) { console.log(th ...