css有3种定位机制:普通流,浮动和绝对定位.

除非专门指定,否则所有框都在普通流中定位,即普通流中的元素位置由元素在(x)html中的位置决定.

通过使用position属性,可以选择4种不同类型的定位:

static 元素框正常生成

relative 元素框偏移某个距离:正常元素可以通过设置垂直或水平位置,让这个元素"相对于"它的起点进行移动.若将相对定位中的top设为20px,则框将在原位置下面20像素地方,类似如果left设为30像素,则会在元素左边创建30像素的空间,即元素会向右移动.

absolute 元素框从文档完全删除,并相对于其包含块定位:绝对定位使元素位置和文档流无关,因此不占据空间.绝对定位位置相对于最近的已定位祖先元素,如果没有,则位置相对于最初的包含块.因为绝对定位框与文本流无关,所以可以覆盖页面上的其他元素,通过设置z-index属性来控制这些框的堆放次序.

fixed 元素框表现类似于将position设置为absolute,不过包含块是视窗本身

浮动的框可以向左或向右移动,直到其外边缘碰到另一个元素框为止,浮动框不在文档的普通流中,所以文档的普通流中的块框表现的就像浮动框不存在一样.

css中通过float属性实现元素的浮动

css2中引入一种新的简单选择器-统配选择器,显示为*,该选择器可以与任何元素匹配: * {color:red;}

在html中class值可能包含多个类名,比如:<p class="aaa bbb">,多个类名顺序无关紧要.假设aaa元素都是粗体,bbb元素都为斜体,而同时包含aaa和bbb的所有元素还有一个银色的背景,则可以写作:

.aaa {font-weight:bold;}

.bbb {font-style:italic;}

.aaa.bbb {background:silver;}

通过把2个类选择器链接在一起,仅可以选择同时包含这些类名的元素.

类选择器和id选择器可能区分大小写,这取决于文档的语言.html和xhtml将类和id值定义为区分大小写.

ccs2引入了属性选择器,属性选择器根据元素的属性及属性值来选择元素.

把含有title属性的所有元素变为红色: *[title] {color:red;}

对拥有href属性且仅仅位锚a元素应用样式:a[href] {color:red;}

对带有alt属性的img元素应用样式: img[alt] {border:5px solid red;} 注意属性值是可以虚构的.

选择特定属性值的元素: a[href=www.abc.com/index.asp] {color:red;}

多条件匹配:a[href="xxx"][title="zzz"] {color:red;}

根据部分属性值进行匹配:p[class~="imp"] {color:red;}

下表是对这些选择器的简单总结:

类型 描述
[abc^="def"] 选择 abc 属性值以 "def" 开头的所有元素
[abc$="def"] 选择 abc 属性值以 "def" 结尾的所有元素
[abc*="def"] 选择 abc 属性值中包含子串 "def" 的所有元素

下面代码只会选择lang属性值等于en或以en-开头的所有元素.

*[lang|="en"] {color:red;}

后代选择器可以作为某元素后代的元素.

只对h1元素中的em元素应用样式:h1 em {color:red;}

有关后代选择器一个易忽视的方面是2个元素间层次间隔可以是无限的.比如ul em,则会选择ul中的em元素,而不管em嵌套的层次多深.

如果不希望选择任意的后代,只选择某个元素的子元素,可以使用子元素选择器.例如,如果希望选择只作为h1元素子元素的strong元素:h1 > strong {color:red;}

下面代码会选择td元素子元素的所有p元素,该td元素从table继承,该table元素有一个包含company的类属性.

相邻兄弟选择器可选择紧接在另一元素后的元素,且二者有相同的父元素.如要增加紧接在h1元素后面出现的p元素的上边距:h1 + p {margin-top:50px;}.注意h1和p不是包含关系,二是接壤关系.该选择器选择紧接在h1元素后出现的p元素,h1和p拥有共同的父元素.

css伪类用于向某些选择器添加特殊的效果.

伪类可以和css类配合使用:a.red : visited {color:#ff0000}

css2的first-child伪类可以来选择元素的第一个子元素:

p:first-child {font-weight:bold;}

上行代码将作为某个元素第一个子元素的所有p元素设置位粗体.必须声明<!DOCTYPE>,first-child才能在ie中生效.

css2的lang伪类使你有能力为不同语言定义特殊规则,以下代码为属性值为no的q元素定义引号的类型:

q:lang(no){quotes: "~" "~"}

first-line伪元素用于向文本首行设置特殊样式,只能用于块级元素.

first-letter伪元素用于向文本首字母设置特殊样式

before伪元素在元素内容前面插入新内容:h1:before {content:url(logo.gif);} 在每个<h1>前插入一幅图片

after伪元素在元素内容后插入新内容

使用/* */可以在css文件中插入注释

恶补web之二:css知识(3)的更多相关文章

  1. 恶补web之二:css知识(2)

    css字体属性定义文本的字体系列,大小,加粗,风格和变形等. css中包含两种字体系列:通用字体系列和特定字体系列. font-family属性定义文本的字体系列: body {font-family ...

  2. 恶补web之二:css知识(1)

    css指层叠样式表(Cascading Style Sheets)     样式定义如何显示html元素,样式通常存储在样式表里.把样式添加到html4.0中,是为了解决内容与表现分离的问题.外部样式 ...

  3. 恶补web之七:html DOM知识

    html DOM定义了访问和操作html文档的标准;dom是w3c的标准,dom定义了访问html和xml文档的标准: w3c文档对象模型(dom)是中立平台和语言的接口,它允许程序和脚本动态访问和更 ...

  4. 恶补web之一:html学习(1)

    发现以前欠下的web知识太多鸟,只有重头开始好好学吧,恶补第一站就是html知识啦! html指的是超文本标记语言,它不是编程语言,而是一种标记语言;标记语言是一套标记标签(markup tag),h ...

  5. 恶补web之六:javascript知识(2)

    若要向html添加新元素,必须首先创建该元素,然后向一个已存在的元素追加该元素 <div id="div1"> <p id="p1">这 ...

  6. 恶补web之六:javascript知识(1)

    javascript(下称js)是一种轻量级编程语言,它可以插入html页面然后由浏览器执行. document.write("<h1>...</h1>") ...

  7. 恶补web之一:html学习(2)

    iframe用于在网页内显示网页:<iframe src="URL"></iframe>,iframe可用作链接的目标: <!DOCTYPE html ...

  8. 恶补web之八:jQuery(3)

    jquery和其他js框架.jQuery使用$作为jQuery的简写,但是还有很多js框架,比如: MooTools,Backbone,Sammy,Cappuccino,Knockout,JavaSc ...

  9. 恶补web之八:jQuery(2)

    jquery中非常重要的部分,就是操作dom的能力: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括html标记) val() - 设置或返回表单字段 ...

随机推荐

  1. 剑指offer面试题3 二维数组中的查找 (java)

    注:java主要可以利用字符串的length方法求出长度解决这个问题带来方便 public class FindNum { public static void main(String[] args) ...

  2. iOS让软键盘消失的简单方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一些文本输入控件等待输入时会弹出软键盘,我们可以设置这些控件的 ...

  3. android问题:Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/24196143 Installation error: INSTALL_FAILED_C ...

  4. Android实现横屏以及全屏的小技巧

    分享两个安卓的实用小技巧,那就是横屏和全屏的实现. 首先是横屏的实现 首先是在清单文件中实现 <activity android:name=".MainActivity" a ...

  5. DVB数字电视系统简介(DVB-C,DVB-S,DVB-T)

    前一段时间在<通信原理>期末的时候研究了一下DVB数字电视系统.视音频编解码这些技术都是属于"信源"的技术,而<通信原理>研究的范围正好是它的补集,属于&q ...

  6. Ext JS 6开发实例(四) :调整主视图

    上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...

  7. (七十八)使用第三方框架INTULocationManager实现定位

    前面(第七十五.七十六篇)讲述了如何通过CoreLocation获取位置,授权.获取等相当复杂,如果借助于第三方框架,可以简单的实现授权与定位. 首先在GitHub中搜索LocationManager ...

  8. 【如何快速的开发一个简单的iOS直播app】(代码篇)

    开篇([如何快速的开发一个完整的iOS直播app](原理篇)) 好久没写简书,因为好奇的我跑去学习直播了,今天就分享一下我的感慨. 目前为止直播还是比较热点的技术的,简书,git上有几篇阅读量和含金量 ...

  9. 新手推荐:Hadoop安装教程_单机/伪分布式配置_Hadoop-2.7.1/Ubuntu14.04

    下述教程本人在最新版的-jre openjdk-7-jdk OpenJDK 默认的安装位置为: /usr/lib/jvm/java-7-openjdk-amd64 (32位系统则是 /usr/lib/ ...

  10. Cocos2D旋转炮塔到指定角度(一)

    原文地址:Rotating Turrets: How To Make A Simple iPhone Game with Cocos2D 2.X Part 2 翻译有节选和删除. 在你旋转炮塔之前,首 ...