像下面这个图片,我想让他根据不同宽度和高度都能上下左右居中,要怎么处理
<div class="thumbnail">
<a href="###" >
<img src="##" alt="...">
</a>
</div>
像下面这个图片,我想让他根据不同宽度和高度都能上下左右居中,要怎么处理
<div class="thumbnail">
<a href="###" >
<img src="##" alt="...">
</a>
</div>
如果不考虑ie以及其他低版本浏览器
display:flex;
justify-content:center;
align-items:center;
这个是最好的方案。
如果要兼容,我一般做法
.box{
Text-align:center;
Line-height:盒子高度;
}
Css3可以考慮flexbox細節屬性
Css2樓上有寫可以用:
1:父級相對定位,子元素絕對定位,並且to,bottom,left,right都為0,且margin:auto。注意:子元素要給寬高;
2:用table,table-cell,結合vertial-align:middle,text-align:center
實驗性屬性可以考慮display:grid
img是行内块元素,
display:inline-block,
可以让父元素的高度等于父元素的行高,img再设置,vertical-align:middle
一定要确保img是行内块元素,
display:table
display:table-cell
也可以。
左右可以直接text-align:center
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.container{
width: 600px;
border: 1px solid red
}
.imgOuterHAlign{
width: 560px;/*设置和img一样宽*/
margin: 0 auto
}
.imgOuterVAlign{
line-height: 400px;/*设置和container一样高*/
}
.linkImg{
vertical-align: middle /**垂直对齐*/
}
</style>
</head>
<body>
<div class="container">
<div class="imgOuterHAlign">
<div class="imgOuterVAlign">
<a href="#">
<img src="https://segmentfault.com/img/bVx9Fx" class="linkImg">
</a>
</div>
</div>
</div>
</body>
</html>
img{
height: 540px;
margin-top: -270px;
position: relative;
top: 50%;
width: 600px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.imgWrap{
width:200px;
height:100px;
background:pink;
overflow: hidden;
}
.imgWrap .imgModel{
width:50px;
height:50px;
display: block;
background:red;
/*父容器宽高一半减去自身的宽高的一半
* width:(200/2)-(50/2)
* height:(100/2)-(50/2)
*/
margin:25px 75px;
}
</style>
</head>
<body>
<div class="imgWrap">
<a href="#" class="imgModel"></a>
</div>
</body>
</html>
父容器记得使用overflow属性,否则子元素margin属性会和父容器水平居中。
.thumbnail a{
display: block;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
4 回答948 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.6k 阅读
1 回答883 阅读✓ 已解决
1 回答704 阅读✓ 已解决
3 回答729 阅读
可以考虑table布局
https://jsfiddle.net/fweaverss/fr90k02s/