Html 垂直居中
这就是我的代码的样子Html 垂直居中,html,css,Html,Css,这就是我的代码的样子 #容器{ 宽度:584px; 高度:50px; 位置:相对位置; 溢出:隐藏; } #集装箱保险{ 位置:绝对位置; 保证金:0; 填充:0; 宽度:3504px; } #集装箱保险箱{ 宽度:584px; 浮动:左; 保证金:0; 填充:0; 溢出:隐藏; } 如果您可以添加jQuery库,您可以试试这个 $(document).ready(function(){ // Remove li float $("#container ul li
#容器{
宽度:584px;
高度:50px;
位置:相对位置;
溢出:隐藏;
}
#集装箱保险{
位置:绝对位置;
保证金:0;
填充:0;
宽度:3504px;
}
#集装箱保险箱{
宽度:584px;
浮动:左;
保证金:0;
填充:0;
溢出:隐藏;
}
如果您可以添加jQuery库,您可以试试这个
$(document).ready(function(){
// Remove li float
$("#container ul li").css("float", "none");
// Get the full height of the UL
var ulheight = $("#container ul li")[0].scrollHeight;
// Based on the height of the container being 50px you can position the UL accordingly
var pushdown = (50-ulheight)/2;
$("#container ul li").css("top", pushdown);
});
在CSS中,垂直“居中”一个div
或其他容器是相当棘手的,下面是您的选项
您知道容器的高度
如果您知道容器的高度,可以执行以下操作:
#container {
position: absolute;
top: 50%;
margin-top: -half_of_container_height_here;
}
我们基本上放在中间,然后用一个等于一半高度的负余量来抵消它。父容器需要有位置:相对
您不知道容器的确切高度
在这种情况下,您需要使用JavaScript并计算适当的边距(不幸的是,您不能使用边距顶部:auto
或类似的工具)
.请以后使用搜索功能。解释了完整的答案;这是您的场景的代码:
.container {
display: table;
height: 100%;
position: absolute;
overflow: hidden;
width: 100%;}
.helper {
#position: absolute; /*a variation of an "lte ie7" hack*/
#top: 50%;
display: table-cell;
vertical-align: middle;}
ul{
#position: relative;
#top: -50%;
margin:0 auto;
width:200px;}
这三个元素必须按如下方式嵌套:
<div class="container">
<div class="helper">
<ul><!--stuff--></ul>
</div>
</div>
现在您可以使父容器显示:flex和align items:center。这应该行得通。尽管旧浏览器不支持flexbox属性。您可以使用flex
使ul
居中垂直、水平或两者类似
.container{
背景:#f00;
高度:150像素;
显示器:flex;
对齐项目:居中;
/*对齐内容:居中;=>将使ul居中水平*/
}
.集装箱ul{
背景:#00f;
}
- A
- B
- C
对于绝对定位,只有在事先知道元素高度(或使用JavaScript测量)的情况下才能进行绝对定位。我可以做到。你能告诉我更多的细节吗?试着加上:自动;你的保证金:0;您是否将其限制为仅使用css,而不使用javascript解决方案?出于故障排除的目的。在添加任何可能影响定位的其他内容之前,我会先尝试让裸体解决方案起作用。既然有人说CSS不能修改,那么你可以通过jQuery删除它。我的意思是,我需要CSS是因为其他原因,而不是因为实际上不可能删除它:D-1,尽可能避免使用javascript进行样式设计-特别是当可以通过CSS实现时,这是避免所谓的“flash of unstyled content”是的,也许吧,但这是我真正需要做的唯一事情。我知道你说的flash of unstyled content是什么意思,但最终我认为这取决于内容的位置。jQuery内置CSS功能有很多原因,就像你说的“尽可能不要使用javascript”“,但在这种情况下,这也许是所需要的。这个解决方案似乎正在发挥作用。我已经尽了最大努力来解释为什么页边顶部不能自动——以及比绝对定位更优雅的垂直居中方式:)你不认为我已经在寻找答案了吗?你的方法不管用。@香蕉我知道这是个老问题,但你使用的是什么浏览器?经过大量研究,我确定这种方法适用于Opera、IE8+、Firefox、Chrome和safari。