我正试图将图像居中,但未能这样做。我添加了保证金:auto;图像但不工作。当删除float:left;从旋转木马,结构搞砸了。
如何将图像居中?
由于
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
var showing_default = true;
var did_scroll = false;
$(window).on("scroll", function (e)
{
did_scroll = true;
});
window.setInterval(function ()
{
if (did_scroll)
{
did_scroll = false;
if (showing_default && $(document).scrollTop() >= 100)
{
showing_default = false;
$("#header").css('position', 'fixed');
$("#default").stop().hide();
$("#sticky").fadeIn(500);
}
else if (! showing_default && $(document).scrollTop() < 100)
{
showing_default = true;
$("#sticky").stop().hide();
$("#default").fadeIn(500);
$("#header").css('position', 'fixed');
}
}
}, 250);
});
</script>
<style>
*
{
margin: 0px;
padding: 0px;
}
#header, #default, #carousel, #body, #footer
{
display: block;
width: 100%;
}
/* --- HEADER ------------------------------------------------------------------ */
#header, #default, #sticky
{
background: #EEEEEE;
}
#header
{
position: fixed;
z-index: 100;
border-bottom: 1px solid #CCCCCC;
}
#default
{
height: 100px;
}
#sticky
{
display: none;
height: 50px;
}
/* --- CAROUSEL ---------------------------------------------------------------- */
#carousel
{
margin-top: 101px;
float: left;
height: 400px;
background: #FFFFFF;
}
#images
{
position: absolute;
}
.image
{
display: none;
position: absolute;
width: 900px;
height: 400px;
}
.image img
{
width: 900px;
height: 400px;
}
.first
{
display: block;
}
/* --- BODY -------------------------------------------------------------------- */
#body
{
background: #EEEEEE;
}
/* --- FOOTER ------------------------------------------------------------------ */
#footer
{
background: #DDDDDD;
}
</style>
</head>
<body>
<div id="header">
<div id="default">DEFAULT HEADER</div>
<div id="sticky">STICKY HEADER</div>
</div>
<div id="carousel">
<div id="images">
<div class="image first"><img src="images/1.jpg" /></div>
<div class="image"><img src="images/2.jpg" /></div>
<div class="image"><img src="images/3.jpg" /></div>
<div class="image"><img src="images/4.jpg" /></div>
</div>
</div>
<div id="body">TOP<br /><br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br />BODY<br /><br />BOTTOM</div>
<div id="footer">FOOTER</div>
</body>
</html>
答案 0 :(得分:1)
当使用“margin:0 auto”声明居中图像时,您还需要“display:block”声明(div元素不需要这个)。
.photo { display: block; margin: 0 auto; }
答案 1 :(得分:1)
你使用过这样的结构:
<div id="images">
<div id="image">...</div>
<div id="image">...</div>
<div id="image">...</div>
<div id="image">...</div>
</div>
因此我建议将div放在中心位置,并使图像适应div宽度...... 我的解决方案的独特问题可能是不同大小的图像。
你可以查看我的示例小提琴: http://jsfiddle.net/zsfjL/11/ http://jsfiddle.net/zsfjL/10/embedded/result/
答案 2 :(得分:0)
添加margin-left:
元素总宽度的一半(负值)和left:50%
的CSS:
#images
{
position: absolute;
margin-left: -450px;
left: 50%;
}
答案 3 :(得分:0)
你可以在这里找到几条不同的路线,所以在给出答案之前我想解释一下...... Brendan Rice是对的,保证金:0自动;仅适用于块级元素,默认情况下IMG不是块级别。我还必须补充说,元素需要一个小于100%的指定宽度才能工作。
浏览器为每个HTML对象分配默认属性,您可以使用CSS覆盖它们。显示是一个规则,描述了此元素将控制的流和空间的类型(更多详细信息:http://css-tricks.com/almanac/properties/d/display/)。默认情况下,块级元素(如DIV或P标记)的宽度为其容器的100%。这会导致前后行返回。
当我们想要一个块级元素居中时,通常会覆盖宽度然后设置margin:0 auto;当我们想要一个内联对象居中时,text-align:center;习惯。
在你的情况下,我会先设置position:relative;并指定div#carousel上的宽度,因为使用浮动规则时会指示这些宽度。位置:您的旋转木马div和图像div是绝对需要的吗?如果是,我会将display:block;margin:0 auto;
添加到您的.image img
规则中。