我坚持使用我的HTML / CSS代码,我需要水平居中两个div(A,B),背景图片放在一个绝对定位的div(C)中。
记住这一点:
position
属性。这是我的小提琴,我设法将(A)div放在(C)http://jsfiddle.net/meridius/DGexR/内。但无论我做什么,我都无法完成剩下的工作。
修改
以下是
代码预览:
对于工作示例(带背景图片),请参阅上面提到的小提琴。
HTML
<div class="desk">
<div class="figure">
<div class="type sprites-sachy sprite-WKing"></div>
<div class="special sprites-sachy sprite-halo"></div>
</div>
</div>
CSS
.desk { /* this class must not be touched */
position: absolute;
top: 129px;
left: 202px;
border: 1px solid #FF0000;
width: 65px;
height: 65px;
padding: 0;
float: left;
}
.figure {
bottom: 0;
left: 50%;
position: absolute;
}
.type {
margin-left:-50%;
z-index:2;
}
.special {
border: 1px solid #008000;
z-index:1;
/* display:none; uncomment this to see .figurka centered how it is supposed to */
}
注:的
我想避免将这个问题视为过于本地化,所以让我首先说明我认为我不是唯一一个在CSS中定位(和居中)元素的人。
答案 0 :(得分:1)
当您使用display: none
或position: absolute
时,.special
将从流程中取出,.type
正确居中。
要水平居中.special
,您可以使用CSS-TRICKS: Centering Percentage Width/Height Elements中的技巧:将其移至顶部,将宽度的一半移至左侧
.special {
position: absolute;
top: 0;
transform: translate(-50%, 0);
}
剩下的唯一项目就是.special
移动.type
z-index: -1
。
查看完整的JSFiddle
由于您知道.sprite-halo
的宽度为78px
,因此您始终可以使用像素值
.special {
position: absolute;
top: 0;
left: -39px;
}
另见@Bipin Kumar Pal的回答。
答案 1 :(得分:0)
所以你有这个结构:
<div class="desk">
<div class="figure">
<div class="type"></div>
<div class="special"></div>
</div>
</div>
确保.desk是绝对的或相对的(你做过)。请注意,浮动不会做任何事情。现在我想.type是200px h / 200px w而.special是150px h / 150px w。
.desk { position: absolute; .. }
.desk .figure { position: absolute; width: 200px; height: 200px; bottom: 0; left: 50%; margin-left: -100px; }
.desk .type { position: absolute; z-index: 2; margin-left: -100px; left: 50%; top: 0; }
.desk .special { position: absolute; z-index: 1; margin-left: -75px; left: 50%; top: 0; }
就是这样。
答案 2 :(得分:0)
.sprite-halo{ background-position: 0 -1700px; width: 78px; height: 12px; background-color:darkgreen; position:absolute; top:0; left:-40px; z-index:-5;}
请使用此代码。我的工作。