css 在 div 中水平居中 div
css Horizontally center div in a div
我正在尝试使页面上的块元素水平居中。
这是我想要的示例:
我不能使用 div 硬尺寸调整,因为布局应该是响应式的。
http://fiddle.jshell.net/rdy9nmp0/
代码如下:
<div class = "container">
<div class="sub">
<h1> 01</h1>
<div class = "icon"><img src="img/settings.png" alt="">
<h2> Power Inside</h2>
<p>Cum sociis natoque penatibus et magnis dis parturient montesmus. Pro vel nibh et elit mollis commodo et nec augueique</p>
<a class="iconlink" href="/">Read more</a>
</div>
</div>
<div>
CSS
.container {
width: 1160px;
overflow: hidden;
display: inline-flex;
margin: 0 auto;
}
.sub{
padding-top: 30px;
padding-bottom: 30px;
padding-right: 30px;
padding-left: 30px;
display: inline-block;
vertical-align: top;
}
.sub h1{
font-size: 90px;
color: #efeff0;
font-family: 'Ubuntu', sans-serif;
padding: 0px;
float:left;
}
.sub img
{
padding: 10px 0px 10px 0px;
}
.sub h2 {
color: #2a2b2e;
font-size: 20px;
font-family: 'Ubuntu', sans-serif;
}
.sub p {
color: #8a8a8a;
font-size: 13px;
font-family: 'Arial', sans-serif;
}
.sub .icon{
overflow: hidden;
padding-left:20px;
}
.sub .iconlink{
font-size: 13px;
color: #2a2b2e;
height: 28px;
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;
text-decoration: none;
vertical-align:baseline;
font-weight: bold;
font-family: 'Ubuntu', sans-serif;
background: url(../img/shape_blue.png) no-repeat scroll right center #fff;
padding: 0 20px 0 0;
background-position: right;
}
.container .iconlink:hover, .iconlink:hover {
color: #248cec;
background: url(../img/shape_grey.png) no-repeat scroll right center #fff;
text-decoration: none;
vertical-align:baseline;
background-position: right;
}
.container .iconlink a:active {
color: #248cec;
}
img {
display:inline-block;
}
这应该能得到你想要的。
.container {
display: flex; /*rather than inline-flex*/
}
如果你确实需要 inline-flex
而不是创建父元素 text-align:center;
您仍然可以使用具有 "hard" 大小的响应式布局。您可以在 CSS 文件的底部使用一种称为媒体查询的东西,当页面达到一定大小时,它将根据您指定的内容调整元素。这是一些示例代码:
@media (max-width: 400px) {
div {
width: 20px;
}
}
让我知道这是否有意义或者您是否需要更多解释。一开始可能有点令人困惑,但是一旦你了解它并看到它的实际效果,它就非常简单明了。
只需使用 width:100% 做包装器 div,在 div 中创建另一个 div 具有您想要的总宽度和边距:0 auto 并在其中创建3 divs,宽度为 33%,float:left
<div class="container">
<div class="subcont">
<div><p>This is div1</p></div>
<div><p>This is div2</p></div>
<div><p>This is div3</p></div>
</div>
</div>
div:not(.container):not(.subcont){
float: left;
width: 33%;
margin: 0 auto;
}
.container{
text-align: center;
width: 100%;
background: green;
overflow: hidden;
}
.subcont{
margin: 0 auto;
width: 50%;
background: red;
overflow: hidden;
}
我正在尝试使页面上的块元素水平居中。
这是我想要的示例:
我不能使用 div 硬尺寸调整,因为布局应该是响应式的。
http://fiddle.jshell.net/rdy9nmp0/
代码如下:
<div class = "container">
<div class="sub">
<h1> 01</h1>
<div class = "icon"><img src="img/settings.png" alt="">
<h2> Power Inside</h2>
<p>Cum sociis natoque penatibus et magnis dis parturient montesmus. Pro vel nibh et elit mollis commodo et nec augueique</p>
<a class="iconlink" href="/">Read more</a>
</div>
</div>
<div>
CSS
.container {
width: 1160px;
overflow: hidden;
display: inline-flex;
margin: 0 auto;
}
.sub{
padding-top: 30px;
padding-bottom: 30px;
padding-right: 30px;
padding-left: 30px;
display: inline-block;
vertical-align: top;
}
.sub h1{
font-size: 90px;
color: #efeff0;
font-family: 'Ubuntu', sans-serif;
padding: 0px;
float:left;
}
.sub img
{
padding: 10px 0px 10px 0px;
}
.sub h2 {
color: #2a2b2e;
font-size: 20px;
font-family: 'Ubuntu', sans-serif;
}
.sub p {
color: #8a8a8a;
font-size: 13px;
font-family: 'Arial', sans-serif;
}
.sub .icon{
overflow: hidden;
padding-left:20px;
}
.sub .iconlink{
font-size: 13px;
color: #2a2b2e;
height: 28px;
-moz-border-radius: 50px;
-webkit-border-radius: 50px;
border-radius: 50px;
text-decoration: none;
vertical-align:baseline;
font-weight: bold;
font-family: 'Ubuntu', sans-serif;
background: url(../img/shape_blue.png) no-repeat scroll right center #fff;
padding: 0 20px 0 0;
background-position: right;
}
.container .iconlink:hover, .iconlink:hover {
color: #248cec;
background: url(../img/shape_grey.png) no-repeat scroll right center #fff;
text-decoration: none;
vertical-align:baseline;
background-position: right;
}
.container .iconlink a:active {
color: #248cec;
}
img {
display:inline-block;
}
这应该能得到你想要的。
.container {
display: flex; /*rather than inline-flex*/
}
如果你确实需要 inline-flex
而不是创建父元素 text-align:center;
您仍然可以使用具有 "hard" 大小的响应式布局。您可以在 CSS 文件的底部使用一种称为媒体查询的东西,当页面达到一定大小时,它将根据您指定的内容调整元素。这是一些示例代码:
@media (max-width: 400px) {
div {
width: 20px;
}
}
让我知道这是否有意义或者您是否需要更多解释。一开始可能有点令人困惑,但是一旦你了解它并看到它的实际效果,它就非常简单明了。
只需使用 width:100% 做包装器 div,在 div 中创建另一个 div 具有您想要的总宽度和边距:0 auto 并在其中创建3 divs,宽度为 33%,float:left
<div class="container">
<div class="subcont">
<div><p>This is div1</p></div>
<div><p>This is div2</p></div>
<div><p>This is div3</p></div>
</div>
</div>
div:not(.container):not(.subcont){
float: left;
width: 33%;
margin: 0 auto;
}
.container{
text-align: center;
width: 100%;
background: green;
overflow: hidden;
}
.subcont{
margin: 0 auto;
width: 50%;
background: red;
overflow: hidden;
}