常用CSS总结

1、样式种类:浏览器默认样式、带有样式的标签、内联样式、style标签、link引入样式文件。
2、选择器(http://www.ruanyifeng.com/blog/2009/03/css_selectors.html)
  2.1基本选择器:1、通配符 ()
         2、标签选择器 (div等)
         3、class选择器 (.)
         4、id 选择器 (#)
  2.2组合选择器:1、多组选择器 div, span, a.on
         2、后代选择器 div span
         3、子元素选择器 div > span
         4、兄弟元素选择器 div + span, div ~ span 表示 div 后所有 span 兄弟节点
  2.3属性选择器:input[type],input[type=”text”],input[type~=],input[type|=]
        input[type
=], input[type^=], input[type$=]
  2.4伪类和伪对象:伪类选择器,一般常用于a标签例如a:link,a:visited,a:hover,a:active;伪对象选择器, :after, :before 等。
  2.5其他CSS3选择器:E:nth-child(n)、E:not(span)、E:checked
  2.6选择器在各浏览器中的兼容性:参考文档--    http://labs.qianduan.net/css-selector/
3、优先级
!important > 内联样式 > #ID > .class > TAG | [attr] | 伪类 > 伪对象 > 通配符 > 继承
样式继承(文本相关)• font, color、text-align,text-indent(缩进)、line-height、letter-spacing(字母间距),word-spacing(段落中的字间距)
继承相关文档--http://www.cnphp.info/css-style-inheritance.html
4、盒模型布局
  4.1两种盒模型
    •IE 盒模型, width = contentWidth + padding + border, 布局优先
    •标准盒模型, width = contentWidth, 内容优先
http://blog.163.com/zx_1258/blog/static/133233799201301331041110/
  4.2box-sizing
    border-box(IE模式) :大部分 input 元素使用 border-box 模式, 用以解决浏览器间 form 表单样式兼容性问题
    content-box(W3C模式)
http://blog.163.com/zx_1258/blog/static/13323379920130133139102/ form 表单样式统一兼容性方案
5、inline,block和inline-block
  5.1、 inline内联元素
    •与其他元素依次排列在一行内, 直到遇到右边界才换行
    •不可设置宽和高, 设置了 width 和 height 也无效
    •可以设置水平方向的 padding 和 margin, 垂直方向的 padding 和 margin 不会影响布局(可以设置并且可以生效, 但是对其他元素没有影响)
    •扩展说明, 可以设置 line-height, 并且会影响布局(可以对其他元素的位置产生影响)
  5.2、bloock块级元素
    •自己独占一行
    •可以设置宽,高, 默认情况下, 宽度自动填满整个父元素, 但即使设置了宽度, 仍是独占一行
    •可以设置任意方向上的margin,padding, 并都对布局产生影响
  5.3、inline-block内联块级元素
附带:
•ie6,7对该属性支持不完善, 需要做简单 hack, e.g. display:inline-block; *display:inline; zoom:1;
(这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack)
•inline-block 元素虽好, 但是有样式问题, 即在元素间产生几像素的水平空隙(不同浏览器下不同), 原因是换行符,空格符和制表符转换成空白符, 在字体大小不为0的情况下, 占据一定空间造成的;
6、浮动(float浮动, 即让元素脱离文档漂浮起来, 向左或向右移动, 直到遇到父元素边缘或者另一个浮动元素的边缘;元素浮动以后, 不会影响块级元素布局, 只会影响内联元素排列)
  6.1、浮动的使用:元素水平排列、文字环绕图片、对比inline-block:a--实现原理不同, float 元素已经脱离了普通流, inline-block 元素仍在普通流中.b--都能水平排列元素, 但是 float 浏览器兼容性更好.c--float 可以做文字环绕, 而 inline-block 只能做水平排列.
  6.2、清除浮动
在当前元素使用Css属性 clear : left|right|both|none, 使元素清除浮动元素的影响:•被浮动元素覆盖、•跟在浮动元素后
eg--.clear{clear:both;height:0;overflow:hidden;}
  6.3、闭合浮动
i. 浮动元素后添加带 clear 属性的额外标签
 a) 添加额外标签
 b) 使用伪对象 :after | :before
ii. 创建BFC(Block Formatting Contexts, W3C标准) 或 触发 hasLayout (IE独有, IE6-7, IE8已支持BFC) 属性
a) 触发BFC
 1. float 除了 none 以外的值
 2. overflow 除了 visible 以外的值
 3. display (inline-block, table-cell…)
 4. position (absolute, fixed)
b) 触发 hasLayout
 1. float 除了 none 以外的值
 2. display : inline-block
 3. position : absolute
 4. width, height 除 auto 以外的值
 5. zoom : 1
  6.4、为什么要清除/闭合浮动
    •浮动元素不能撑开父元素, 从而使布局上产生’塌陷’效果;
    •浮动会影响后面的内联元素的布局
    •创建了 BFC 或触发了 hasLayout 以后, 相当于创建了一个独立的盒子, 里面的元素与外面的元素在布局上不会相互影响
  6.4、清除/闭合浮动解决方案
.clearfix:after {content:"\200B"; display:block; height:0; clear:both; } //在父元素内容尾部添加 clear 属性元素
.clearfix { zoom:1; }
//触发 IE hasLayout 属性(IE6-7不支持 BFC)
文档推荐:http://www.iyunlu.com/view/css-xhtml/55.html
7、定位与层级
 7.1定位分类--定位可分为在普通流和脱离普通流两类, 对应与 position 的取值:
   •static 为默认值, 元素存在与普通流中
  •relative 相对定位, 元素相对于它在普通流中的位置进行定位, 其本身在普通流中的位置仍然被保留
  •absolute 绝对定位, 元素相对于最近的已定位的父元素进行定位, 其在普通流中的位置已被抹除
  •fixed 绝对定位的一种, 以浏览器窗口为已定位的父元素进行定位
前两种在普通流中, 后两种已经脱离了普通流, 不再占据位置.
 7.2层级
层级关系会形成元素间的相互覆盖效果, 另外, 浮动也会使元素产生的相互覆盖效果.对 z-index 定位会使元素间产生层级关系, 把页面看做一个坐标系, 一般的定位操作都是在 X 轴和 Y 轴上进行的, 而 z-index 则是控制 Z 轴的定位.
7.2.1、z-index层级比较
i.父元素相同, 直接比较
a)顺序规则, 默认或者 position:static 情况下, 后面元素会覆盖前面元素
b)定位规则
1.已定位的元素会覆盖未定位的元素
2.两元素均已定位, z-index 值大的会覆盖值小的
3.两元素均已定位且z-index值相同, 后面的覆盖前面的
4.两元素均已定位, z-index 一个为0, 一个为 auto, 视为同一层, 后面的覆盖前面的
ii.父元素不同, 抽出z-index 层级树, 进行层级比较
a)参与规则, 所有已定位的元素且 z-index 值不为 auto 时, 参与层级定位(仅定位元素, position 不为 static, 不设置 z-index, 在 IE6/7下, z-index 默认值为0, 其他浏览器则默认值为 auto), 已定位且 z-index 值为 auto 的元素, 向上遍历至最近的已定位且值不为 auto 的祖先元素进行层级定位
b)从父规则, 层级树中子元素的层级关系, 由其父元素的层级关系决定
c)默认规则, 同一父元素下的子元素
1.z-index 相同, 则后面的覆盖前面的
2.z-index 不同 , 值大的覆盖值小的
文章推荐--http://www.cnblogs.com/ForEvErNoME/p/3373641.html
8、垂直水平居中
8.1、垂直居中
i.文字,元素居中
a)height == line-height
b)外层 display:table;
内层 display:table-cell;vertical-align:middle;
(IE6/7不支持 display:table-cell)
ii.vertical-align : middle, 可以使文字相对于元素居中排版
8.2、水平居中
i.文字居中, text-align : center;
ii.元素居中
a)宽度固定, margin: 0 auto;
b)宽度不固定,
外层 text-align:center;
内层 display:inline-block;text-align:left;
(IE6/7需要对 inline-block 属性进行 hack)
8.3宽高固定的元素绝对定位解决垂直水平居中
外层: position:relative;
内层: position:absolute; top:50%; left:50%;
margin-top:-50%
Height; margin-left:-50%
Width;
9、表单表格
9、1表单
•一个 label 对应一个 input 或者 inputgroup
•使用 vertical-align 使文字与 input 元素居中
•表单元素使用 box-sizing:border-box; 以在不同浏览器中得到一致样式
http://www.w3school.com.cn/html/html_forms.asp
9、2表格
•border-collapse : collapse, 合并相邻单元格边框
•colspan, rowspan, 合并相邻单元格
•thead, tfoot, tbody
•tr 行; th 标题, td 内容
•设置border, 设置单元格 td 与 th 的 border, 结合 border-collapse;
•使用 padding 控制单元格内部留白大小
http://www.ruanyifeng.com/blog/2009/05/html_table_mastering.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,630评论 1 92
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,760评论 0 6
  • 以下文章是我在网上收集的内容,为了记录自己的学习以及为了以后不到处找而记录下来,如果对你有用,请感谢写这些文章的前...
    DCbryant阅读 895评论 0 2
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,461评论 32 459
  • display: none; 与 visibility: hidden; 的区别 联系:它们都能让元素不可见 区别...
    纹小艾阅读 1,099评论 0 1