首页 > 代码库 > css知识点2@qunar
css知识点2@qunar
1、import
import要放在内部规则前面,不然就会无效;
impor 引入多个文件,会出现闪烁,浏览器会先去下载import引入的css文件,然后再去解析,应该避免使用import
2、important
important优先级最高。但important IE6下的bug;
IE6及以下浏览器有个比较显式的支持问题存在,!important并不覆盖掉在同一条样式的后面的规则。请看下述代码:
div{color:#f00!important;color:#000;} 在上述代码中,IE6及以下浏览器div的文本颜色为#000 !important并没有覆盖后面的规则;其它浏览器下div的文本颜色为#f00
div{color:#f00!important;} div{color:#000;} 在上述代码中,IE6及以下浏览器中div的文本颜色表现与其它浏览器一致,都为#f00
3、自适应布局
overflow:hidden,通过设置overflow:hidden;可以使得content宽度自适应。
<style> .demo{ width:960px; height:500px; margin:0 auto; } .aside{ float:left; width:200px; height:200px; margin-right:20px; background:#aaa; } .content{ height:200px; overflow:hidden; background:#0ff; } .inner{ margin:0 10px 0 10px; }</style>
<div class="demo"> <div class="inner"> <div class="aside">aside</div> </div> <div class="content">通过设置overflow:hidden;可以使得content宽度自适应,但是如果把aside的float设置成left,还要调整边距 </div> </div>
4、行高
IE6 元素有固定的行高,当高度小于最小的行高时,即使定义更小的高度仍然会失效。但可以通过设置overflow:hidden解决
.demo{ width:500px; height:1px; overflow:hidden; background:#aaa;}<div class="demo"></div>
5、css选择器
1.子选择器E>F,选择所有作为E元素的子元素F。
2.相邻选择器 E+F,选择紧贴在E元素之后F元素。
3.兄弟选择器 E~F,选择E元素后面的所有兄弟元素F。
4.nth-child(n),n是从1开始计数的,类似这样的都是从1开始计数。
5.E:last-child:匹配父元素的最后一个子元素E。要使该属性生效,E对象必须是某个对象的子元素。
6、target
匹配相关url指向的元素;
.b:target{color:#f00} <a href=http://www.mamicode.com/"#a">click</a> <div id="a">change red</div>
css target使用前提:a便签的href的取值要与匹配的便签的id一致;
7、增强表单
为什么加大响应区域:
增强用户体验
以复选框为例:
原本:你只能点击中复选框才能选中或者取消选中
增强:当你点击复选框或它旁边的文本时都能选中或者取消选中
使用label标签:
<label for="blue"><input type="checkbox" id="blue" />蓝色</label>
或者:
<input type="checkbox" id="blue" /><label for="blue">蓝色</label>
这里利用的是 label 标签的 for 属性,for 的值和需要加强响应区域的复选框的id相同即可,与位置无关;
在label中设置for属性,使其取值等于input id的取值,来兼容ie6;
想在一行的最后,点击任然可以选中,可以这样设置,感觉这样需求不多
<label for="blue"><input type="checkbox" id="blue" />蓝色</label> .label{ display:block; /*因为行内元素没有宽高*/ } <label for="blue"><input type="checkbox" id="blue" />蓝色</label>
8、checked伪类
匹配用户界面上处于选中的元素,常用于input type为radio与checkbox;
<style> input:checked+span{background:#f00;} input:checked+span:after{content:" 我被选中了";} </style>
<form method="post" action="#"> <fieldset> <legend>选中下面的项试试</legend> <ul> <li><label><input type="radio" name="colour-group" value=http://www.mamicode.com/"0" /><span>蓝色</span></label></li> <li><label><input type="radio" name="colour-group" value=http://www.mamicode.com/"1" /><span>红色</span></label></li> <li><label><input type="radio" name="colour-group" value=http://www.mamicode.com/"2" /><span>黑色</span></label></li> </ul> </fieldset> <fieldset> <legend>选中下面的项试试</legend> <ul> <li><label><input type="checkbox" name="colour-group2" value=http://www.mamicode.com/"0" /><span>蓝色</span></label></li> <li><label><input type="checkbox" name="colour-group2" value=http://www.mamicode.com/"1" /><span>红色</span></label></li> <li><label><input type="checkbox" name="colour-group2" value=http://www.mamicode.com/"2" /><span>黑色</span></label></li> </ul> </fieldset> </form>
checkbox可以实现选中多个,不互斥;而radio可以实现互斥,只能选中其中的一个。
通过checked可以实现隐藏、显示之间的切换。
9、transform
允许我们对元素进行旋转、缩放、移动或倾斜,这里只对缩放进行解释;
浏览器默认字体大小是12px,如果希望页面字体大小为10px;
<style> .demo{ font-size:11px; -webkit-transform:scale(10/12); } span{ display:inline-block; } </style> <span class="demo">非大声道大神发</span>
缩放比例是相对于浏览器默认的字体大小进行设置,还要对span进行设置
10、border
border-color的取值依赖于color的取值,同样可以对border-color进行设置。