Web前端学习第十三天·fighting_HTML页面设计技巧总结(二)
2016-05-28 15:34
936 查看
[b]行级元素之间的空白距离[/b]
如下图所示:(看似是一张图,实际上是三张图分别放在<a>标签中实现,如果没有经过特殊的处理,那么图与图之间就会留有空隙,影响页面布局的效果)
示例代码如下:
运行结果:
此时需要把html文档中行级标签之间的距离都去掉,即将所有的<a>标签写在同一行中且之间没有距离即可。如下所示:
之后三个图片之间的距离就没有了!这特么是在逗我玩啊……感觉这个笔记再更新下去的话我就要变成段子手了……
看评论区有好心人指正我,这里只要把“deceng”div的font-size设置为0就可以出现相同的效果。掌声在哪里,谢谢好心人指点~
[b]设定行级元素的尺寸[/b]
默认情况下,行级元素的宽度和高度都是自动的,那么有需要修改高度和宽度时应该怎么办?
有两种方式:1.使用display:block,变成块级元素;2.使用position:absolute绝对定位,设置绝对定位后默认的宽度和高度都是0,需要设定高度和宽度具体的值。一般情况下,设置行级元素width:100%和height:100%都没有效果,但是使用绝对定位后会有效果。
示例代码如下:
运行结果:
[b]重点重点重点:position的定位[/b]
position:absolute 绝对定位(不设置left、top、right、bottom属性值时,以下规则没用,都是以父容器为参考进行绝对定位)
父容器为static布局:绝对定位以最近的非static父容器可视范围作为参照(如窗体的可视区作为参照)
父容器为非static布局:绝对定位以父容器作为参照
注意<html>也是盒子模型。
父容器是static布局,子元素是absolute布局的情况,示例代码如下:
运行结果:
在此例中,div使用的是absolute定位,它的父容器body使用了static定位,而它的祖父元素html也使用了static定位,此时div将会以最近的非static容器(窗体)为参照进行绝对定位,于是出现上图所示的效果。
如果把该例中的html的定位方式设置为position:relative(非static方式),此时div就将会以最近的非static容器(html)为参照进行绝对定位,效果如下图所示:
父容器是非static布局(这里用relative),子元素是absolute布局的情况,示例代码如下:
运行结果:
以上几个例子就说明了为什么在网页设计中父元素常常使用relative定位方式。
如果不设置left、top、right、bottom,元素脱离文档流并不会占位。(默认的文档流为:从左到右,从上到下)
作用:z-index可起到作用,width和height也起到作用。
示例代码如下:
运行结果为:
可以看到,绿色块起点与粉红色块起点一样都是在左上角,说明粉红色块并没有占位。
position:relative 总是以父容器作为参考点。
left和top值有效,right和bottom值无效。
不会脱离文档流,依然会占位。不管怎么移动,将元素移动到哪,该元素都始终占有高度指定的那一块区域。示例代码如下:
运行结果如下:
[b]【[b]面试题[/b]】position设置后元素会不会脱离文档流?[/b]
分情况说明。
position:absolute绝对定位时,如果不设置left、top、right、bottom属性值的话,元素将会脱离文档流并不会占位。
position:relative相对定位时,无论设置还是不设置left、top、right、bottom属性值,元素都不会脱离文档流,都会占位。
[b]选项卡的设计与制作[/b]
例如:(京东首页,选中的部分顶部有红色条显示,动态控制样式需要使用js)
高能预警,我又要画图了……用画图板,还要写字呢!!!好害怕……所以啊,谁教教我ps吧(笑哭)
设计结构如下:a标签使用绝对定位,顶边框粗一点,底部没有,背景颜色是白色,a标签向覆盖div的红色边框。其他部分……看!!!!!图!!!!!/(ㄒoㄒ)/~~
我自己看着都想笑……
是不是感觉自己又能上天了!
我猜是的。
示例代码如下:
运行结果:
[b]使用伪类样式实现动态效果[/b]
:hover 鼠标悬浮,改变背景颜色
示例代码如下:
运行结果:
transform与transition搭配使用 (去看文档!!!)
transform 过渡转换的过程(即以什么样的方式进行转换,比如说旋转,翻转,上下移动这种样式)。
transition 过渡效果(比如说从一个ppt页到另一页的过渡方式的选择,嗯,就是这个意思……)
向下移动的效果-示例代码如下:
运行结果:
初始时(移动前)
移动过程中的样子(我不能做一个gif或者小视频放上来a,但是效果还是hin炫酷的!帅哥在移动,关键是鼠标移出后,他还会自己回去!哈哈哈哈哈,有做男朋友的潜质!!!)
鼓掌!我要开始学JS啦!!!认真起来我自己都害怕哈哈哈!!!!!
如下图所示:(看似是一张图,实际上是三张图分别放在<a>标签中实现,如果没有经过特殊的处理,那么图与图之间就会留有空隙,影响页面布局的效果)
示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>行级元素之间的空白距离</title> <meta charset="utf-8" /> <style type="text/css"> a { text-decoration:none; } </style> <!--<link rel="stylesheet" type="text/css" href="公共和个性化样式.html" />--> </head> <body> <div id="deceng"> <a href="#"> <img src="../img/ch1.jpg"/> </a> <a href="#"> <img src="../img/ch2.jpg" /> </a> <a href="#"> <img src="../img/ch3.jpg" /> </a> </div> </body> </html>
运行结果:
此时需要把html文档中行级标签之间的距离都去掉,即将所有的<a>标签写在同一行中且之间没有距离即可。如下所示:
<body> <div id="deceng"> <a href="#"><img src="../img/ch1.jpg"/></a><a href="#"><img src="../img/ch2.jpg" /></a><a href="#"><img src="../img/ch3.jpg" /></a> </div> </body>
之后三个图片之间的距离就没有了!这特么是在逗我玩啊……感觉这个笔记再更新下去的话我就要变成段子手了……
看评论区有好心人指正我,这里只要把“deceng”div的font-size设置为0就可以出现相同的效果。掌声在哪里,谢谢好心人指点~
[b]设定行级元素的尺寸[/b]
默认情况下,行级元素的宽度和高度都是自动的,那么有需要修改高度和宽度时应该怎么办?
有两种方式:1.使用display:block,变成块级元素;2.使用position:absolute绝对定位,设置绝对定位后默认的宽度和高度都是0,需要设定高度和宽度具体的值。一般情况下,设置行级元素width:100%和height:100%都没有效果,但是使用绝对定位后会有效果。
示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>设定行级元素的尺寸</title> <meta charset="utf-8" /> <style type="text/css"> #baidu { text-decoration:none; width:100px; height:50px; display:block; background-color:pink; color:black; } #guge { text-decoration:none; width:100px; height:50px; background-color:pink; color:black; position:absolute ; } </style> </head> <body> <ul> <li> <h3>方式一:设定display:block</h3> <a id="baidu" href="#">百度</a> </li> <li> <h3>方式二:设定position:absolute</h3> <a id="guge" href="#">谷歌</a> </li> </ul> </body> </html>
运行结果:
[b]重点重点重点:position的定位[/b]
position:absolute 绝对定位(不设置left、top、right、bottom属性值时,以下规则没用,都是以父容器为参考进行绝对定位)
父容器为static布局:绝对定位以最近的非static父容器可视范围作为参照(如窗体的可视区作为参照)
父容器为非static布局:绝对定位以父容器作为参照
注意<html>也是盒子模型。
父容器是static布局,子元素是absolute布局的情况,示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>position的进一步研究</title> <meta charset="utf-8" /> <style type="text/css"> html { border:2px solid blue; margin:20px 0 0 30px; /*默认是static定位*/ } body { height:300px; border:2px solid red; /*默认是static定位*/ } #abs1 { position:absolute; left:0; bottom:0; width:100px; height:100px; background-color:pink; } </style> </head> <body> <div id="abs1"> </div> </body> </html>
运行结果:
在此例中,div使用的是absolute定位,它的父容器body使用了static定位,而它的祖父元素html也使用了static定位,此时div将会以最近的非static容器(窗体)为参照进行绝对定位,于是出现上图所示的效果。
如果把该例中的html的定位方式设置为position:relative(非static方式),此时div就将会以最近的非static容器(html)为参照进行绝对定位,效果如下图所示:
父容器是非static布局(这里用relative),子元素是absolute布局的情况,示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>position的进一步研究</title> <meta charset="utf-8" /> <style type="text/css"> html { border:2px solid blue; margin:20px 0 0 30px; /*默认是static定位*/ /*position:relative;*/ } body { height:300px; border:2px solid red; /*默认是static定位*/ position:relative; } #abs1 { position:absolute; left:0; bottom:0; width:100px; height:100px; background-color:pink; } </style> </head> <body> <div id="abs1"> </div> </body> </html>
运行结果:
以上几个例子就说明了为什么在网页设计中父元素常常使用relative定位方式。
如果不设置left、top、right、bottom,元素脱离文档流并不会占位。(默认的文档流为:从左到右,从上到下)
作用:z-index可起到作用,width和height也起到作用。
示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>position的进一步研究</title> <meta charset="utf-8" /> <style type="text/css"> html { border:2px solid blue; margin:20px 0 0 30px; /*默认是static定位*/ /*position:relative;*/ } body { height:300px; border:2px solid red; /*默认是static定位*/ } #abs1 { position:absolute; /*left:0; bottom:0;*/ width:100%; height:100px; background-color:pink; margin-left:20px; } </style> </head> <body> <div id="abs1"> </div> <div style="height:200px;background:green;z-index:2;"> </div> </body> </html>
运行结果为:
可以看到,绿色块起点与粉红色块起点一样都是在左上角,说明粉红色块并没有占位。
position:relative 总是以父容器作为参考点。
left和top值有效,right和bottom值无效。
不会脱离文档流,依然会占位。不管怎么移动,将元素移动到哪,该元素都始终占有高度指定的那一块区域。示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>position的进一步研究</title> <meta charset="utf-8" /> <style type="text/css"> html { border:2px solid blue; margin:20px 0 0 30px; /*默认是static定位*/ position:relative; } body { height:300px; border:2px solid red; /*默认是static定位*/ } #abs1 { position:relative; /*left:0; bottom:0;*/ width:100px; height:100px; background-color:pink; left:50px; top:50px; } #second { background-color:black; height:60px; } </style> </head> <body> <div id="abs1"> </div> <div id="second"> </div> </body> </html>
运行结果如下:
[b]【[b]面试题[/b]】position设置后元素会不会脱离文档流?[/b]
分情况说明。
position:absolute绝对定位时,如果不设置left、top、right、bottom属性值的话,元素将会脱离文档流并不会占位。
position:relative相对定位时,无论设置还是不设置left、top、right、bottom属性值,元素都不会脱离文档流,都会占位。
[b]选项卡的设计与制作[/b]
例如:(京东首页,选中的部分顶部有红色条显示,动态控制样式需要使用js)
高能预警,我又要画图了……用画图板,还要写字呢!!!好害怕……所以啊,谁教教我ps吧(笑哭)
设计结构如下:a标签使用绝对定位,顶边框粗一点,底部没有,背景颜色是白色,a标签向覆盖div的红色边框。其他部分……看!!!!!图!!!!!/(ㄒoㄒ)/~~
我自己看着都想笑……
是不是感觉自己又能上天了!
我猜是的。
示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>选项卡的设计与制作</title> <meta charset="utf-8" /> <style type="text/css"> ul, li { margin:0; padding:0; list-style:none; } a { text-decoration:none; font:400 12px/12px 宋体; color:black; } #xuanxiangka { border-bottom:1px solid #c81623; height:35px; } #xuanxiangka .title li { float:left;/*浮动会导致父容器ul和div高度为0,需要给父容器设定高度才可以显示出border-bottom的效果*/ width:85px; height:35px; line-height:35px; text-align:center; position:relative; z-index:3; } /*分割线的设计*/ #xuanxiangka .title li span { width:1px; background-color:gray; overflow:hidden; display:block;/*因为span是行级标签,要使设置的width属性有效,需要使其变为块级标签显示*/ position:absolute; right:0; top:10px; height:18px; } /*ul边框的设计*/ #xuanxiangka .title { border:1px solid gray; height:35px; border-bottom:none; margin-left:500px; } /*选中的a标签样式的设计*/ #xuanxiangka .title .title-selected a { border:1px solid #c81623; display:block;/*将行级元素变成块级元素才能设定它的宽度和高度*/ width:86px; height:33px; line-height:35px; text-align:center; border-top:3px solid #c81623; z-index:5;/*li标签赋值为3,为了覆盖掉下面的红色线条*/ position:absolute; top:-1px; left:-1px;/*向左移动1px,覆盖掉左边边框*/ background-color:white; border-bottom:none;/*底部边框超出红色底线1px,去掉底部边框,设置背景色为白色,就把原来的红色线条覆盖了*/ } </style> </head> <body> <div id="xuanxiangka"> <ul class="title"> <li class="title-item title-selected"><a href="javascript:void(0)">大牌</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">男装</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">女装</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">鞋靴</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">箱包</a><span>a</span></li> <li class="title-item title-selected"><a href="javascript:void(0)">内衣配饰</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">珠宝首饰</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">奢品礼品</a><span>a</span></li> <li class="title-item"><a href="javascript:void(0)">奢华腕表</a><span>a</span></li> </ul> </div> </body> </html>
运行结果:
[b]使用伪类样式实现动态效果[/b]
:hover 鼠标悬浮,改变背景颜色
示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hover鼠标悬浮样式的设置</title> <meta charset="utf-8" /> <style type="text/css"> ul { list-style:none; } li { height:28px; line-height:28px; } li:hover { background-color:orange; color:white; display:block; height:50px; line-height:50px; cursor:pointer; } </style> </head> <body> <ul> <li>标题一</li> <li>标题二</li> <li>标题三</li> <li>标题四</li> </ul> </body> </html>
运行结果:
transform与transition搭配使用 (去看文档!!!)
transform 过渡转换的过程(即以什么样的方式进行转换,比如说旋转,翻转,上下移动这种样式)。
transition 过渡效果(比如说从一个ppt页到另一页的过渡方式的选择,嗯,就是这个意思……)
向下移动的效果-示例代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>移动的测试</title> <meta charset="utf-8" /> <style type="text/css"> #d1 { background-color: pink; height: 200px; width: 1300px; position: relative; border: 2px solid red; overflow: hidden; } #d1 #img { position: absolute; left: -100px; /*第一个参数是要过渡的样式 第二个参数是要过渡的时间 第三个参数是过渡的方式(线性的,平滑的还有各种的) 第四个参数是开始这种过渡的时间*/ transition:transform 5s linear 0s; } #d1:hover #img { transform:translateX(1200px);/*延x轴移动1200px,只是有了移动的样式,并不能看见移动的过程,想要看见移动的过程需要配合transition一起使用*/ } #d2 { background-color: pink; border: 2px solid red; width: 55px; height: 200px; position: relative; overflow: hidden; } #d2 #loz { font-style: normal; font: 600 100px/100px Consolas; position: absolute; top: -52px; transition:transform 1s ease 0s; } /*鼠标悬浮在d2层上时做效果,对loz菱形做效果*/ #d2:hover #loz { /*还可以选取其他的效果*/ transform: translateY(190px);/*延y轴移动190px,只是有了移动的样式,并不能看见移动的过程,想要看见移动的过程需要配合transition一起使用*/ } </style> </head> <body> <div id="d1"> <i id="img"> <img src="../img/boy1.jpg" /> </i> </div> <br /> <br /> <div id="d2"> <i id="loz">◊</i> </div> </body> </html>
运行结果:
初始时(移动前)
移动过程中的样子(我不能做一个gif或者小视频放上来a,但是效果还是hin炫酷的!帅哥在移动,关键是鼠标移出后,他还会自己回去!哈哈哈哈哈,有做男朋友的潜质!!!)
鼓掌!我要开始学JS啦!!!认真起来我自己都害怕哈哈哈!!!!!
相关文章推荐
- JS函数arguments数组获得实际传参数个数的实现方法
- jQuery源码学习(二)
- 20个超级实用的CSS技术!!!
- 12个非常实用的JavaScript小技巧
- 深入理解JS函数的参数(arguments)的使用
- javascript进阶(三)— — 变量提升
- 深入理解js中this的用法
- jquery购物车数量加减
- javascript进阶(二)— — 异步编程
- fastjson过滤属性,重点在于PropertyFilter 这个东西(应用场景,hibernate懒加载过滤不要的属性)
- JavaScript 变量声明提升
- react native中需要rnpm link的组件
- javascript高级函数
- css中自适应的问题
- Directx11学习笔记【十四】 使用最新的Effect框架和SDK
- 《Javascript、jQuery获取各种屏幕的宽度和高度方法》
- 借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
- JavaScript初学者难以知道的事(初级篇三)
- js常用操作
- css 背景