div居中的问题 給你一個參考網址: http://codepen.io/shshaw/full/gEiDt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 帮我看下代码好吗,为什么top:-50%不起作用呢 回答你的問題你可能忘記了position:relative; 的本質相對位置必需要有能夠參考的容器float本身會強制浮動到最左邊後方的標籤會適性靠著float 的區塊假如寬度不夠會自動往下方跳但就因為這個原故 float的top是不固定的所以你top設50%是無從參考起的float子層的div既然寬是100px,left就直接-50px既然高是100px,top就直接-50px這樣是最穩健的做法 如你所说 “ float的top是不固定的” 那么显然"float的left也是不固定的",为什么left:-50%起作用了呢 float 不會超過容器的寬max-width為100%但是高度無上限 <div style="width:500px;height:500px;border:1px solid black;position:relative"><div style="width:100px;height:100px;background-color:purple;position:absolute;top:50%;left:50%;margin:-50px -50px;"></div></div> 用过了这办法可行,但是需要知道被居中div的长度和宽度。 不確定的高度的div要居中可以使用1.絕對位置2.外層設display:cell; vertical-align:middle;3.display:inline-block; (舊ie版本使用display:inline; zoom:1)4.display:table我比較推薦用inline-block的做法 如你所说 “ float的top是不固定的” 那么显然"float的left也是不固定的",为什么left:-50%起作用了呢你本身就指明 position:relative 依据top left 相对于父元素 定位 ,为什么要用folat 呢? float不同於定位是隨著子元素的大小去做浮動這邊設float只是因為寬度的關係 <!--display:table-cell--><div style="width:500px;height:500px;position:relative;border:1px solid #000;display:table-cell;vertical-align:middle;text-align:center;"> <div style="display:inline-block;background:purple;padding:10px;"> 不確定高度的內容1<br /> 不確定高度的內容2<br /> </div></div><!--display:table--><div style="width:500px;height:500px;position:relative;border:1px solid #000;"> <div style="display: table;top: 0;left: 0;right: 0;bottom: 0;margin: auto;overflow: auto;position: absolute;width: 100px;background: purple;padding: 10px;"> 不確定高度的內容1<br /> 不確定高度的內容2<br /> 不確定高度的內容2<br /> 不確定高度的內容2<br /> </div></div><!--display:inline-block;--><div style="width:500px;height:500px;position:relative;border:1px solid #000;text-align:center;"> <div style="display: inline-block;background:purple;vertical-align:middle;"> 不確定高度的內容1<br /> 不確定高度的內容2<br /> 不確定高度的內容2<br /> 不確定高度的內容2<br /> </div> <span style="display:inline-block;width:0;height:100%;vertical-align:middle;"></span></div> 认真看啦,方法1,3类似,通过inline-block令text-align:center 生效;table-cell和100%height的空span令vertical-middle生效,方法2不太了解,在chrome下正常居中,IE8下没有垂直居中,学习了。thanks a lot!!!! Extjs的grid如何锁定列 如何当JS代码启动本地QQ的时候出现提示 JQuery对css属性值的比较操作问题 |zyciis| 如何在Jquery Ajax中的ajaxStart取得当前Ajax提交的url 谢谢 帮忙!正则表达式 CHECKBOX的问题。求救 求助,急 新建一个ASP文件,把里面的代码贴进去,按常理说点击链接之后是不能后退的,为什么replace没起作用? 一段代码怎么调也不行郁闷,请朋友们指点一下 ie 的刷新问题 jquery处理复选框的问题 $.post怎么发出
你可能忘記了position:relative; 的本質
相對位置必需要有能夠參考的容器
float本身會強制浮動到最左邊
後方的標籤會適性靠著float 的區塊
假如寬度不夠會自動往下方跳
但就因為這個原故 float的top是不固定的
所以你top設50%是無從參考起的float子層的div
既然寬是100px,left就直接-50px
既然高是100px,top就直接-50px
這樣是最穩健的做法
max-width為100%
但是高度無上限
<div style="width:500px;height:500px;border:1px solid black;position:relative"><div style="width:100px;height:100px;background-color:purple;position:absolute;top:50%;left:50%;margin:-50px -50px;"></div></div>
可以使用
1.絕對位置
2.外層設display:cell; vertical-align:middle;
3.display:inline-block; (舊ie版本使用display:inline; zoom:1)
4.display:table我比較推薦用inline-block的做法
是隨著子元素的大小去做浮動
這邊設float只是因為寬度的關係
<div style="width:500px;height:500px;position:relative;border:1px solid #000;display:table-cell;vertical-align:middle;text-align:center;">
<div style="display:inline-block;background:purple;padding:10px;">
不確定高度的內容1<br />
不確定高度的內容2<br />
</div>
</div><!--display:table-->
<div style="width:500px;height:500px;position:relative;border:1px solid #000;">
<div style="display: table;top: 0;left: 0;right: 0;bottom: 0;margin: auto;overflow: auto;position: absolute;width: 100px;background: purple;padding: 10px;">
不確定高度的內容1<br />
不確定高度的內容2<br />
不確定高度的內容2<br />
不確定高度的內容2<br />
</div>
</div><!--display:inline-block;-->
<div style="width:500px;height:500px;position:relative;border:1px solid #000;text-align:center;">
<div style="display: inline-block;background:purple;vertical-align:middle;">
不確定高度的內容1<br />
不確定高度的內容2<br />
不確定高度的內容2<br />
不確定高度的內容2<br />
</div>
<span style="display:inline-block;width:0;height:100%;vertical-align:middle;"></span>
</div>
thanks a lot!!!!