Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CSS在不展开div的情况下垂直对齐文本

CSS在不展开div的情况下垂直对齐文本
EN

Stack Overflow用户
提问于 2016-02-22 20:34:12
回答 3查看 1.2K关注 0票数 1

我试图在div中竖直地居中文本,将文本包装成多行,同时不允许根据其包含的文本数量来调整div的大小。任何不符合指定高度和宽度的文本都应该被切断(最好用省略号)。

文本需要在两个span的分层div元素中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="outer-div">
  <div class="inner-div">
    <span class="course-name">Text Here</span>
  </div>
</div>

我遇到的问题是,为了使div不垂直调整大小以适应文本,我必须将display设置为inline-block。然而,一旦我这样做,文本不再是垂直中心,而是顶部对齐。

我读过这个职位的文章,并对它的建议进行了反复的讨论。然而,尽管这些方法(特别是表显示版本)确实允许垂直对齐,但我仍然不能同时实现对中和固定高度。

下面是我描述的场景的演示,下面是这个示例中的CSS,它造成了这个问题。

Note如何在演示中取消设置display: inline-block的行,顶部div缩小到适当的高度(并与第二个div的大小完全匹配)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.outer-div, span {
  width: 120px;
  height: 45px;
}

.outer-div {
  text-align: center;
  display: table;
  background-color: blue;
  color: white;
}

.inner-div {
  display: table-cell;
  vertical-align: middle;
}

span {
  font-weight: bold;
  overflow: hidden;
  text-overflow: ellipsis;

  /* The line in question */
  display: inline-block;
}

在具有固定高度和宽度的div中,实现多行文本垂直对中的最佳方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-22 20:58:56

你需要在两个地方做些改变。

而不是使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.outer-div, span {...}

只使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.outer-div {...}

对于跨度来说,遵循规则是可行的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span {
  font-weight: bold;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 120px;
  display: inline-block;
  max-height: 45px;
}

你就完蛋了。这是你工作的小提琴

https://jsfiddle.net/logiccanvas/y6cpmgdg/1/

票数 1
EN

Stack Overflow用户

发布于 2016-02-22 20:39:17

如果只有一行,则可以将div内文本的行高设置为与高度相同的高度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.some-class{
   height: 45px;
   line-height: 45px;
}

无论如何,这比使用表格要好得多。

如果我想在div中对任何内容进行居中,您可以使用CSS transform属性。

这可以用于全屏等,而且非常方便:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.outer-div{
  position: relative;
}

.inner-div{
  position: absolute;
  top: 50%;
  left: 50%:
  -webkit-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
票数 1
EN

Stack Overflow用户

发布于 2016-02-22 20:40:52

尝试像这样:演示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.inner-div {
  display: table-row; /* changed table-cell to row */
  vertical-align: middle;
}

span {
  font-weight: bold;
  overflow: hidden;
  text-overflow: ellipsis;
   display: table-cell;   /* added table-cell instead of inline-block */
   vertical-align:middle; 
}

如果有单行文本,则可以简单地使用line-height并将vertical align分配给middle

最新演示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.outer-div {
  width: 120px;
  overflow: hidden;      
  background-color: blue;
  color: white;
  height: 45px;      
}

.inner-div {
  display: table;
  text-align: center;
  width: 120px;
}

span {
  font-weight: bold;
  overflow: hidden;
  text-overflow: ellipsis;
  display: table-cell;
  vertical-align: middle;
  height: 45px;    
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35568898

复制
相关文章
div垂直居中 css div盒子上下垂直居中
div垂直居中 css div盒子上下垂直居中,让DIV盒子在任何浏览器中任何分辨率的显示屏浏览器中处于水平居中和上下垂直居中。 div垂直居中常用于单个盒子,如一个页面里只有一个登录布局,使用div css让这个登录布局水平和css垂直居中。 这里介绍一种最简单兼容性最好的水平居中与上下垂直居中的方法。 第一种方法:具体实例代码如下
李维亮
2021/07/09
2.8K0
div在div中垂直居中水平居中(css如何让div水平居中)
最近写网页经常需要将div在屏幕中居中显示,遂记录下几个常用的方法,都比较简单。 水平居中直接加上<center>标签即可,或者设置margin:auto;当然也可以用下面的方法
全栈程序员站长
2022/08/01
15K0
div在div中垂直居中水平居中(css如何让div水平居中)
css的div垂直居中的方法,百分比div垂直居中
我们都知道,固定高宽的div在网页中垂直居中很简单,相信大家也很容易的写出来,但是不是固定高宽的div如何垂直居中呢?我们在网页布局,特别是手机等web端网页经常是不固定高宽的div,那么这些div如何垂直居中呢?这篇文章,我总结一下。
Dawnzhang
2019/02/27
2.7K0
【CSS】vertical-align 垂直对齐 ( 块级元素对齐 | 行内元素 / 行内块元素对齐 | 基线对齐 | 垂直居中 | 顶部对齐 | 底部对齐 )
vertical-align 垂直对齐 , 不能用于块级元素 , 只能用于 行内元素 / 行内块元素 ;
韩曙亮
2023/04/24
3.6K0
【CSS】vertical-align 垂直对齐 ( 块级元素对齐 | 行内元素 / 行内块元素对齐 | 基线对齐 | 垂直居中 | 顶部对齐 | 底部对齐 )
【说站】css使用transform垂直对齐
2、translate属性可以改变元素的位置,translateX(10px)实现x坐标轴移动10个单位,如果是负值,则沿相反方向移动。
很酷的站长
2022/11/23
1.1K0
【说站】css使用transform垂直对齐
div垂直居中的几种方式_div垂直水平居中
利用CSS进行元素的水平居中,比较简单,行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可。本文收集了六种利用css进行元素的垂直居中的方法,每一种适用于不同的情况,在实际的使用过程中选择某一种方法即可。
全栈程序员站长
2022/08/03
4.1K0
div垂直居中的几种方式_div垂直水平居中
CSS实现文本两端对齐
在实现对齐的时候,由于justify对最后一行无效,所以我们需要在最后新增一行来实现,实现方法 1.利用css标签span,i,p等都可以实现增加空行, 2.利用css伪类 after来实现也就是上面代码的实现机制,感觉这样实现是最好的一种方案,推荐给大家。
李维亮
2021/07/08
1K0
CSS教程:div垂直居中的N种方法「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说CSS教程:div垂直居中的N种方法「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/02/07
2.4K0
DIV展开收缩效果
<html> <head> <title>div展开收缩代码</title> <style> * { margin:0; padding:0;} body { text-align:center; font:75% Verdana, Arial, Helvetica, sans-serif;} h1 { font:125% Arial, Helvetica, sans-serif; text-align:left; font-weight:bo
botkenni
2022/01/10
1.9K0
DIV展开收缩效果
CSS之文本两端对齐的实现方法
结合 text-align-last 属性,该属性定义的是一段文本中最后一行在被强制换行之前的对齐规则。
用户9914333
2022/07/22
1.4K0
CSS之文本两端对齐的实现方法
CSS实现文本向两端对齐的方法
实现方法如下: .test1 { text-align:justify; text-justify:distribute-all-lines;/*ie6-8*/ text-align-last:justify;/* ie9*/ -moz-text-align-last:justify;/*ff*/ -webkit-text-align-last:justify;/*chrome 20+*/ } @media screen and (-webki
飞奔去旅行
2019/06/13
1.2K0
CSS实现文本向两端对齐的方法
水平/垂直都居中的div
用css样式使div水平/垂直居中,兼容于目前各种主流浏览器 思路: 用绝对定位将div左顶点,定位于浏览器正中心,然后再利用负的margin,将div强迫向上移动div高度一半,向左移动div宽度一半 <style> html,body{padding:0;margin:0;} #container {  position:absolute;  left:50%;  width:400px;  height:200px;  margin-left:-200px;  top:50%
菩提树下的杨过
2018/01/22
1.7K0
不确定行数的多行文本垂直水平居中的css
ul li { position:relative; display: table; width:3rem; height:3rem; background:url('image/defaultBg.jpg') 0 0/100% 100% no-repeat; float:left; margin-bottom:0.2rem; text-al
蓓蕾心晴
2018/04/12
1.4K0
无固定高度的div垂直居中
1、无固定高度的div垂直居中 – CSS 实现效果图如下: 代码附上: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes">
White feathe
2021/12/08
3.1K0
无固定高度的div垂直居中
Css 垂直居中
在 CSS 中对元素进行水平居中是非常简单的:如果它是一个行内元素, 就对它的父元素应用 text-align:center; 如果它是一个块级元素,就对它自身应用 margin:auto。然而如果要对一个元素进行垂直居中,可能光是想想就令人头皮发麻了。
grain先森
2019/03/29
2.8K0
Css 垂直居中
CSS垂直居中
方案1 关键代码 父类: display: table-cell; vertical-align: middle; 示例: <style> .parent { width: 200px; height: 600px; background-color: blueviolet; display: table-cell; vertical-align: middle;
乐心湖
2020/07/31
3.4K0
DIV元素水平和垂直居中
在前端开发过程中,经常要对元素进行居中设置。一般有水平居中,和垂直居中。一般设置水平居中简单。基本是margin:0 auto,就可以了。但是垂直居中,我们有时会觉得使用vertical-align,但是这个属性对div元素不起作用。 目前通用的解决办法是,使用绝对定位,然后设置left和top为50%。然后通过margin来设置。下面具体代码演示了一个简单的登录页面,然后使登录界面水平居中和垂直居中。代码如下: <html> <head> <title>div元素水平和垂直居中</
八哥
2018/01/18
2.8K0
DIV元素水平和垂直居中
flex布局实现div的水平垂直居中
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143096.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.9K0
flex布局实现div的水平垂直居中
DataTable 插件在表格里面有按钮的情况下不对齐
在表格内容全部都是文字的情况下,固定表格的头与内容区是对齐的,但是当有一列含有几个按钮时,头部与内容突然不对齐,解决方法是在样式中设置按钮的宽度
tianyawhl
2019/04/04
8710
文本左右对齐
给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。
狼啸风云
2023/10/10
2150
文本左右对齐

相似问题

文本在div中间不垂直对齐。

22

CSS -垂直对齐div中的文本

13

在div内与CSS垂直对齐文本

25

CSS : div顶部的垂直对齐文本

76

DIV中不垂直对齐的文本

70
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文