1. “其他”是一些零散的知识点,前面实在是没地方塞了,所以小潘潘将其单独归类成一起了。
1. 热区主要用于图像地图,通过该标记可以在图像地图中设定作用区域,一个“热区”可以包含多个“热点”,这样当用户的鼠标移到指定的热区,点击热区中的某个热点时,会自动链接到预先设定好的页面。
1. 我们制作图片热区时可以手动编码,但这样做很难控制热区的坐标,一般开发中我们可以通过开发工具来制作,这里我们选用的是DW。
代码
|
效果
图解
代码
usemap="#Map"/>
href="http://www.baidu.com" target="_blank">
|
usemap="#Map"/>
circle" coords="379,127,50" href="http://www.baidu.com" target="_blank">
|
usemap="#Map"/>
rect" coords="232,125,329,188" href="http://www.qq.com" target="_blank">
|
usemap="#Map"/>
poly" coords="225,251,182,220,156,234,141,274,161,316, 202,341,237,319,221,283" href="http://www.163.com" target="_blank">
|
usemap="#Map"/>
rect" coords="237,125,320,190" href="http://www.hao123.com"> circle" coords="379,135,40" href="http://www.biaodian.com" target="_blank"> poly" coords="224,254,180,219,143,284,184,344,240,320,223,280" href="#" target="_blank">
|
1. bigptr.jpg
1. DATA-URI 是指可以在Web 页面中包含图片但无需任何额外的HTTP 请求的一类URI。
1. 传统方式是通过一个超链接地址,发起http请求来加载服务器图片的。我们其实知道,对于计算机来说,所有东西都是二进制数据代码表示,那么其实图片也可以用数据代码来表示,我们可以将图片用工具转换成数据代码,用这数据代码表示图片。
1. http://tool.c7sky.com/datauri/
1. 可以减少http请求。
1. 无法重复使用
2. 会使文件变大
sun.jpg"/> |
data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNTdBOURBOTUyQUQxMUUzOUM4MEZEMUY2QTk0QTU3RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNTdBOURBQTUyQUQxMUUzOUM4MEZEMUY2QTk0QTU3RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY1N0E5REE3NTJBRDExRTM5QzgwRkQxRjZBOTRBNTdFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY1N0E5REE4NTJBRDExRTM5QzgwRkQxRjZBOTRBNTdFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4AJkFkb2JlAGTAAAAAAQMAFQQDBgoNAAAFfQAABoEAAAeXAAAIwv/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8IAEQgAFAAcAwERAAIRAQMRAf/EAMQAAAMBAQAAAAAAAAAAAAAAAAUGBwMEAQACAwEAAAAAAAAAAAAAAAAEBgIDBQcQAAAGAgMBAQAAAAAAAAAAAAERAhIDBAATEBQFIiQRAAEDAgMECAcAAAAAAAAAAAIBEQMSEwAhBFFhMhQQMUFxIiMzBZHBQlJDJFQSAAAEAwcEAwEAAAAAAAAAAAABESFBUQIQ8DFhcaESsdHhIoHxMmITAQACAgEDBQEBAQEAAAAAAAERIQAxQfBRYRBxgZHBobHR8f/aAAwDAQACEQMRAAABcuH9hfWHCWMrSGCE7WQu/QUeeLTBP1ze2nAmWMGBM7L6f//aAAgBAQABBQJSlLVF5SH2qqKqNkmuvN15qV5Pmo9WVbMk17Kfc4/P1//aAAgBAgABBQIRPEVAOaEIwcJRrYqCxoC2sSxRHBs4+W//2gAIAQMAAQUCACxVrIpX40DkQ8JoNw1U8JMpmcfTv//aAAgBAgIGPwIGnuXFjKffLHIE7xKXkJAKi6g6Kyf9evS7IjhUpStyOP3PNbGwFXCT6Rs/rZO4/9oACAEDAgY/AgS+pq6yvHcGzdQsQmA5Um2D38qrBFNaWSF5fFj4guU21sy3Uf/aAAgBAQEGPwIjMlIiVyJc1VVxqbQF7rAulItNPDlTJk1SOmafbmu7Gn/YGSeQVKeAU9LYJLt2p2YtVlaqrtP4aup2wEtqOel/KlSoFdGzTEuk1cKDPGJ6o49KNQiJLVSTdSo/czZ4OXltKsHupXoNSI+YLM4u+S5eLeq9B2qrVS2q+KnsdsarlP5z5rh9H6uL5dH5Obubrdtvi74//9oACAEBAwE/IUAOf2BVdrhFJq0qQJFzSgTwDBTjJc/0NAo9nPuaGjwpipz5BkwbBMTJ5xb3U+al1l1wiC7GkmU0MIWbG4z6mhs8KY3GdXlPy7u3p1j0V2jP/9oACAECAwE/IUUtrlJspoRwmynvgnsoGs/4X/RSJnPtpjie8d8jIocCT5MCoIoEgNyjST7MExeoBSIqeKd5K3bL97VO44nzn2Hh/b8vt6e/bxo+7fEZ/9oACAEDAwE/IQEGsaJqoOXKK0+w3hHoGn/R47POcD2TzHae2SM3yKfvEK8SbhUqSdj9sAyctJtu45P8FPSh80anmPGfT+Xt1+16e3Xo4iPmc//aAAwDAQACEQMRAAAQGzoxeN//2gAIAQEDAT8QcA6FAryoVVZXEAX1HLpFRQiauBqamAAQfAiAIinT6ZL7cmK1nXKjQwE0ByhNH8QlIoMODIoAO1uJVcCEgpR6P19k/E/BOqzq46Z+r06K61/TP//aAAgBAgMBPxB+6hVWVW1VtV24CUQChwgWDayZEljFiFIDKmn+Q5BGRF+wgdEdilTExWckJscibCYmS9g4VYRA15rWEx3iKCRKIJoLlVCBJCSvo8iGjZwVSJip1nQ9X8fRddda/pn/2gAIAQMDAT8QAGAIAoA0BwGJijYphmTlPFE0FCWz6gd+YfG9CyQiHHKaDZPctcam82JothhGrRMQ+FMackxBOGpSx8gBMVMhE1DC2WdJOBE5xyhs0cl21NxvOjS37f09P/T7Ol/DP//Z"/> |
1. 所有浏览器都支持
2. iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
|
|
1. flash有默认的白色背景,有时这背景会无法与页面色调融合到一起,会不美观。
body{background:#000;}
|
1. 有时我希望这个flash盖上一个蒙版或其它东西。
body{background:#000;} .box{width:300px;height:300px;background:pink; position:absolute;left:0;top:0;} /* 使用绝对定位将蒙版盖到flash上 */
|
标准浏览器(蒙版盖在了flash上面了)
IE所有版本(蒙版盖在了flash下面了)
1. 上面“问题1”与“问题2”其实是同一个处理办法。
2. 使用flash插件
a) flash插件可以将flash背景变为透明的。
body{background:#000;} .box{width:300px;height:300px;background:pink; position:absolute;left:0;top:0;} /* 使用绝对定位将蒙版盖到flash上 */
wmode="transparent">
|
标准浏览器(OK)
IE所有版本(OK)
1. 使用了flash插件后,flash背景透明了,而且蒙版也盖在了flash上了。
1. 如果我们用的是html5的话那么引入视频就很简单了,html5中有“video”元素可以简单的实现,html5中的video标签有很多相关的js接口,可以控制视频播放、暂停、声音等等。但这里我们使用传统兼容各大浏览器的方式来实现。
1. DW自带的视频播放器只支持“flv”视频。
1. 设置
2. 生产的代码(不需要仔细研究生成出的代码)
swfobject.registerObject("FLVPlayer");
|
1. 将视频上传到第三方网站上,然后将地址拿过来。
2. 这里我们上传到优酷上,优酷有完善的代码生成,很方便。
|
allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash">
|
1. 词内断行是对单词的排版进行自动修正。
p{width:200px;border:1px solid #000;font:14px/24px Arial;}
fdisaehfkjshfklsdfkdsfhsldijflk hsdoifhdskjfs7yf8979999998 111111111111111111111111111111111111111111111111111 dsfhdsjkfs dshof1111111111111111111111111111hjo
|
p{width:200px;border:1px solid #000;font:14px/24px Arial; word-wrap:break-word;}
fdisaehfkjshfklsdfkdsfhsldijflk hsdoifhdskjfs7yf8979999998 111111111111111111111111111111111111111111111111111 dsfhdsjkfs dshof1111111111111111111111111111hjo
|
p{width:200px;border:1px solid #000;font:14px/24px Arial; word-break:break-all;}
fdisaehfkjshfklsdfkdsfhsldijflk hsdoifhdskjfs7yf8979999998 111111111111111111111111111111111111111111111111111 dsfhdsjkfs dshof1111111111111111111111111111hjo
|
1. 文本溢出显示省略号。
1. 此样式属性表示强制文字不换行。
a) 这与上面学习的“词内断行”相反的。
p{width:200px;border:1px solid #000; white-space:nowrap;}
fdisaehfkjshfklsdfkdsfhsldijflk hsdoifhdskjfs7yf8979999998 111111111111111111111111111111111111111111111111111 dsfhdsjkfs dshof1111111111111111111111111111hjo
|
1. 是否显示省略号
2. text-overflow是css3中新增的样式,虽然是新增但没有兼容性问题,它有两个常见属性:
a) clip(默认) :不显示省略号
b) ellipsis :显示省略号
p{width:200px;border:1px solid #000; /* 宽度必须有,否则不知道到哪算溢出 */ white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} /* 三缺一不可 */
fdisaehfkjshfklsdfkdsfhsldijflk hsdoifhdskjfs7yf8979999998 111111111111111111111111111111111111111111111111111 dsfhdsjkfs dshof1111111111111111111111111111hjo
|
1. 盒模型怪异解析又叫怪异模式。
2. 正常情况下 可视宽=设置宽(width)+padding+border ,元素内容宽=设置宽,但在html文档没有文档声明时,低版本的IE浏览器 可视宽=设置宽(width),元素内容宽=设置宽-padding-border,这就是怪异模式。
.box{width:200px;height:200px;border:10px solid #000;padding:50px;} .div{height:50px;background:red;}
|
标准浏览器(正常OK)
IE低版本(怪异模式)
1. 就是坚持每一个html文档都必须加文档声明,而且必须保证正确。
1. box-sizing是css3新增样式属性,可以通过它的属性值来改变解析模式。
a) 在我看来这是一个鸡肋。
2. box-sizing有两个属性,分别如下:
a) “box-sizing:border-box;”表示用怪异模式来解析此元素。
b) “box-sizing:content-box;”表示用正常模式来解析此元素。
1. 标准浏览器下盒模型怪异解析。
.box{width:200px;height:200px;border:10px solid #000;padding:50px; box-sizing:border-box;} .div{height:50px;background:red;}
|
1. 不占用原始位置。
div{width:100px;height:100px;border:5px solid #000;background:red;} /* .box1{display:none;} */
box1
box2
box3
|
不使用“.box1{display:none;}”时
使用样式:“.box1{display:none;}”后
1. 占用原始位置
div{width:100px;height:100px;border:5px solid #000;background:red;} /* .box1{visibility:hidden;} */
box1
box2
box3
|
不使用“.box1{visibility:hidden;}”时
使用“.box1{visibility:hidden;}”后
1. 我们前面学习过css提供的固定定位在IE6下不起作用,为了解决这个问题,我们需要通过其他方式来模拟出固定定位。
2. 有的公司其实已经不再考虑垃圾的IE6是否支持,就使用它原生的了。
3. 其实早期为了兼容IE6推荐使用js的方式来模拟固定定位,这里不是js课程也就不讲了。
body{margin:0;} .box{height:2000px;} .div{width:100px;height:100px;background:red; position:fixed;left:100px;top:100px;}
|
1. 这里只介绍用css方式来模拟固定定位。
1. 这种方式其实是一个障眼法,用body的滚动条取代文档的滚动条,而本身文档的滚动条被我们隐藏掉,所以当拖动滚动条时,实际上拖动的是body的,所以作为定位父级的文档位置不会发生变化,自然定位元素位置也不会随着拖动滚动条而发生变化,因为它们根本没关系,所以不会影响,这种方式问题会很多,开发中不推荐使用,但用来面试还是挺唬人的。
html{height:100%;overflow:hidden;} body{margin:0;height:100%;overflow:auto;} .box{height:2000px;} .div{width:100px;height:100px;background:red; position:absolute;left:100px;top:100px;}
|
标准浏览器
IE6
分析
1. 使用css hack与css表达式来兼容IE6
body{margin:0;} .box{height:2000px;} .div{width:100px;height:100px;background:red; position:fixed;left:100px;top:100px;_position:absolute;_top: /* css hack */ expression(eval(document.documentElement.scrollTop+100))} /* css表达式 */
|
标准浏览器
IE6
1. 此方法是借助与另个元素等高来实现的。
2. 此方法特点:简单、没有兼容性问题。
.box{width:800px;height:600px;border:2px solid #000; text-align:center;} /* 水平方向居中 */ span{display:inline-block;height:100%;vertical-align:middle;} img{vertical-align:middle;}
|
1. 使用display:table来实现,但这种样式属性IE6,7下不支持,因为IE6,7下不支持把一个div变成display:table类型,所以还需要结合定位来进一步解决。
代码
.box{width:800px;height:600px;border:2px solid #000; display:table;} /* 将box元素模拟成一个表格table */ /* 将span模拟成单元格,那么单元格中的text-align、vertical-align都是可用的 */ span{display:table-cell;text-align:center;vertical-align:middle;}
|
效果
标准浏览器(OK)
IE6,7(无效)
代码
.box{width:800px;height:600px;border:2px solid #000;display:table; position:relative;/* 定位父级 */ /* 因为下面的img使用了相对定位(不脱离文档流),移动后会留下多余超出box元素的空白位置 */ overflow:hidden;} span{display:table-cell;text-align:center;vertical-align:middle; *position:absolute;left:50%;top:50%;} /* 绝对定位,相对于box */ img{*position:relative;left:-50%;top:-50%; /* 相对定位,相对于span */ vertical-align:top;} /* 去掉img下边的空隙 */
|
效果
标准浏览器(OK)
IE6,7(OK)
代码
.list{width:302px;margin:0;padding:0;list-style:none;} li{height:30px;font-size:12px;line-height:30px;border:1px solid #000;} a{float:left;} span{float:left;padding-left:10px;width:60px;}
|
效果
代码
.list{width:302px;margin:0;padding:0;list-style:none;} li{height:30px;font-size:12px;line-height:30px;border:1px solid #000;} a{float:left;} span{float:left;padding-left:10px;width:60px;}
|
效果
1. 如上面“问题”所述,当列表中内容超出了某个限度时,会将span给挤下去,我们要达到的目的是,当列表中内容超出一定限度时,以省略号显示,并且不会将span给挤下去。
.list{width:302px;margin:0;padding:0;list-style:none;} li{height:30px;font-size:12px;line-height:30px;border:1px solid #000;} p{margin:0;float:left;padding-right:50px;} /* 空出span需要占用的宽度10+40 */ a{float:left;} span{float:left;padding-left:10px;width:40px;}
|
.list{width:302px;margin:0;padding:0;list-style:none;} li{height:30px;font-size:12px;line-height:30px;border:1px solid #000;} p{margin:0;float:left;padding-right:50px; /* 空出span需要占用的宽度10+40 */ position:relative;} /* 定位父级 */ /* a{float:left;} */ /* 添加了绝对定位后,a和span标签上的浮动就可以去掉了 */ span{/*float:left;*/padding-left:10px;width:40px; position:absolute;right:0;top:0;}
|
.list{width:302px;margin:0;padding:0;list-style:none;} li{height:30px;font-size:12px;line-height:30px;border:1px solid #000; overflow:hidden;} /* 将超出列表的内容给隐藏掉 */ p{margin:0;float:left;padding-right:50px; /* 空出span需要占用的宽度10+40 */ position:relative;} /* 定位父级 */ /* a{float:left;} */ /* 添加了绝对定位后,a和span标签上的浮动就可以去掉了 */ span{/*float:left;*/padding-left:10px;width:40px; position:absolute;right:0;top:0;}
|
描述
1. 在IE6,7下,li本身没有浮动,内容有浮动,li之间会产生间隙。
2. 在IE6,7下,父元素的overflow包不住相对定位,也就是父元素的overflow遇到子元素的相对定位会失效。
效果
1. 将上面“过程3”中的代码拿到IE6,7下运行效果如下:
.list{width:302px;margin:0;padding:0;list-style:none;} /* li的"height:30px;"不能不加,关系到前面清浮动知识,不多说了,自己去想吧 */ li{height:30px;font-size:12px;line-height:30px;border:1px solid #000; /* overflow:hidden;*/ vertical-align:top;} /* 1. 去掉在IE6,7下,li下面的空隙 */ p{margin:0;float:left;padding-right:50px; /* 空出span需要占用的宽度10+40 */ position:relative; /* 定位父级 */ height:30px;overflow:hidden;} /*2. 直接将overflow拿到底下来即可*/ /* a{float:left;} */ /* 添加了绝对定位后,a和span标签上的浮动就可以去掉了 */ span{/*float:left;*/padding-left:10px;width:40px; position:absolute;right:0;top:0;}
|
标准浏览器(OK)
IE6,7(OK)