使用tranform将文本居中放置在元素中。
在多行的case2中(隐藏溢出使第一行句子隐藏,如何使其与变换一起工作) -
试过:
变换值更改:单行可用时出错。 用于居中的表格和表格单元格:不能在多行中工作。
必需:纯css解决方案(无jquery / javascript)
dbContext.Foos
.GroupJoin(
dbContext.Bars,
f => f.OtherId,
b => b.OtherId,
( foo, bars ) => new { foo, bars } )

.parent {
height: 40px;
width: 200px;
background-color: red;
overflow: hidden;
margin-top: 20px;
position: relative;
}
.child {
position: absolute;
transform: translateY(-50%);
top: 50%;
}

答案 0 :(得分:2)
在父级上使用line-height
(其值应与div高度匹配),然后重置 子元素。
另外,将孩子设置为inline-block
并将其vertical-align: middle
overflow: hidden
将删除任何不需要的文本,这些文本延伸到前面2行或上面定义的40px之下。
.parent {
height: 40px;
width: 200px;
background-color: red;
overflow: hidden;
margin-top: 20px;
line-height: 40px; /* should match your parent div height */
}
.child {
padding: 2px;
display: inline-block;
vertical-align: middle;
line-height: normal; /* reset it here */
}
<div class="parent">
<div class="child">
Helllllllloo I am here to see if I can fit this issues. I can fit this issues.
</div>
</div>
<div class="parent">
<div class="child">
Helllllllloo I am here to see.
</div>
</div>
答案 1 :(得分:2)
我会使用text-overflow: ellipsis;
DEMO:https://jsfiddle.net/4ncdh507/
.parent {
width: 200px;
height: 40px;
text-align: center;
display: table;
background-color: red;
}
.inner-div {
display: table-cell;
vertical-align: middle;
}
span {
overflow: hidden;
text-overflow: ellipsis;
width: 200px;
max-height: 40px;
display: inline-block;
}
答案 2 :(得分:1)
max-height到子div并添加line-height以隐藏部分内容。
.parent {
height: 40px;
width: 200px;
background-color: red;
overflow-y: hidden;
margin-top: 20px;
position: relative;
}
.child {
position: absolute;
transform: translateY(-50%);
top: 50%;
max-height: 40px;
line-height: 1.20; /* hide cut off part of content all though you can adjust font size*/
}
<div class="parent">
<div class="child">
Helllllllloo I am here to see if
I am here to see
I am here to see I am here to see
I am here to see I am here to see
</div>
</div>
<div class="parent">
<div class="child">
Helllllllloo I am here to see.
</div>
</div>
答案 3 :(得分:-1)
如果没有恰当的描述,我们的解决方案几乎没有帮助。
话虽如此,我建议添加(根据我的解释),
text-alignment: center;
给你的CSS。这允许文本居中(我认为你有问题)。