IE中的CSS hack
比如一道题:用CSS分别定义IE6、7、8的width属性,使其在IE6下的值为10px,IE7为20px,IE8为30px?
1 | //注意顺序不可颠倒,因为css从上往下解析,后面属性优先级略高于前面(同级的时候) |
CSS解析方式
从上往下,同选择器从右往左解析
至于为什么从右往左解析可以参考:为什么CSS选择器是从右往左解析
CSS的优先级
一般来讲优先级id>class>标签
最近遇到一个问题,就是:
1 | #head p{ |
但是这样把类前面也加上#head p就可以提高优先级了
1 | #head p{ |
li标签中的a标签改变字体颜色color需要注意的地方
最近遇到了想鼠标移到li上,但里面的a字体变色不成功的问题。查了一下因为默认就有样式,所以不会继承父级的color等样式,这时候就需要显式让a继承li的color才行,即:
1 | li{ |
CSS想实现一个元素发生变动,改变另外元素的样式
原先我一直以为CSS只能改变自身元素的样式,如果想自身变动又想要别的元素变动,必须借助JS才行,但发现并不是这样。
HTML:
1 | <div id="box"></div> |
CSS:
1 | div{ |
结构伪类选择器:nth-child(n)需要注意的地方
:nth-child选择的是某父元素的子元素,这个子元素并没有指定确切的类型,必须同时满足两个条件时方能有效果:
1.是子元素
2.该子元素刚好处在n那个位置
但有时候经常会出现问题,比如在body下加标签的时候:
HTML:
1 | <!DOCTYPE html> |
用于裁剪img图片的clip: rect(top,right,bottom,left);
首先注意clip属性只能用于绝对定位元素,position:absolute或fixed。
齐次top right bottom left分别指最终剪裁可见区域的上边,右边,下边与左边。而所有的数值都表示位置,且是相对于原始元素的左上角而言的。于是
eg:rect(30px 200px 200px 20px)
表示的含义就是:最终剪裁的矩形的上边距离原始元素的上边缘30像素;剪裁矩形的右边缘距离原元素左边缘的距离是200像素;剪裁矩形的下边缘距离原元素顶部的距离为200像素;剪裁矩形的左边缘距离原元素左边缘的距离时20像素。
上面的表述又长有啰嗦又难以理解,你可以这样想象:饥饿N天的你突然面前出现了块香喷喷的大大的300厘米*300厘米方形手抓饼,你拔出自己随着携带的锋利的日本刀,在距离顶部30厘米的地方咔嚓一刀,然后在距离左边200厘米的地方咔嚓一刀,然后又以迅雷不及掩耳的速度在距离顶部200厘米和距离20厘米的地方咔嚓一刀。啪啪四刀留下的中间的那块就是剪裁的内容了。所以,您可以将top right bottom left理解为在这些位置拿大刀咔咔修剪。
js中{}大括号,[]中括号使用详解
{ }大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。
1 | var mayun={ |
[ ]中括号,表示一个数组,也可以理解为一个数组对象。
map和forEach的异同:
两者都可以逐个遍历数组, 但不同的是, map操作后可以返回一个新数组(意味着可以链式调用), forEach操作完就结束了.
map是数组的方法, 如果是一个Nodelist的话则用不了(虽然可以进行封装扩展). 而forEach数组和Nodelist都内置有这个方法.