2015-10-12 2 views
0

У меня есть следующий код HTML &.Выровнять текст по вертикали внутри div с помощью CSS

Я хотел бы разместить весь текст по вертикали по центру. Даже «Текст здесь» будет выровнен с логотипом. Может ли кто-нибудь объяснить, как я это делаю с моим кодом? Большое спасибо.

Fiddle:http://jsfiddle.net/z6yet59f/

.slogan { 
 
    background:#eaeaea; 
 
    float:left; 
 
    width:600px 
 
} 
 

 
.slogan img { 
 
    cursor: pointer; 
 
    width:92px; 
 
    height:92px 
 
} 
 

 
.slogan div { 
 
    float:left; 
 
    margin-left: 35px; 
 
} 
 

 
.slogan div span { 
 
    display:block 
 
}
<div class="slogan"> 
 
    <div> 
 
      <p> 
 
       <span>Text here</span> 
 
       <img src="https://cdn3.iconfinder.com/data/icons/rcons-social/32/blog_blogger_google-128.png" id="chat_link_35" title="click to start live chat .."> 
 
      </p> 
 
    </div> 
 

 
    <div> 
 
     <span class="heading">National Helpline</span> 
 
     <span>Hello</span> 
 
    </div> 
 

 
    <div> 
 
     <span class="heading" style="color:orange">National Helpline</span> 
 
     <span>Hello</span> 
 
    </div> 
 
    
 
</div>

+0

Возможный дубликат [вертикального выравнивания текста в Div] (http://stackoverflow.com/questions/2939914/vertically-align-text-in-a-div) – BSMP

+0

Это [статья MDN по вертикальному выравниванию] (https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align), вероятно, является лучшим ресурсом, чем тот, который был в этом ответе. – BSMP

ответ

4

Вы можете найти обновленный код ниже, надеюсь, что это позволит решить проблему.

.slogan { 
 
    background:#eaeaea; 
 
    float:left; 
 
    width:600px 
 
} 
 

 
.slogan img { 
 
    cursor: pointer; 
 
    width:92px; 
 
    height:92px; 
 
    vertical-align: middle; 
 
} 
 

 
.slogan div { 
 
    display:table-cell; 
 
    vertical-align:middle; 
 
    margin-left: 35px; 
 
} 
 
.slogan div p{display:block;} 
 
    .slogan div p span{ 
 
    display:inline-block; 
 
    vertical-align:middle; 
 
} 
 

 
.slogan div span { 
 
    display:block 
 
}
<div class="slogan"> 
 
    <div> 
 
      <p> 
 
       <span>Text here</span> 
 
       <img src="https://cdn3.iconfinder.com/data/icons/rcons-social/32/blog_blogger_google-128.png" id="chat_link_35" title="click to start live chat .."> 
 
      </p> 
 
    </div> 
 

 
    <div> 
 
     <span class="heading">National Helpline</span> 
 
     <span>Hello</span> 
 
    </div> 
 

 
    <div> 
 
     <span class="heading" style="color:orange">National Helpline</span> 
 
     <span>Hello</span> 
 
    </div> 
 
    
 
</div>

+0

Ничего себе. Это на 99% отлично. Как перенести «Текст здесь», чтобы он остался от логотипа? – michaelmcgurk

+1

@michaelmcgurk - Просто поместите «Текст здесь» в 'div' перед тем, который содержит изображение, а не в абзаце с изображением. – BSMP

+1

Пожалуйста, найдите обновленный код, он будет работать и решить другую проблему. дайте мне знать любую дальнейшую проблему :) @michaelmcgurk – CreativePS

0

Просто добавьте этот класс .valign-middle

CSS

.valign-middle { 
    -webkit-display: flex; 
    display: flex; 
    -webkit-flex-flow: row wrap; 
    flex-flow: row wrap; 
    -webkit-align-items: center; 
    align-items: center; 
} 

HTML

<div class="slogan valign-middle"> 
    <div> 
     <p> <span>Text here</span> 

      <img src="https://cdn3.iconfinder.com/data/icons/rcons-social/32/blog_blogger_google-128.png" id="chat_link_35" title="click to start live chat .."> 
     </p> 
    </div> 
    <div> <span class="heading">National Helpline</span> 
<span>Hello</span> 

    </div> 
    <div> <span class="heading" style="color:orange">National Helpline</span> 
<span>Hello</span> 

    </div> 
</div> 

DEMO HERE

+0

, который не будет работать в ie9 и менее – smnbbrv

+0

Есть ли способ сделать это, что будет работать в некоторых старых браузерах IE? – michaelmcgurk

Смежные вопросы