如何强制元素位于中间
How to force elements to be in middle?
我正在使用以下代码来显示一些图像,但我不知道如何在中间移动它们。有人知道吗?
CSS
.cover-image{
max-width: 300px;
max-height: 250px;
}
HTML
<div class="row" id="covers">
<div class="col-xs-6 col-sm-4">
<div class="cover" style="margin-bottom: 10px;">
<a target="_blank"><img class="cover-image" /></a>
</div>
</div>
</div>
JS-
$.ajax({
type : 'GET',
dataType : 'json',
url: 'data.json',
success : function(data) {
var data = data.info;
var covers = document.getElementById("covers");
var blockTemplate = covers.getElementsByTagName("div")[0].cloneNode(true);
covers.getElementsByTagName("div")[0].remove();
data.forEach( function(obj) {
block = blockTemplate.cloneNode(true);
block.getElementsByTagName("a")[0].setAttribute('href', obj.link);
block.getElementsByTagName("img")[0].setAttribute('src', obj.cover);
covers.appendChild(block);
});
$("img").css({"vertical-align":"middle"});
}
});
现在显示的演示如下:http://tdhtestserver.herobo.com/test/
只需尝试
这是你想要的吗
必须使用psuedo css
.cover {
border:1px solid;
height:200px;
width:200px;
vertical-align: middle;
text-align: center;}
.cover:before { /* create a full-height inline block pseudo=element */
content: ' ';
display: inline-block;
vertical-align: middle; /* vertical alignment of the inline element */
height: 100%;
}
.cover-image {
margin-left: auto;
margin-right: auto;
display: inline-block;
vertical-align: middle;
}
这可能会使问题更加清楚。
Fiddle演示
如果要对齐图像中间中心,可以将固定大小设置为.cover
,并将max-width
和max-height
设置为a
。然后可以使用绝对位置和css变换来对齐a
。示例:
.cover {
width: 300px;
height: 250px;
position: relative;
}
.cover a {
max-width: 100%;
max-height: 100%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
以下是我在JSFiddle中尝试的内容:
http://jsfiddle.net/7w5fw7fw/
我将图像直接放入div容器:
<div class="row" id="covers">
<img src="http://sjhitsquad.net/wp-content/uploads/freshizer/3d142cc9444fe922cf69cf90e344ce5f_placeholder-920-350-c.gif">
<img src="http://www.garethjmsaunders.co.uk/blueprint/placeholders/gif/grid/span-11-rows-15.gif">
<img src="https://www.adspeed.com/placeholder-123x456.gif">
<img src="http://fpoimg.com/300x300?text=Advertisement">
<img src="http://www.garethjmsaunders.co.uk/blueprint/placeholders/gif/grid/span-11-rows-15.gif">
<img src="http://fpoimg.com/300x300?text=Advertisement">
</div>
将每一个图像封装在一个单独的div中对我来说没有太大吸引力。如果有这样的需要,最好使用<figure>
,这是语义上的。
这里是把图像放在中间的CSS:
html, body {
height: 100%;
margin: 0;
}
#covers {
background: yellow;
width: 100%;
min-height: 100%;
text-align: center;
}
img {
max-width: 300px;
min-height: 250px;
vertical-align: middle;
}
背景色只是为了显示容器的宽度和高度(与整个主体元素一样多)。根据窗口宽度的不同,图像可能全部显示在一行中,也可能分成多行。
这与你被搜查的行为接近吗?
你的问题不清楚,但我认为你想要这个试着在你的身体上添加这个
body {
margin: auto !important;
}
相关文章:
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 什么'在Express中路由时,应用程序级中间件和路由器级中间件之间的区别是什么
- Redux中间件在next()之前更改状态
- 遗漏中间部分的单页点导航
- 在屏幕中间打开一个弹出窗口
- Regex加在中间
- 快速的套接字 io 实例/中间件
- JS/CSS旋转的DIVS在任何屏幕的中间相遇
- javascript可拖动滑块,可在mouseUp上捕捉回中间位置
- Javascript和Canvas绘制中间有孔的圆
- 如何使用Express'正确加载图像;s的静态中间件
- 将滚动条移动到页面中间的控制位置
- 如何在快递中制作中间件的动态链.js
- Highstock,错误:未捕获的类型错误:w[(中间值)(中间值)(中间值)]不是构造函数
- 在 Redux 中,在商店中应用中间件未正确称为化简器
- 如何使用JS在中间输入文本中动态插入字符
- jQuery .on 应用于所有中间节点
- Express v4:如何在参数中间件之前运行特定于路由的中间件
- 我的错误处理程序如何优先于早期的中间件
- JQuery动画,其中暂停点位于动画中间