03
1- 在一个页面中给多个元素设置同样的 id,会导致什么问题?
id一个页面只可以使用一次,class可以多次引用。
第一影响就是不能通过W3的校验
在页面显示上,目前的浏览器还都允许你犯这个错误,用多个相同ID“一般情况下”也能正常显示。但是当你需要用JavaScript通过id来控制这个div,那就会出现错误。
2- 用伪类实现一个上三角
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 .tri_top, .tri_right, .tri_bottom, .tri_left{ 8 width: 150px; 9 height: 100px; 10 background: #CCCCCC; 11 border-radius: 8px; 12 margin: 50px 50px; 13 position: relative; 14 float: left; 15 } 16 .tri_top:before{ 17 content: ""; 18 width: 0px; 19 height: 0px; 20 border-left: 10px solid transparent; 21 border-right: 10px solid transparent; 22 border-bottom: 10px solid #CCCCCC; 23 position: absolute; 24 top: -10px; 25 left: 65px; 26 } 27 .tri_right:before{ 28 content: ""; 29 width: 0px; 30 height: 0px; 31 border-top: 10px solid transparent; 32 border-bottom: 10px solid transparent; 33 border-left: 10px solid #CCCCCC; 34 position: absolute; 35 top: 40px; 36 left: 150px; 37 } 38 .tri_bottom:before{ 39 content: ""; 40 width: 0px; 41 height: 0px; 42 border-top: 10px solid #CCCCCC; 43 border-left: 10px solid transparent; 44 border-right: 10px solid transparent; 45 position: absolute; 46 top: 100px; 47 left: 70px; 48 } 49 .tri_left:before{ 50 content: ""; 51 width: 0px; 52 height: 0px; 53 border-top: 10px solid transparent; 54 border-bottom: 10px solid transparent; 55 border-right: 10px solid #CCCCCC; 56 position: absolute; 57 top: 40px; 58 left: -10px; 59 } 60 </style> 61 </head> 62 <body> 63 <div class="tri_top"></div> <!--三角形在上边--> 64 <div class="tri_right"></div> <!--三角形在右边--> 65 <div class="tri_bottom"></div> <!--三角形在底边--> 66 <div class="tri_left"></div> <!--三角形在左边--> 67 </body> 68 </html>
3- 怎么让一个不定宽度的 div 实现垂直和水平居中?
方式一: 使用css方法:
父盒子设置:
display: table-cell; text-align: center; vertical: middle;
div设置:
display: inline-block; vertical-align: middle;
方式二:
使用css3
transform:
父盒子设置:
position: relative;
div设置: left:
50%; top: 50%; transform: translate(-50% -50%);
方式三:使用CSS3 flex
父盒子设置:display:flex;justify-content:center;align-items:center;
4- 清浮动的方式有哪些?
一、 额外标签法: 给谁清除浮动,就在其后额外添加一个空白标签 。
优点: 通俗易懂,书写方便。(不推荐使用)
缺点: 添加许多无意义的标签,结构化比较差。
给元素small清除浮动(在small后添加一个空白标签clear(类名可以随意),设置clear:both;即可)
二、 父级添加overflow方法: 可以通过触发BFC的方式,实现清楚浮动效果。必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度
优点: 简单、代码少、浏览器支持好
缺点: 内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。不能和position配合使用,因为超出的尺寸的会被隐藏。
注意: 别加错位置,是给父亲加(并不是所有的浮动都需要清除,谁影响布局,才清除谁。)
三、使用after伪元素清除浮动: :after方式为空元素的升级版,好处是不用单独加标签了。IE8以上和非IE浏览器才支持:after,,zoom(IE专有属性)可解决ie6,ie7浮动问题(较常用推荐)
优点: 符合闭合浮动思想,结构语义化正确,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)
缺点: 由于IE6-7不支持:after,使用zoom:1,触发hasLayout。
四、使用before和after双伪元素清除浮动:(较常用推荐)
优点: 代码更简洁
缺点: 用zoom:1触发 hasLayout.
5- 如何让两个块级元素显示在同一行
使用float
display:inline-block;
采用flex布局:把父容器设置成弹性盒子
浙公网安备 33010602011771号