Javascript 将文本与图像垂直对齐
我使用Bootstrap来显示一条随机的tweet和旁边的静态图像 它看起来很棒,但文本始终垂直于顶部,而不是图像的中心 <>我如何解决这个问题,不管推特的长度,它会垂直显示在中间? 演示:Javascript 将文本与图像垂直对齐,javascript,html,css,twitter-bootstrap,responsive-design,Javascript,Html,Css,Twitter Bootstrap,Responsive Design,我使用Bootstrap来显示一条随机的tweet和旁边的静态图像 它看起来很棒,但文本始终垂直于顶部,而不是图像的中心 我如何解决这个问题,不管推特的长度,它会垂直显示在中间? 演示: /*作为外部资源包含最新编译和缩小的CSS*/ /*可选主题*/ @导入url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap theme.min.css'); 身体{ 背景:黑色; 利润率:10px; 颜色:白色 } img{ 浮动:左 }
/*作为外部资源包含最新编译和缩小的CSS*/
/*可选主题*/
@导入url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap theme.min.css');
身体{
背景:黑色;
利润率:10px;
颜色:白色
}
img{
浮动:左
}
/*============非移动第一种方法==========*/
/*大设备、宽屏幕*/
@仅介质屏幕和(最大宽度:1200px){
}
/*中型设备、台式机*/
@仅介质屏幕和(最大宽度:992px){
}
/*小型设备、平板电脑*/
@仅介质屏幕和(最大宽度:768px){
img{
浮动:无
}
}
/*超小型设备、手机*/
@仅介质屏幕和(最大宽度:480px){
}
/*定制,iPhone视网膜*/
@仅介质屏幕和(最大宽度:320px){
}
RT:说真的,放下你的一切。。。
给出
img, blockquote {
float: none;
display: inline-block;
}
/*作为外部资源包含最新编译和缩小的CSS*/
/*可选主题*/
@导入url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap theme.min.css');
身体{
背景:黑色;
利润率:10px;
颜色:白色
}
img,
大宗报价{
浮动:无;
显示:内联块;
}
/*============非移动第一种方法==========*/
/*大设备、宽屏幕*/
@仅介质屏幕和(最大宽度:1200px){}
/*中型设备、台式机*/
@仅媒体屏幕和(最大宽度:992px){}
/*小型设备、平板电脑*/
@仅介质屏幕和(最大宽度:768px){
img{
浮动:无
}
}
/*超小型设备、电话*/
@仅介质屏幕和(最大宽度:480px){}
/*定制,iPhone视网膜*/
@仅介质屏幕和(最大宽度:320px){}
.推特:之后{
明确:两者皆有;
显示:表格;
内容:'';
}
RT:说真的,放下你的一切。。。
给出
img, blockquote {
float: none;
display: inline-block;
}
/*作为外部资源包含最新编译和缩小的CSS*/
/*可选主题*/
@导入url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap theme.min.css');
身体{
背景:黑色;
利润率:10px;
颜色:白色
}
img,
大宗报价{
浮动:无;
显示:内联块;
}
/*============非移动第一种方法==========*/
/*大设备、宽屏幕*/
@仅介质屏幕和(最大宽度:1200px){}
/*中型设备、台式机*/
@仅媒体屏幕和(最大宽度:992px){}
/*小型设备、平板电脑*/
@仅介质屏幕和(最大宽度:768px){
img{
浮动:无
}
}
/*超小型设备、电话*/
@仅介质屏幕和(最大宽度:480px){}
/*定制,iPhone视网膜*/
@仅介质屏幕和(最大宽度:320px){}
.推特:之后{
明确:两者皆有;
显示:表格;
内容:'';
}
RT:说真的,放下你的一切。。。
我想说,最简单的方法是像这样设置一些css:
.tweet {
display: table;
width: 100%;
}
.tweet blockquote {
display: table-cell;
vertical-align: middle;
}
或者您可以使用display:flex代码>如果浏览器支持足够:
演示:我认为最简单的方法是设置一些css,如下所示:
.tweet {
display: table;
width: 100%;
}
.tweet blockquote {
display: table-cell;
vertical-align: middle;
}
或者您可以使用display:flex代码>如果浏览器支持足够:
演示:您需要将图像和块引号这两个元素的默认显示更改为内联块。然后您可以使用垂直对齐css属性并将其值设置为中间。您应该为blockquote元素设置一个width或max width,因为如果不这样做,blockquote可能会将自身置于图像下方
我修改了你的小提琴:
正如您所见,您可以使用calc作为报价宽度值,例如,如果图像宽度为100px,则报价必须为calc(100%-110px)。您必须知道内联块元素作为排版工作,因此空空间将作为一个nbsp;所以你应该多加4个像素。在我的示例中,我又添加了10个像素,但只有4个像素,这应该可以正常工作。您需要将image和blockquote这两个元素的默认显示更改为inline block。然后您可以使用垂直对齐css属性并将其值设置为中间。您应该为blockquote元素设置一个width或max width,因为如果不这样做,blockquote可能会将自身置于图像下方
我修改了你的小提琴:
正如您所见,您可以使用calc作为报价宽度值,例如,如果图像宽度为100px,则报价必须为calc(100%-110px)。您必须知道内联块元素作为排版工作,因此空空间将作为一个nbsp;所以你应该多加4个像素。在我的示例中,我又添加了10个像素,但只有4个像素,这应该可以正常工作。您可以通过几种不同的方式实现效果:Flexbox、带变换的绝对定位和带垂直对齐的显示:表格
/表格单元格
。由于其他答案已经涵盖了其他类型,以下是Flexbox版本:
.tweet{
边框:1px纯黑;
/*将.tweet用作flexbox容器*/
显示器:flex;
*对齐容器中间的所有项目*/
对齐项目:居中;
}
.tweet\uuu化身,.tweet\uuu身体{
边框:1px点红色;
}
.tweet___身体{
保证金:0;
/*这将指示浏览器将.tweet__;body一直拉伸到最后。
否则它将是