我为照片设置了一个模态,所以当我点击一张小照片时,我会在一个模态中获得一张更大的照片,模态有position: fixed;
,而模态内容有position: absolute;
我可以用margin: auto; left: 0; right: 0;
居中,但宽度一直向右和向左,我希望模态内容宽度与其中的照片或模态内容的内容相同
我的代码:
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
padding: 30px;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
.modal-content {
background-color: #fefefe;
position: absolute;
top: 50px;
margin-bottom: 30px;
margin: auto;
border: 1px solid #888;
}
.modalimg {
position: relative;
text-align: center;
}
.modalimg img{
max-width: 100%;
max-height: 400px;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
position: relative;
box-shadow: 0 0 20px rgba(0,0,0,0.4);
}
现在它可能有点乱,但我已经尝试了很多不同的东西而没有运气..
答案 0 :(得分:6)
这是我使用绝对定位元素时所使用的内容,这对我一直有效:
.absolute-center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
答案 1 :(得分:2)
请你
.element {
position: absolute;
top: 15px;
z-index: 2;
width: 40%;
max-width: 960px;
min-width: 600px;
height: 60px;
overflow: hidden;
background: #fff;
margin: 0 auto;
left: 0;
right: 0;
background: red;
color: #fff;
text-align: center;
}
<div class="element">
text..
</div>
答案 2 :(得分:1)
.modal-content {
background-color: #fefefe;
position: absolute;
top: 50px;
left: 50px;
right: 50px;
bottom: 50px;
border: 1px solid #888;
}
答案 3 :(得分:1)
将绝对div与中心对齐 左:0; 右:0 text-align:center 这将使div在中心对齐。
答案 4 :(得分:1)
这是一个可能的解决方案:
absolute
定位在内容容器(.modal-content
)absolute|fixed
内容容器(.modal-content
)将随其内容一起增长。最后,使用transform: translate(-50%, -50%);
:
.modal {
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.4);
}
.modal-content {
border: 1px solid red;
position: absolute;
top: 50%;
left: 50%;
border: 2px solid red;
transform: translate(-50%, -50%);
}
<div class="modal">
<div class="modal-content">
<img src="//placehold.it/200x200" alt="">
</div>
</div>
<强>演示强>