CodeSky 代码之空

随手记录自己的学习过程

归档时间:2015-02

CSS 使用after伪类清除浮动

2015-02-26 22:26分类: CSS评论: 0

今天早上去上班的时候还在纠结,设定before和after,可是他们的位置位于元素的哪里呢?兄弟元素?子元素?在firebug里看不到他们俩的位置,在FF自带的审查元素里倒是能看到,其实是位于该元素的子元素。

于是,以前,我们说过用一个div来清除浮动,现在我们可以把它省掉了——给父元素设定after。

如下:

1element:after {
2     clear: both;
3     content: "";
4     display: block;
5}
6
阅读更多 →

jQuery 如何判断文字是否溢出

2015-02-26 21:57分类: JavaScript评论: 0

今天又碰到了这种需求,是因为我们要做个点击获得全文(之类的)功能,设置了overflow:hidden,如果完整的显示了,那么我们就不需要显示全部内容的按钮,否则就要加上。

当时就在想,这玩样儿恐怕不太好办吧?overflow是CSS自动判断的,我完全没有经受,怎么判断确实是个问题。

还好谷歌还是能够找到答案的:jquery如何判断div是否文本溢出 里面提到了一个很好的方法:

1$(selector).map(function() {
2    if (this.offsetWidth < this.scrollWidth) {
3        // do whatever you want
4    }
5});
6

这里的offsetWidthscrollWidth是DOM对象所具有的属性,而不是jQuery对象,所以要先转成DOM对象:jQuery与DOM对象的互相转换

关于这两个,以下扩展阅读: https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetWidth https://developer.mozilla.org/zh-CN/docs/Web/API/element/scrollWidth

阅读更多 →

Javascript 上帝说,我的对象想要默认值

2015-02-24 16:26分类: JavaScript评论: 0

找了下貌似这一篇没写,于是乎坑出了可能是一个月前的代码mark。

我们来看以下两段

1		window.Option = {};
2
3		Option.defaultProps = function(obj, defaults) {
4			function isObject(obj) {
5				return Object.prototype.toString.call(obj) === '[object Object]';
6			}
7
8			if (!isObject(obj)) {
9				return defaults;
10			}
11
12			for (var key in defaults) {
13				if (!defaults.hasOwnProperty(key)) {
14					continue;
15				}
16
17				var objValues = obj[key];
18				var defaultValue = defaults[key];
19
20				if (isObject(objValues)) {
21					obj[key] = Option.defaultProps(objValues, defaultValue);
22				} else if (objValues === undefined) {
23					obj[key] = defaultValue;
24				}
25			}
26			return obj;
27		};
28
29		function People() {};
30
31		People.defaults = {
32			name: 'Hi',
33			job: 'Student',
34			age: 19,
35			friends: ['No One']
36		};
37
38		people1 = Option.defaultProps({
39			name: 'Sky',
40			age: 20
41		}, People.defaults);
42
43		people1.prototype = People.prototype;
44
45		People.prototype = {
46			constructor: People
47		};
48
49		People.prototype.sayName = function() {
50			console.log(this.name);
51		};
52
53		People.prototype.sayName.call(people1);
54
55		console.log(Object.getPrototypeOf(people1) == People.prototype);
56
57
58		people2 = new People();
59
60		console.log(people2.prototype);
61

这一种类型似乎略繁琐,但他确实实现了默认值,当然,相比之下实在是不够优秀,有各种问题,包括constructor之类的。这里我们之所以不直接定义函数,而是先用对象,再里面再加一个方法,是因为javascript没有命名空间(namespace)的概念,万一重名了=A=~

1		function Person(name, age, job, friends) {
2			this.name = name || "hi";
3			this.age = age || 19;
4			this.job = job || "Student";
5			this.friends = friends || "No one";
6		}
7

相比之下,我们来看这样一段= =唔,很明显他更加常用。

阅读更多 →

CSS selection伪元素

2015-02-24 15:53分类: CSS评论: 0

在一个网站上看到选中文字时的效果和平时的表现有些不同,顿时就习惯性的F12了,结果看到selection这个伪元素,去MDN查了一下各种伪元素: https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements

钉子菊苣的博客有一篇博文,讲的是关于::before::after的高级用法,感觉相当赞:你所不知的 CSS ::before 和 ::after 伪元素用法

关于selection,可以看https://developer.mozilla.org/en-US/docs/Web/CSS/::selection

FF需要进行特殊处理,也就是-moz-

于是可以这样:

1*::selection {
2	color: #000;
3	background: transparent;
4}
5
6*::-moz-selection {
7	color: #000;
8	background: transparent;
9}
10

愉快的玩耍啦~

阅读更多 →

PHP Maximum execution time of 30 seconds exceeded解决方案

2015-02-21 10:39分类: PHP评论: 0

在安装drupal的时候,由于需要大量建立表,于是乎Loading的时候超过30s,每次都跪,发现报错是在database.incLine 2171,在前面加上set_time_limit()函数。

set_time_limit(0)表示不设置超时时间。

也可以修改php.ini: max_execution_time = 300 秒可以设置更大,然后重起服务

阅读更多 →

SkyTips出炉 - 第一个前端作品

2015-02-20 23:10分类: CSS评论: 0

上次在仿制Hokster-domain-index时,想做一些tooltips的效果,但自己实际做起来却不知道从何下手,于是决定单独制作Tooltips,于是之后的SkyTips应运而生。

其实也还好,花了两天时间,当然之前也做了一些准备工作,比如前一篇文章中的那些东西,其实是Tooltips制作学习的衍生产物吧。

SkyTips讲究简单实用,我Javascript水平还很臭,所以,能用CSS的我绝不会用JS去做(这也是为了避免自己太过依赖JS并练习CSS),可以用纯粹的引入CSS来使用,具体在发布页都有说,下载可见:https://github.com/csvwolf/SkyTips

如果有什么Bug,请留言wwww如果能给我一些指导性建议就更好啦。

当然在测试完三大浏览器之后,发现其实SkyTips!不足之处太多了,还有很多值得改进的余地,甚至说是重写,这也是后话了=w=

阅读更多 →

Javascript 变量提升

2015-02-20 21:20分类: JavaScript评论: 0

变量提升,会把变量的声明提到作用域的前面,于是我就被坑了一次又一次= =啊原来只是声明啊。

于是比如:

console.log(a);
var a = 0;

只会输出undefined。

这一点,在对象里是一样的~所以千万不要在被坑哟=w=

阅读更多 →
共 34 篇文章,4 页