布局的一点总结
1.box布局
Box布局实现了浮动,并且默认沿着一行排列div。超过部分在页面可视区域之外(一行的右边),超过部分不会跑到下一行。
Box布局的好处:如果左对齐,不用考虑子元素的宽度, box 就可以实现真正意义上的流体布局。只要给出相应属性,浏览器会帮我们做额外的计算。
2.选择按钮
如果用input的对象,选择按钮其实只有radio对象,button对象只在点击事件的时候使用。
Input选择按钮用其他的替代,不同状态改变class,这样做的好处是样式可以自定义,功能可以自定义:单选或者多选。以下是图片按钮的例子:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
/*按钮未选中状态*/
.select-icon{
background: url("../images/yy/select-icon.png") no-repeat;
background-size: 16px 16px;
width: 16px;
height: 16px;
position: absolute;
left: 6px;
top: 50%;
margin-left:1px;
z-index: 100;
}
/*按钮选中状态*/
.select-icon.cur{ background: url("../images/yy/selected-icon.png") no-repeat; background-size: 16px 16px; }
</style>
</head>
<body>
<div class="select-icon"></div>
<div class="select-icon cur"></div>
<script>
//获取选中状态的元素
$(".cur")
</script>
</body>
</html>
第1个样式是为未选择状态,第2个样式是选中状态。第二个样式的写法注意:在第1个样式上,多了1个样式而非切换样式。这样的好处是很容易获取到操作。
这样,我们用js获取选中的按钮可以这么写:
$(".cur")
3.页面错乱
在修改少量的样式布局后,页面完全错乱,经常以下两种原因:
1). 子元素浮动,为清除浮动,导致父元素高度塌陷,与父元素同级的元素占用这块区域,页面布局不正常。
2). 绝对定位的问题,绝对定位跟元素层次有关系,定位的标准是寻找最近的有定位的父元素(position:relative也算)。如果父元素忘记写定位,会出现错位,这时候会一直向上找有定位的元素,直至body。
3). 给元素设置高度,内容超出,下一个元素排列在超出部分的上面。这是因为:
div限定大小,内容超过大小,同级的下一个div会紧跟上一个div的大小进行排列,会出现覆盖超出部分的效果,例子:
4). margin重叠
4.图片居中的问题:
<img>也是inline元素,但是<img>和另一个inline元素input,都可以设置高度。他们有个称呼,叫替换元素。除了他们两这,还又<textarea>、<select>、<object>都是替换元素。他们是自身的某个属性决定显示的内容,这样一类元素。
Inline元素设置水平居中,在父级块级元素上设置属性:text-align:center;那么,现在的问题是垂直居中的问题了。
两种特殊的情况:1)块级父元素固定大小,<img>可以固定大小,这时候只需要一点计算,计算好margin,padding。图片自然能居中,电脑版网页有这么做的。
2)<img>可以固定大小,那么填充margin,padding这些。只要图片的这些填充四个方向的数值相同,图片放进去后自然居中。
复杂的情况是,图片要自适应。参考完阮一峰的博客胡,模仿写了一个,只在chrome下测试过。主要是这个:vertical-align:middle;display: table-cell
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
body{padding:0;margin:0}
.main{width:600px;height:1200px;text-align:center;border:1px solid #009;vertical-align:middle;display: table-cell;}
.main img{width:80%;margin:auto 0;}
</style>
</head>
<body>
<div class="main">
<img src="../assets/images/yy/good.png"/>
</div>
</body>
</html>
5 轮播图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
padding:0;margin:0;
}
section{
width:300px;
overflow: hidden;
}
.container{
width:30000px;
margin:0px;
}
.container li {
float: left;
}
.container li.active{
display: block;
}
.container li img{
width:300px;
}
</style>
</head>
<body>
<section>
<ul class="container">
<li>
<a>
<img src="http://pic11.nipic.com/20101214/213291_155243023914_2.jpg"/>
</a>
</li>
<li>
<a>
<img src="http://www.taopic.com/uploads/allimg/110915/15-1109150K62880.jpg"/>
</a>
</li>
<li>
<a>
<img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=66250564,3253305393&fm=23&gp=0.jpg"/>
</a>
</li>
</ul>
</section>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var _index = 0;
function setPic(index){
$('.container').animate({
marginLeft:"-300px"
},1000,function(){
$(".container").css({marginLeft:"0px"});
$(".container li:first").remove().clone(true).appendTo(".container");
})
}
setInterval(function(){
_index++;
console.log(_index)
setPic(_index);
},3000)
})
</script>
</body>
</html>

浙公网安备 33010602011771号