首页 > 代码库 > css 笔记
css 笔记
一、外边距合并:
上下两个外边距相遇时会合并在一起,取大值;
二、问题:
外边距溢出:在父元素中,设置子元素的外边距时,有可能被识别为父元素的上外边距;
解决:
1、给父元素添加一个边框;
缺点:对了边框像素;
2、使用父元素的内边距实现同样效果
缺点:多一条代码,且会影响父元素的大小(padding);
也能使用box-sizing:border-box(边框盒子)能解决缺点;
3、
div:before{ content:""; display:table; }
三、问题:
浮动产生的父元素没有高度
解决:
1、手动设置父元素高度;
2、通过overflow 撑起父元素的高度
overflow:hidden;
缺点:若父层元素包含需要溢出元素(overflow)时,不能使用;
3、通过clear:both 解决
在父元素内追加一个空的块级元素,并设置clear属性为both;
4、
div:after{ content:""; display:block; clear:both; }
四、绝对定位的初始化位置:
1、相对于最近的已定位的祖先元素来进行位置初始化;
position属性为relative/absolute/fixed任意一种;
2、如果元素没有已定位的祖先元素,那他的初始位置就相对于最初包含块body;
五、CSS Hack
1、CSS的内部Hack
在样式属性名前加浏览器前缀或者在属性值后加浏览器后缀
例:*background:blue; background-color:orange\9\0;
2、选择器Hack
在选择器前加浏览器识别前缀
例:*+div{} *div{} 等
3、HTML头部引用Hack
根据条件注释 判断浏览器类型,再决定做哪些操作
条件注释:<!--[if 条件 IE版本]><![endif]-->
例:<!-- 根据不同的浏览器, 引入不同的兼容性css代码文件 --> <!--[if IE 6]> <link rel="stylesheet" href="http://www.mamicode.com/style_ie6.css" /> <![endif]--> <!--[if IE 8]> <link rel="stylesheet" href="http://www.mamicode.com/style_ie8.css" /> <![endif]-->
六、CSS优化
1、减少http请求次数
css sprites:合并多个图像于一个;
Images-maps;
2、页面顶部引入CSS
提高加载速度;逐步呈现;
3、将CSS和JS放在外部文件中
会由浏览器缓存,后续也会是用缓存;
4、优化代码
合并样式:提前定义统一样式;利用CSS继承
缩小样式文件:使用简写;
选择更优的样式属性值:如border:none;
减少样式重写:使用Reset但并非全局Reset;
代码压缩:使用工具压缩CSS代码
5、不要在HTML中缩放图像
图像在网络传输时仍然保持原来的图像的字节数;
6、避免空的src和href;
css 笔记