2013-11-21 4 views
0

Я знаю, что этого очень много задали, но все методы, которые я пытаюсь, по какой-то причине не работают на мой код.Вертикальный выровнять в элементах заголовка

Я хочу вертикального выравнивания текста в элементах

HTML:

<div id="mainWrapper"> 
    <div id="header"> 
     <div id="logo" class="headerElements"> 
      <h:outputText class="headerText" value="RedPrice" /> 
     </div> 
     <div id="login" class="headerElements"> 
      <h:outputText class="headerText" value="Login" /> 
     </div> 
     <div id="register" class="headerElements"> 
      <h:outputText class="headerText" value="Register" /> 
     </div> 
     <div id="follow" class="headerElements"> 
      <h:outputText class="headerText" value="Follow us" /> 
     </div> 
    </div> 
</div> 

CSS:

*{ 
    margin:0; 
    padding:0; 
} 

body,html { 
    height: 100%; 
    font-family: 'Quicksand', sans-serif; 
} 

div#mainWrapper { 
    height: 100%; 
    width: 100%; 
    background: url(../images/women.jpg) no-repeat center center; 
} 

div#header { 
    width: 100%; 
    height: 5%; 
    background: white; 
    opacity: 0.5; 
} 

div.headerElements { 
    float: left; 
    height: 100%; 
    width: 10%; 
    text-align: center; 
} 

div.headerElements:hover { 
    background: orangered; 
    opacity: 0.5; 
} 

.headerText { 
    font-size: x-large; 
} 

http://jsfiddle.net/E7DAe/

То, что я уже пробовал: (безуспешно)

  • установка высота линии до 100% в headerElems
  • установка display: table-cell
  • положить его в ul и lis и настройки дисплея: стол и дисплей: стол- ячейка

Может ли кто-нибудь предоставить мне решение?

+1

Что это значит: h означает в коде ур? – thelolcat

ответ

8

Вы можете использовать

div.headerElements:before { 
    content: ""; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
} 

Demo (Примечание: я увеличил высоту обертка, чтобы увидеть это лучше)

на основе http://css-tricks.com/centering-in-the-unknown/, читать для полного объяснения.

+0

Nice! Это именно то, что у меня есть meen, ищущий –

+0

Вау, это так умно! – Ginchen

+0

Я перепробовал, но потом удалил, к сожалению, это не работает для меня для многострочного текста. Я собираюсь повторно активировать, так как это отличное решение для текста с одной строкой. Благодаря! –

0

Попробуйте заменить фактические CSS "div.headerElements" на этот (только удален "Float: слева;"):

div.headerElements { 
    height: 100%; 
    width: 10%; 
    text-align: center; 
} 

http://jsfiddle.net/E7DAe/3/

+0

Я думаю, что он имеет в виду, что хочет вертикально выровнять текст внутри оберточного элемента вдоль горизонтальной линии. Не вертикально выровнять все элементы. – dev

+1

ну, может быть, я действительно не понимаю, что он хочет делать .... :) – user2196728

+1

Ну почему нет? За дополнительную плату SO действительно обеспечивает нейронное улучшение чтения ума;) – dev

0

Вы можете использовать clear:both; для достижения этой цели. Что-то вроде этого:

div.headerElements { 
    float: left; 
    height: 100%; 
    width: 10%; 
    clear: both; 
    text-align: center; 
} 

Check this JSFiddle, чтобы проиллюстрировать эту реализацию.

4

Вот еще одно предложение, но я не уверен, что я понимаю вопрос.

div { 
    height: 40px; 
    line-height: 40px; 
    vertical-align: middle; 
} 

http://jsfiddle.net/XXyp2/

+1

Обычно я использую это решение. Это так просто, – Penguin

1

Yo может использовать этот способ также -

1: - Html часть

<div> 
    <h1>try me</h1> 
</div> 

2: - Css Часть

div { 
    background: #000; 
    color: #FFFFFF; 
    height: 30px; 
    display: table; 
    width: 100%; 
    text-align: center; 
} 

div > h1 { 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
} 
0

Самый простой и простой в использовании s Оливия Имо ..самым безопасным, если вы будете поддержка IE8 является:

HTML

<h2> 
    <span>30 mins</span> 
</h2> 

CSS

h2 { 
    height: 120px; 
    position: relative; 
} 

h2 span { 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%); 
    -webkit-transform: translate(-50%, -50%); 
    -moz-transform: translate(-50%, -50%); 
    -ms-transform: translate(-50%, -50%); 
} 

Г-н Fiddle

http://jsfiddle.net/hutber/wpmtkwkL/

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