很久以来,自己也有这个疑惑,由于很久没有专职做这个了,就没有深入的研究过重构方面的东西,只是一直关注着,不曾落下。
转载记录一下,以免自己遗忘。
转自:http://www.planabc.net/2008/05/26/img_vertical_center_solution/
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>Vertical Middle</title>
- <style>
- .box {
- /*非IE的主流浏览器识别的垂直居中的方法*/
- display: table-cell;
- vertical-align:middle;
- /*设置水平居中*/
- text-align:center;
- /* 针对IE的Hack */
- *display: block;
- *font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/
- *font-family:Arial;/*防止非utf-8引起的hack失效问题,如gbk编码*/
- width:200px;
- height:200px;
- border: 1px solid #eee;
- }
- .box img {
- /*设置图片垂直居中*/
- vertical-align:middle;
- }
- </style>
- </head>
- <body>
- <div class="box">
- <img src="http://pics.taobao.com/bao/album/promotion/taoscars_180x95_071112_sr.jpg" />
- </div>
- </body>
- </html>
http://listenpro.googlepages.com/demo_vertical_css.html
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>Vertical Middle</title>
- <style>
- .itm{border:2px solid #ccc;width:160px;height:160px;text-align:center;}
- .blank{width:0;height:160px;}
- .itm img{vertical-align:middle;}
- </style>
- </head>
- <body>
- <div class="itm">
- <img src="http://cn.yimg.com/i/comn/blank.gif" class="blank" />
- <a href=""><img src="http://cn.yimg.com/bookmark/yisou/mp3/m060616.jpg"/></a>
- </div>
- </body>
- </html>
先来看两个例子
http://www.d5s.cn/example/js/js_object.html
http://www.d5s.cn/example/js/jquery_object.html
document.getElementById(’id’).innerHTML 和 jquery的 $(’id’).html() 到底有什么区别?
你可以分别查看两个页面的源码,就只有19和20行不同
document.getElementById(’test_player’).innerHTML = box_dom;
$(”#test_player”).html(box_dom);
都是向 test_player 节点内插入数据,但是结果却大不相同,不知道jquery是不是对 object 有特殊处理。
昨天从 tinymce 官方网站下载的语言包,安装后,却是繁体中文版本。
实在看着不爽,又重新转化了一下。
有需要的可以点击 tinymce Simplified Chinese pack 下载。
如果tinymce的中文字体大小显示不正常,可以搜索tinymce目录下的所有css文件中的 font-size:10px; 和 font-size:11px;
替换为 font-size:12px; 这样中文字体 宋体就能显示正常。
获取一组radio被选中项的值
var item = $(’input[@name=items][@checked]‘).val();
获取select被选中项的文本
var item = $(”select[@name=items] option[@selected]“).text();
select下拉框的第二个元素为当前选中值
$(’#select_id’)[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$(’input[@name=items]‘).get(1).checked = true;
获取值
文本框,文本区域
$(”#txt”).attr(”value”);
多选框checkbox
$(”#checkbox_id”).attr(”value”);
单选组radio
$(”input[@type=radio][@checked]“).val();
下拉框select
$(’#sel’).val();
控制表单元素
文本框,文本区域
$(”#txt”).attr(”value”,”);//清空内容
$(”#txt”).attr(”value”,’11′);//填充内容
多选框checkbox
$(”#chk1″).attr(”checked”,”);//不打勾
$(”#chk2″).attr(”checked”,true);//打勾
if($(”#chk1″).attr(’checked’)==undefined) //判断是否已经打勾
单选组radio
$(”input[@type=radio]“).attr(”checked”,’2′);//设置value=2的项目为当前选中项
下拉框select
$(”#sel”).attr(”value”,’-sel3′);//设置value=-sel3的项目为当前选中项
$(”<option value=”1′>1111</option><option value=”></option>2222″).appendTo(”#sel”)//添加下拉框的option
$(”#sel”).empty();//清空下拉框
1 检测是否有选中
if(objSelect.selectedIndex > -1) {
//说明选中
} else {
//说明没有选中
}
2 删除被选中的项
objSelect.options[objSelect.selectedIndex] = null;
3 增加项
objSelect.options[objSelect.length] = new Option(”你好”,”hello”);
4 修改所选择中的项
objSelect.options[objSelect.selectedIndex] = new Option(”你好”,”hello”);
5 得到所选择项的文本
objSelect.options[objSelect.selectedIndex].text;
6 得到所选择项的值
objSelect.options[objSelect.selectedIndex].value;
转自:http://blog.csdn.net/httpnet/archive/2007/06/15/1653236.aspx
- // <![CDATA[
- String.prototype.trim = function (){
- var reExtraSpace = /^\s+(.*?)\s+$/;
- return this.replace(reExtraSpace, "$1");
- }
- String.prototype.ltrim = function (){
- var reExtraSpace = /^\s+(.*?)$/;
- return this.replace(reExtraSpace, "$1");
- }
- String.prototype.rtrim = function (){
- var reExtraSpace = /^(.*?)\s+$/;
- return this.replace(reExtraSpace, "$1");
- }
- String.prototype.strip_tags = function (){
- var reTag = /<(?:.|\s)*?>/g;
- return this.replace(reTag, "");
- }
- // ]]>
1、关于页面元素的引用
通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。
2、jQuery对象与dom对象的转换
只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById(”msg”))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$(”#msg”)[0],$(”div”).eq(1)[0],$(”div”).get()[1],$(”td”)[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的:
此实例兼容IE6、7,firefox, opera
首先要制作一个透明的PNG图片,可以直接下载此处的透明PNG图片(右键,目标另存为)。
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=”img/1_1.png” mce_src=”img/1_1.png”);
注意:filter滤镜中的src图片地址是相对于所执行页面的,即相对于 ie6_7_firefox_png_transparent.html 页面的地址,并不是相对于css文件的。
background:url(../img/1_1.png);_background:none;
firefox中是支持png背景透明的,所以background会生效;利用bug去掉IE6、7中的背景图片。
初次试用jQuery,到底是prototype好还是jquery好?之前的项目已经使用了prototype,现加入jquery后,立刻罢工,搜了一下,还是有解决办法的(原文),不过最后我还是抛弃prototype,开始使用jquery了。
<script src=”prototype.js” mce_src=”prototype.js”></script>
<script src=”http://blogbeta.blueidea.com/jquery.js” mce_src=”http://blogbeta.blueidea.com/jquery.js”></script>
<script type=”text/javascript”>
jQuery.noConflict();
</script>
注意:一定要先引入prototype.js 再引入jquery.js,先后顺序不可错。
如果先包含jQuery,将引起代码终止,作为提醒,jQuery将抛出一个异常:“You are overwriting jQuery, please include jQuery last.”
prototype中最方便的函数莫过于
<input id=”blueidea” value=”蓝色” type=”text” />
$(”blueidea”) === document.getElementById(”blueidea”) 某id的对象
$F(”blueidea”) === document.getElementById(”blueidea”).value 表单的值
如今使用jquery,这些都没有了。
$(”#id”) 这样虽然也可以获得某id的对象,但是不能对此id进行常规的js操作。(也许有方法,不过我还不会。)
例如
<input id=”blue” value=”蓝色” type=”text” />
<div id=”idea”>蓝色理想</div>
现在改为
id=”blue”的值”蓝色”改为 “经典”;
id=”idea”的节点文字”蓝色理想”改为”<b>经典论坛</b>”
prototype写法:
$(”blue”) .value=”http://blogbeta.blueidea.com/经典”;
$(”idea”).innerHTML=”<b>经典论坛</b>”; 或者
Element.update(”idea”, “<b>经典论坛</b>”);
这些都不能这么写,而要用
jquery写法:
$(”#blue”) .val(”经典”);
$(”#idea”).empty(); //先置空此元素
$(”#idea”).append(”<b>经典论坛</b>”); //再添加新的字符串
如果你把prototype换成jquery了,但是还想使用prototype中的方便函数
建议自己定义两个函数
function $G(id){
return document.getElementById(id);
}
function $F(id){
return $G(id).value;
}
以前的javascript思想要改变了,用了jquery一切就要jquery的规范来,好处就是不用担心浏览器兼容性了,反正用的是jquery的函数,不兼容就是他的问题了,如果是自己随意写,就有浏览器的兼容性问题。
目前为止prototype最方便就是有chm手册,查询起来很方便,而jquery只有英文的api文档,虽然也不错,但还是期待jquery的中文chm。
