tim*_*tes 63 html css vertical-alignment css-tables flexslider
我试图垂直和水平地居中覆盖图像幻灯片(flexslider)的一些内容.有一些类似的问题,但我找不到一个直接适用于我的具体问题的令人满意的解决方案.由于FlexSlider的限制,我不能position: absolute;在我的实现中使用img标记.
我几乎有下面的工作方法.唯一的问题是我无法inner-wrapper使用display: table-cell属性获取宽度和高度声明来处理div .
这是标准行为,还是我错过了我的代码?如果这是标准行为,那么我的问题的最佳解决方案是什么?
HTML
<ul>
<li>
<img src="#">
<div class="outer-wrapper">
<div class="inner-wrapper">
<h1>My Title</h1>
<h5>Subtitle</h5>
</div>
</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS
html, body {
margin: 0; padding: 0;
width: 100%; height: 100%;
}
ul {
background: #CCC;
height: 100%;
width: 100%;
list-style-position: outside;
margin: 0; padding: 0;
}
li {
width: 100%;
display: table;
}
img {
width: 100%;
height: 410px;
}
.outer-wrapper {
position: absolute;
width: 100%;
height: 100%;
top: 0;
margin: 0; padding: 0;
}
.inner-wrapper {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100%;
height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
注意:居中的内容将超过1个元素,因此我不能使用行高技巧.
woo*_*666 67
放在display:table;里面.outer-wrapper似乎工作......
编辑:两个使用显示表格单元格的包装
我会评论你的答案,但我的代表太少了:(反正......
离开你的答案,看起来你需要做的就是加入display:table;内部.outer-wrapper(Dejavu?),你可以table-wrapper全心全意地摆脱它.
但是,是的,position:absolute让你把它div放在上面img,我读得太快,并认为你根本不能使用position:absolute,但似乎你已经弄明白了.道具!
我不会发布源代码,毕竟它的99%timshutes的工作,所以请参考他的答案,或只是使用我的jsfiddle链接
更新:使用Flexbox的一个包装器
已经有一段时间了,所有很酷的孩子都在使用flexbox:
<div style="display: flex; flex-direction: column; justify-content: center; align-items: center;">
stuff to be centered
</div>
Run Code Online (Sandbox Code Playgroud)
浏览器支持(来源):IE 11 +,FireFox 42 +,Chrome 46 +,Safari 8 +,iOS 8.4+(-webkit-前缀),Android 4.1+(-webkit-前缀)
如何在CSS中居:输入您希望内容如何居中,并输出如何在html和CSS中执行此操作.未来就在这里!
tim*_*tes 12
我想出了这一个.我知道有一天这会对某人有所帮助.
如何在相对定位的图像上垂直和水平居中Div
关键是第三个包装.我会投票给任何使用较少包装的答案.
HTML
<div class="wrapper">
<img src="my-slide.jpg">
<div class="outer-wrapper">
<div class="table-wrapper">
<div class="table-cell-wrapper">
<h1>My Title</h1>
<p>Subtitle</p>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
html, body {
margin: 0; padding: 0;
width: 100%; height: 100%;
}
ul {
width: 100%;
height: 100%;
list-style-position: outside;
margin: 0; padding: 0;
}
li {
width: 100%;
display: table;
}
img {
width: 100%;
height: 100%;
}
.outer-wrapper {
width: 100%;
height: 100%;
position: absolute;
top: 0;
margin: 0; padding: 0;
}
.table-wrapper {
width: 100%;
height: 100%;
display: table;
vertical-align: middle;
text-align: center;
}
.table-cell-wrapper {
width: 100%;
height: 100%;
display: table-cell;
vertical-align: middle;
text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到工作的jsFiddle.
小智 6
我发现'width'的值越大,盒子宽度越小,反之亦然.我发现了这个,因为我之前遇到了同样的问题.所以:
.inner-wrapper {
width: 1%;
}
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
欢迎来到2017年这些天将使用vW和vH做的伎俩
html, body {
margin: 0; padding: 0;
width: 100%; height: 100%;
}
ul {
background: #CCC;
height: 100%;
width: 100%;
list-style-position: outside;
margin: 0; padding: 0;
}
li {
width: 100%;
display: table;
}
img {
width: 100%;
height: 410px;
}
.outer-wrapper {
position: absolute;
width: 100%;
height: 100%;
top: 0;
margin: 0; padding: 0;
}
.inner-wrapper {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100vw; /* only change is here "%" to "vw" ! */
height: 100vh; /* only change is here "%" to "vh" ! */
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li>
<img src="#">
<div class="outer-wrapper">
<div class="inner-wrapper">
<h1>My Title</h1>
<h5>Subtitle</h5>
</div>
</div>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)