2013-06-12 3 views
2

Я пытаюсь создать мобильный сайт. Необходимо получить ABC по вертикали. Я следил за другими вопросами о том, как получить текст SPAN по вертикали. Но здесь его не работает. Я включил jsfiddle. http://jsfiddle.net/3tdYT/ Я не уверен, что упускаю.Span middle align not working

<div id="main"> 
     <div id="header"> 
      <div id="logo"><img src="http://placehold.it/72x38"></div> 
      <div id="menu">a</div> 
      <div id="title-wrapper"><div id="title"><span id="screen-title">ABC</span></div></div> 

     </div> 
     <div id="company-name">CCCCCC</div>  
    </div> 



* { margin:0; padding:0} 

#header{ 
    height:53px; 
    padding:0; 
} 
     #logo{ 
      float:left; 
      background: #ffffff; 
      padding:5px; 
     } 
     #title{ 
      text-align:center; 
      height:100%;     
      margin:0 auto; 

     } 
     #title-wrapper{ 

      height:100%; 
      background: #ff3eae; 
     } 
     #screen-title{ 
      vertical-align: middle; 
      display: inline-block; 

     } 
     #menu{ 
      width:20%; 
      height:100%; 
      float:right; 
      padding:0; 
      background: #E23222; 
     } 
#company-name{ 
    width:100%; 
    float:left; 
    background: darkblue; 
    clear:left; 
    padding:0px; 
    color: #ffffff; 
    text-align: center; 
} 
#main {width:240px} 

ответ

2

Turn #title «s дисплей в table и #screen-title» дисплей ы в table-cell:

/* ... */ 

    #title{ 
     display: table; 
     height:100%; 
     margin:0 auto; 
    } 

/* ... */ 

    #screen-title{ 
     vertical-align: middle; 
     display: table-cell; 
     text-align: center; 
    } 

http://jsfiddle.net/XMcCR/3/

Но обратите внимание, что есть много возможностей для вертикального центрирования текста с помощью CSS, каждый из которых имеет свои собственные недостатки. Это только одна возможность. Просто проверьте некоторые результаты быстрого поиска Google для «вертикального центра css». Похоже, что это своего рода научная область.

+0

очень полезно +1 – Matical

+0

спасибо. Оно работает. В моем случае у меня есть div, содержащий кнопку span & a. Пробел, содержащий флажок и ярлык. Кнопка больше, и я хочу по вертикали выровнять по середине. –

+0

@AdarshSinghal: Пожалуйста, задайте новый вопрос для этого, если вы не найдете ответа самостоятельно. –

0

Добавить line-height: Xpx, где X представляет собой подходящее значение, чтобы получить эффект, который вы хотите (как правило, такой же, как высота элемента)

+0

Да, попробовал его перед копированием в jsfiddle. не работает. – Matical

+1

Пример метода Колинка: http://jsfiddle.net/3tdYT/1/. Это не идеально, так как вы должны знать явную высоту, но это будет трюк. – zdyn

+0

yes @zdyn Не хочу, чтобы это статично. – Matical

1

Кажется, что вы должны установить для него статическую высоту и ширину. Это должно сработать. попробуйте)

#screen-title{ 
      display: table-cell; 
      height: 50px; 
      width: 200px; 
      text-align: center; 
      vertical-align: middle; 
+0

+1 но я не хочу использовать статическую высоту – Matical