有没有办法只使用CSS
定位中心加x像素div
?
我现在有这个CSS代码:
#mydiv {
display: block;
width: 200px;
margin: 200px auto;
}
我想把这个div定位到中心+ 300px到右边。可以只使用CSS吗?
(我知道here is a way使用jQuery,但我只想使用CSS。)
答案 0 :(得分:2)
是的,对于支持CSS3 calc()
的浏览器。
#mydiv {
display: block;
width: 200px;
margin-left: calc(50% + 200px); /* 50% - 100px (half of the div) + 300px */
}
#mydiv {
display: block;
width: 200px; height: 50px;
margin-left: calc(50% + 200px);
/* 50% - 100px (half of the div) + 300px */
background: blue;
}

<div id="mydiv"></div>
&#13;
答案 1 :(得分:1)
您可以通过将transform: translateX(300px);
添加到#mydiv
JSFiddle - DEMO
#mydiv {
display: block;
width: 200px;
margin: 200px auto;
transform: translateX(300px);
}
答案 2 :(得分:0)
像这样:http://jsfiddle.net/j6rnvdzp/?
div {
display: block;
width: 200px;
margin: 200px auto;
background-color:red;
position:absolute;
right:-300px;
left:0;
}
答案 3 :(得分:0)
首先,检查 Fiddle Demo
如果您可以稍微调整HTML,则可以不使用任何CSS3技巧。诀窍是在屏幕中央放置一个大小为0X0像素的.wrapper
元素(在本例中为.container
),并在INSIDE这个包装器中定位.content
并使用其“偏移量”(right
/ left
属性)。
希望它有所帮助: - )
<强> HTML 强>
<div class="container">
<div class="anchor">
<div class="content"></div>
</div>
</div>
<强> CSS 强>
.container {
background-color:red;
position:relative;
height:500px;
}
.anchor {
position:absolute;
top:50%;
left:50%;
width:0;
height:0;
overflow:visible;
}
.content{
position:absolute;
right:-100px; /* play with this to shift the content from the center... */
width:200px;
height:50px;
background-color:blue;
}