我有四个DIV挨着排列在一起,并且它们都居中显示在屏幕中央。每个div里有两个单词,但我不想它们出现在顶部,我希望它们显示在div的右下角。我应该怎么做?
将文本包装在 span
或类似元素中,并使用以下 CSS:
.your-div {
position: relative;
}
.your-div span {
position: absolute;
bottom: 0;
right: 0;
}
<div id="container">
<div><span>Two Words</span></div>
<div><span>Two Words</span></div>
<div><span>Two Words</span></div>
<div><span>Two Words</span></div>
</div>
#container{
width:450px;
height:200px;
margin:0px auto;
border:1px solid red;
}
#container div{
position:relative;
width:100px;
height:100px;
border:1px solid #ccc;
float:left;
margin-right:5px;
}
#container div span{
position:absolute;
bottom:0;
right:0;
}
.your-div{
vertical-align: bottom;
display: table-cell;
}
div {
line-height: (2*height - font-size);
text-align: right;
}
请查看示例。
我认为使用flex box(兼容性)比绝对定位更好。以下是我在纯CSS中的示例。
.container{
background-color:green;
height:500px;
/*FLEX BOX */
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: flex-start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-align-content: stretch;
-ms-flex-line-pack: stretch;
align-content: stretch;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
}
.elem1{
background-color:red;
padding:20px;
/*FLEX BOX CHILD */
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-align-self: flex-end;
-ms-flex-item-align: end;
align-self: flex-end;
}
<div class="container">
TOP OF CONTAINER
<div class="elem1">
Nam pretium turpis et arcu. Sed a libero. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci.
Mauris sollicitudin fermentum libero. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Quisque id mi.
Donec venenatis vulputate lorem. Maecenas ullamcorper, dui et placerat feugiat, eros pede varius nisi, condimentum viverra felis nunc et lorem. Curabitur vestibulum aliquam leo.
</div>
</div>
flex-direction: column
通常可以更好地帮助解决。 - Fankydisplay: table
,并将子元素设置为display: table-cell
来实现此目的。例如:
.parent {
position: relative;
display: table;
height: 150px;
width: 115px;
background-color: #000;
padding: 15px;
color: #fff;
cursor: pointer;
}
.child {
position: relative;
display: table-cell;
vertical-align: bottom;
text-align: right;
}
<div class="parent">
<div class="child">
<div class="content">Content goes in here</div>
</div>
</div>
vertical-align:bottom;
和float:right;
。不是吗? - Harry Joydisplay: table-cell
样式时,vertical-align
才会生效,而这在低于 IE8 的浏览器中并不支持。 - alex