[英]How can I horizontally center 3 divs?
So I have 3 cards that I am going to put my projects inside, and I need them to be perfectly centered horizontally. 所以我有3张卡片,我将把我的项目放在里面,我需要它们完全水平居中。 I have tried many things but none have worked so far.
我尝试过很多东西,但到目前为止还没有。
Here is the code for the cards. 这是卡片的代码。
.card { background: #fff; border-radius: 3px; display: inline-block; height: 300px; margin: 1rem; position: relative; width: 290px; overflow: hidden; opacity: 1; } .card .topImage { display: inline-flex; width: 100%; height: 220px; overflow: hidden; align-content: center; } .topImage { background-color: rgba(0, 0, 0, .3); } .card .topImage img { height: 220px; } .card .bottom { height: 80px; width: 100%; } .card .bottom p { text-align: left; height: 80px; width: 100%; box-sizing: border-box; margin: 0; padding: 0; padding-left: 20px; display: flex; align-items: center; text-decoration: none; color: #444; font-size: 18px; font-family: Roboto, sans-serif; } .card-1 { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); transition: all 0.3s cubic-bezier(.25,.8,.25,1); } .card-1:hover { box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); cursor: pointer; }
<div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 1</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 2</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 3</p> </div> </div>
Just use flexbox. 只需使用flexbox。 Make a container for the cards and put display: flex;
为卡片制作一个容器并放置display:flex; on it and then justify-content: center to center them no matter the size of the new container div
在它上面然后证明内容:无论新容器div的大小如何,都将它们置于中心位置
.card { background: #fff; border-radius: 3px; display: inline-block; height: 300px; margin: 1rem; position: relative; width: 290px; overflow: hidden; opacity: 1; } .card .topImage { display: inline-flex; width: 100%; height: 220px; overflow: hidden; align-content: center; } .topImage { background-color: rgba(0, 0, 0, .3); } .card .topImage img { height: 220px; } .card .bottom { height: 80px; width: 100%; } .card .bottom p { text-align: left; height: 80px; width: 100%; box-sizing: border-box; margin: 0; padding: 0; padding-left: 20px; display: flex; align-items: center; text-decoration: none; color: #444; font-size: 18px; font-family: Roboto, sans-serif; } .card-1 { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); transition: all 0.3s cubic-bezier(.25,.8,.25,1); } .card-1:hover { box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); cursor: pointer; } .card-container { display: flex; justify-content: center; }
<div class="card-container"> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 1</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 2</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 3</p> </div> </div> </div>
Using flexbox this is easy. 使用flexbox这很容易。 On the element that contains your divs just add
display: flex;
在包含div的元素上只需添加
display: flex;
and justify-content: center;
并
justify-content: center;
: :
.card { background: #fff; border-radius: 3px; display: inline-block; height: 300px; margin: 1rem; position: relative; width: 290px; overflow: hidden; opacity: 1; } .card .topImage { display: inline-flex; width: 100%; height: 220px; overflow: hidden; align-content: center; } .topImage { background-color: rgba(0, 0, 0, .3); } .card .topImage img { height: 220px; } .card .bottom { height: 80px; width: 100%; } .card .bottom p { text-align: left; height: 80px; width: 100%; box-sizing: border-box; margin: 0; padding: 0; padding-left: 20px; display: flex; align-items: center; text-decoration: none; color: #444; font-size: 18px; font-family: Roboto, sans-serif; } .card-1 { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); transition: all 0.3s cubic-bezier(.25, .8, .25, 1); } .card-1:hover { box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); cursor: pointer; } body { display: flex; justify-content: center; }
<div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 1</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 2</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 3</p> </div> </div>
Create a parent with text-align: center
使用
text-align: center
创建父text-align: center
.card { background: #fff; border-radius: 3px; display: inline-block; height: 300px; margin: 1rem; position: relative; width: 290px; overflow: hidden; opacity: 1; } .card .topImage { display: inline-flex; width: 100%; height: 220px; overflow: hidden; align-content: center; } .topImage { background-color: rgba(0, 0, 0, .3); } .card .topImage img { height: 220px; } .card .bottom { height: 80px; width: 100%; } .card .bottom p { text-align: left; height: 80px; width: 100%; box-sizing: border-box; margin: 0; padding: 0; padding-left: 20px; display: flex; align-items: center; text-decoration: none; color: #444; font-size: 18px; font-family: Roboto, sans-serif; } .card-1 { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); transition: all 0.3s cubic-bezier(.25,.8,.25,1); } .card-1:hover { box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); cursor: pointer; } .parent { text-align: center; }
<div class="parent"> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 1</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 2</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 3</p> </div> </div> </div>
Use translateX
and left
rules to position them. 使用
translateX
和left
规则来定位它们。
.card { background: #fff; border-radius: 3px; display: inline-block; height: 300px; margin: 1rem; position: relative; width: 290px; overflow: hidden; opacity: 1; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); } .card .topImage { display: inline-flex; width: 100%; height: 220px; overflow: hidden; align-content: center; } .topImage { background-color: rgba(0, 0, 0, .3); } .card .topImage img { height: 220px; } .card .bottom { height: 80px; width: 100%; } .card .bottom p { text-align: left; height: 80px; width: 100%; box-sizing: border-box; margin: 0; padding: 0; padding-left: 20px; display: flex; align-items: center; text-decoration: none; color: #444; font-size: 18px; font-family: Roboto, sans-serif; } .card-1 { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); transition: all 0.3s cubic-bezier(.25,.8,.25,1); } .card-1:hover { box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); cursor: pointer; }
<div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 1</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 2</p> </div> </div> <div class="card card-1"> <div class="topImage"> </div> <div class="bottom"> <p>Project 3</p> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.