简体   繁体   English

如何将div中的文本水平居中,左边的图像与垂直对齐的中间

[英]How to center text in the div horizontally with an image at left with vertical align middle

https://jsfiddle.net/2ppdwqu0/ https://jsfiddle.net/2ppdwqu0/

As you can see in this fiddle that names are left aligned. 正如你在这个小提琴中看到的那样,名字是左对齐的。 But I want them to be center aligned horizontally so that there is an image and beautiful centered text. 但我希望它们水平居中对齐,以便有一个图像和美丽的居中文本。

HTML: HTML:

<div class='designers'>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum consequatur nihil enim dolor voluptatibus nostrum libero, nobis quos animi quidem commodi veniam delectus, accusamus, vitae odit autem suscipit. Pariatur, similique.</p>
    <ul>
        <li>
            <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'>
            <span>Abdullah Shahbaz</span>
        </li>
        <li>
            <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'>
            <span>Umer Javed</span>
        </li>
        <li>
            <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'>
            <span>Ali Qureshi</span>
        </li>
    </ul>
</div>

CSS: CSS:

.designers ul {
    overflow: hidden;
    list-style: none
}

.designers li {
    border: 1px solid grey;
    float: left;
    margin: 10px;
    box-shadow: 0 0 1px black;
    width: 250px
}

.designers img {
    vertical-align: middle;
    width: 70px;
    height: 70px;
}

.designers span {
    margin: 0 10px;
    font-size: 16px;
    font-family: Open Sans;
    font-weight: bold;
}

My Question is different because I want horizontal not vertical alignment. 我的问题不同,因为我想要水平而不是垂直对齐。

You need this. 你需要这个。 You may change the span to inline-block type and you can make a text-align: center perfectly. 您可以将范围更改为inline-block类型,并且可以完全使用text-align: center

https://jsfiddle.net/2ppdwqu0/1/ https://jsfiddle.net/2ppdwqu0/1/

 .designers ul { overflow: hidden; list-style: none } .designers li { border: 1px solid grey; float: left; margin: 10px; box-shadow: 0 0 1px black; width: 250px } .designers img { vertical-align: middle; width: 70px; height: 70px; } .designers span { width: 170px; display: inline-block; vertical-align: middle; text-align: center; font-size: 16px; font-family: Open Sans; font-weight: bold; } 
 <div class='designers'> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum consequatur nihil enim dolor voluptatibus nostrum libero, nobis quos animi quidem commodi veniam delectus, accusamus, vitae odit autem suscipit. Pariatur, similique.</p> <ul> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Abdullah Shahbaz</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Umer Javed</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Ali Qureshi</span> </li> </ul> </div> 

You can do this with Flexbox 您可以使用Flexbox执行此操作

 ul { list-style-type: none; display: flex; justify-content: center; } li { display: flex; border: 1px solid black; margin: 10px; flex: 250px; align-items: center; justify-content: center; } li img { margin-right: auto; height: 70px; } li span { margin-right: auto; text-align: center; } 
 <ul> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Lorem ipsum</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Lorem</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Lorem ipsum dolor</span> </li> </ul> 

Here display:table and display:table-cell can do the trick. 这里display:tabledisplay:table-cell可以做到这一点。

 .designers ul { overflow: hidden; list-style: none } .designers li { border: 1px solid grey; display: table; margin: 10px; box-shadow: 0 0 1px black; width: 250px } .designers img { vertical-align: middle; width: 70px; height: 70px; display: table-cell; } .designers span { font-size: 16px; font-family: Open Sans; font-weight: bold; display: table-cell; width: 100%; text-align: center; } 
 <div class='designers'> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum consequatur nihil enim dolor voluptatibus nostrum libero, nobis quos animi quidem commodi veniam delectus, accusamus, vitae odit autem suscipit. Pariatur, similique.</p> <ul> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Abdullah Shahbaz</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Umer Javed</span> </li> <li> <img alt='' src='https://www.zenimax.com/jpn/fallout3/images/avators/100x100falloutav-vb.gif'> <span>Ali Qureshi</span> </li> </ul> </div> 

Working Fiddle 工作小提琴

You can do this (without setting a width to the text element) : 您可以这样做(不设置文本元素的宽度):

CSS CSS

.designers ul {
  overflow: hidden;
  list-style: none
}

.designers li {
  border: 1px solid grey;
  float: left;
  margin: 10px;
  box-shadow: 0 0 1px black;
  width: 250px;
  position: relative;
}

.designers img {
  vertical-align: middle;
  width: 70px;
  height: 70px;
  float:left;
}

.designers span {
  margin: 0 10px;
  font-size: 16px;
  font-family: Open Sans;
  font-weight: bold;
  text-align: center;
  position: relative;
  margin-left: 80px;
  display: block;
  line-height: 4.2em;
}

DEMO HERE 在这里演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM