lizhenqiu blog
最新评论流与站内评论搜索
Comment Stream
最新评论聚合
共 3005 条评论
Current Page
链接聚合
链接标签分页
Latest
评论流
第 117 / 151 页
当前展示 2321 - 2340 条,共 3005 条评论
常用html、demo代码
CSS3实现自定义Checkbox和Radiobox
我们知道浏览器自带的Checkbox复选框不怎么美观(这或许是我们看习惯了的缘故),而且复选框在不同的浏览器上显示的样式又有很大的差异,由于目前越来越多的人开始接受支持CSS3的现代浏览器,所以今天就简单的用一些CSS3代码来自定义Checkbox的显示方式,个人觉得比浏览器自带的Checkbox美观不少。
效果图如下
下面来分析一下源代码,原理很简单,先把页面上<input type="checkbox" />的display设置为none,从而把它隐藏掉,然后利用CSS3代码来绘制与checkbox邻近的label元素:
HTML代码:
CSS3代码:
下面的CSS代码可以让checkbox选中后出现阴影的效果,主要利用了box-shadow属性:
radiobox的实现也是同样的原理
常用html、demo代码
网页设计前端页面制作的规范要求和注意事项
组合命名规则:
[元素类型]-[元素作用/内容] 如:搜索按钮: btn-search
登录表单:form-login
新闻列表:list-news
涉及到交互行为的元素命名:
凡涉及交互行为的元素通常会有正常、悬停、点击和已浏览等不同样式,命名可参考以下规则:
鼠标悬停::hover 点击:click 已浏览:visited
如:搜索按钮: btn-search、btn-search-hover、btn-search-visited
用户体验方面需要注意的:
1). 每个连接,按钮要做上鼠标hover时的一个变化效果。如果hover时是换一张背景图片,请把这两张图片整合在一张图片中,以防止在hover时,页面还在download变化的那张图片,这样会出现那个按钮无图的间隔;
2). INPUT有个label,可以让用户在点击字时,光标自动跳入相应input中;
成功的故事只能倒叙着讲
上联:乡下早晨鸡叫人 下联:城里晚上人叫鸡
他不是脾气暴躁,只是不能被打扰
曾志伟去姚明家,因为姚明家特制的门,门镜高,敲了好几次门都没有人开,以为姚明不在家,就走了。
第二天他看到姚明无精打采的,就问他昨晚干嘛去了。
姚明神秘的说:昨晚我家好像闹鬼了,一直有人敲门,可是从猫眼又看不见人,吓得我一整夜没睡。
误解一般都是因高度不同造成的。 所以,以后再被人误解就别再闹心了,因为高度不同,角度不一样,今天你对太多事情不理解,是因为你还没有站到对方的位置。
他不是脾气暴躁,只是不能被打扰
公司会上,总经理在黑板上做了这四道题: 2+2=4;4+4=8;8+8=16;9+9=20。 员工们纷纷说道:“你算错了一道。” 总经理转过身来,慢慢地说道:“是的,大家看得很清楚,这道题是算错了。可是前面我算对了三道题,为什么没有人夸奖我,而只是看到我算错的一道呢!”做人也是这样,你对他十次好,也许他忘记了,一次不顺心,也许会抹杀所有。这就是100-1=0人性的道理。
Google方程式 WWWDOT – GOOGLE = DOTCOM
程序的优化问题
有这样一个问题,有a,b,c,d四个字母,每当刷新页面时会以随机的顺序出现,比如a,d,b,c和b,d,c,a。
我当时的解决方案为:
不过这样写有着很明显的弊端,那就是下次如果想换一些字母进行输出时,必须将程序进行一次大的更改才能继续进行应用,这样做不利于重复使用
下面这种方法就很好的解决了这个问题,当想再次调用时,只需将数组arr中的值进行更改就可以了
在我看来,真正好的函数必须做到可重复使用,模块化,和具有良好的封装性。
找了个最精简的写法
常用html、demo代码
盒子不同模式下的宽高判断
曾经遇到过这样的问题,设定一个div,当给div设置padding的时候,发现整个div的宽高都发生了变化,这里就产生了一个疑惑,一个盒子的总体宽高到底是怎么去判断的呢?
经过查询得知,盒子宽高的判定模式一共有两种,分别为标准模式和怪异模式。
一般情况下个盒子的宽高在一般情况下等于内容的宽高+边框的宽高+内边距的宽高+外边距的宽高
这就是标准模式下的盒子宽高判定
但在某些时候(ie6,7,8 下DOCTYPE缺失)盒子的宽高等于设定的宽高+外边距的宽高,这里的设定的宽高就等于内容的宽高+内边距的宽高+边框的宽高
这就是怪异模式下的盒子宽高判定
我们可以通过使用box-sizing属性来决定使用哪一种模式,
通过怪异模式我们可以在不改变盒子整体宽高的情况下给其设定padding。
常用html、demo代码
CSS3实现让人有点击欲望的按钮
主要通过css3的动画效果来实现
总结两点重要属性就是:
(1)css3的animation属性,要注意几大内核的兼容
然后就是对myfirst动画名称的具体定义
掌握这两个就可以做出很多非常具有点击欲的按钮
成功的故事只能倒叙着讲
台湾小哥说:你们有七天长假好好哦~
我想说:你们也可以有的...
常用html、demo代码
完美 全兼容 解决 文字两端对齐 justify 中文姓名对齐
,text-justify之类的却只有IE支持,就不要考虑了。
justify我的理解,使元素内部的子元素两端对齐,子元素当然只能是inline或inline-block。但justify对最后一行是无能为力的。我们在对齐姓名时,因为只有一行,当作最后一行,所以不会两端对齐的效果。
姓名对齐我们比较常用的是
来添充两个字,三个字的姓名,使包括四字的姓名都能对齐。例如:
所以就想到了用text-align:justify;但怎么解决单行不能两端对齐呢,思路就是:
让浏览器认为这不是最后一行就行了
在元素里面加一个会换行的空的子元素比如:
例子:html结构
scss
效果
原文
Google方程式 WWWDOT – GOOGLE = DOTCOM
尾递归~~有点小意思!!!
尾递归很有意思~~~
拿快排说事的话,本来按照通俗易懂的理解,就是两次调用本身来进行左右排序。
按照尾递归的话得,可以省下一半的递归空间,直接拿一次的处理结果的low 或者high当参数传入下一次的调用。整个过程相比于同时进行两次本身的递归调用,这样只使用一次本身递归调用。
尾递归就是用迭代来代替递归全部过程。
递归调用会消耗大量的栈空间,每一次递归调用函数都会新开一个栈空间进行运行,同时要将上一次函数计算结果保存起来。所谓的保存现场,这样会消耗大量的栈空间。于是用迭代、用尾递归代替全递归调用就是一个很好的选择。
最常用距离都是斐波拉契数列,
教科书就是用这个进行举例递归调用的。
这样就是一个递归调用的最经典的例子,不过在计算的过程中,每次调用的时候都得将上次计算的过程进行现场保存。所以当n很大的时候,这个n会占用很大的内存。
所以改用迭代的过程,或者尾递归的过程,即把每次的计算的结果存储起来同时传递给下一次函数得调用。
在快排改进排序中也是同样利用while迭代,来替代另外一次的递归调用。
突然发现一个问题,我原来混淆了斐波拉契数列。把n的阶乘当成斐波拉契数列数列啦。斐波拉契数列定义应该是
代码同理:
其实所谓尾递归,还是递归调用。但是内部就是用的所谓的迭代。其实可以用while循环来改写。将else部分替换成while的话,可能会更显而易见。
Google方程式 WWWDOT – GOOGLE = DOTCOM
缓存在网站开发中的重要性
通过计算斐波那契数列明白缓存在网站开发中的重要性
1 、首先测试一下没有使用数据缓存来计算斐波那契数列。
2、下面我们看看使用数据缓存来计算斐波那契数列。
通过上面两次对比,瞬间觉得数据缓存的重要性,由331160281次下降到79次。感兴趣的屌丝可以测试一下fib(50);的运行次数,不使用数据缓存我测试了,我的浏览器崩溃了,使用数据缓存运行才99次。
成功的故事只能倒叙着讲
常用html、demo代码
延迟JavaScript的加载
浏览器在执行JavaScript代码时会停止处理页面,当页面中有很多JavaScript文件或代码要加载时,将导致严重的延迟。尽管可以使用defer、异步或将JavaScript代码放到页面底部来延迟JavaScript的加载,但这些都不是一个好的解决方案。
下面是Google的建议。
这段代码的意思是等待页面加载完成后,然后再加载外部的“defer.js”文件。下面是测试结果。
成功的故事只能倒叙着讲
人太容易被惯性 推动着前进,而思维惯性是弊端最大的一个东西~~~要勇于打破一些禁锢自己的东西,这需要一个坚持的过程
《阿里盛世下的蝼蚁》
常用html、demo代码
js的一些坑
1.变量类型模糊,容易出现问题;
2.全局变量与函数内部变量同名时,在函数内部声明变量,声明位置虽然在后,但在这之前,此名变量已为‘undefined’;
输出:
3.浮点数运算BUG,例如7*0.8=5.6000000000000005;
4.变量传递,对象为引用传递,数字和字符串是值传递;即函数内不能改变变量地址
输出cccc,我是b2,bbbb,我是b1
CSS 美化复选框CHECKBOX-无图片方式
自定义input[type="file"]的样式
input[type="file"]的样式在各个浏览器中的表现不尽相同:
另外,当我们规定 input[type="file"] 的高度,并把它的行高设置成与其高度相等后,chrome中难看的样式出现了:
“未选择任何文件”这一行并没有竖直居中。
似乎在 firefox 中好看一些,嗯,我比较喜欢用 firefox。但是这些浏览器中的表现不一致,我们必须做兼容处理。
思路:
1. 自定义与其中一个浏览器表现类似的样式,将其放在下层;
2. 将浏览器本身的表现出来的样式“隐藏掉”, opacity: 0; 置于上层,这样我们点击的才是 input[type="file"] 响应的事件;
3. 选择文件或改变文件后,改变显示 file 的值。
代码:
html:
css:
js:
这样处理后,就在各个浏览器中表现一致了:
CSS 美化复选框CHECKBOX-无图片方式
自定义input[type="radio"]的样式
对于表单,input[type="radio"] 的样式总是不那么友好,在不同的浏览器中表现不一。
为了最大程度的显示出它们的差别,并且为了好看,首先定义了一些样式:
html:
css:
然后在各个浏览器中观察,会发现有很大的差别:
对于 firefox 浏览器,即便是设置了宽和高,依然是没有效果,input[type="radio"] 的那个圆圈还是初始状态那么大。其它浏览器的表现也不一致,为了达到一致的效果,我们需要做兼容处理。
思路:
1. 将 input[type="radio"] 隐藏, opacity: 0; 置于上层,当我们点击它时,就能正确的响应原本的事件。
2. 自定义一个圆圈,置于下层,模拟原本相似的样式;
3. 用 js 实现选中 input[type="radio"] 时,在其下层的自定义的元素改变原来的背景颜色。
代码:
html:
css:
js:
这样处理后,在浏览器中展示效果全部一样了:
扩展:
1. 对于代码中出现的定位,对父元素使用 position: relative; 给子元素使用 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; 能实现让子元素相对于父元素居中(满足水平居中和竖直居中)显示。如果只是需要竖直居中,则不需要添加 right: 0; 和 left: 0; 的样式。
2. 有时当我们不容易确定子元素的高度时,可以这样设置:对父元素 position: relative; 对子元素 position: absolute; top: 10px; bottom: 10px; margin: auto; 这样一来,子元素的高度就是父元素的高度减去20px后的值了,同样,top 和 bottom 支持百分数,可扩展性更强。
优化更新:
需求:
1. 有时候我们需要内联的单选样式;
2. 选中的按钮内的小圆圈不需要占满整个外圈的大小。
思路:
1. 让每一个包裹选择的 div 左浮动;
2. 给父元素添加圆形的外边框,子元素设置一个稍小于父元素大小的背景。
代码:
html:
css:
js:
效果显示如下:
常用html、demo代码