Центрирование фигуры CSS3

Я пытаюсь центрировать тег привязки, который отображается в виде формы CSS3 (большая стрелка «воспроизведение») в div.

Моя разметка выглядит следующим образом:

<div class="element halfcol">
    <div class="inner beige-bg fullheight">
        <div class="element-content">                       
            <a href="#" class="play-button"></a>                            
         </div>
     </div>
 </div>

И CSS:

.element {
   float: left;
   margin-right: 20px;
   margin-bottom: 20px;
 }
.element .inner {
   border: 2px solid #94111e;
   min-height: 50px;
   border-radius: 10px;
   background-color: #fcf9e3;
   height: inherit;
  -moz-box-shadow: 2px 2px 6px #646464;
  -webkit-box-shadow: 2px 2px 6px #646464;
  box-shadow: 2px 2px 6px #646464;
}
.element .inner .element-content {
  padding: 10px 15px;
  height: inherit;
}
.element .inner .no-padding {
  padding: 0px;
}
.element .beige-bg {
  background-color: #fcf9e3;
}
.element .red-bg {
  background-color: #94111e;
}
.element .transparent-bg {
  background-color: transparent;
}
.element .white-bg {
   background-color: #ffffff;
 }
 .element .smallheight,
 .element .doubleheight,
 .element .fullheight {
    overflow-y: hidden;
 }
 .element .smallheight {
    height: 90px;
  }
 .element .doubleheight {
    height: 220px;
  }
 .element .doubleheight .element-content {
   position: relative;
 }
 .element .fullheight {
    height: 350px;
 }
 .element .no-padding {
   padding: 0px !important;
 }
 /**** Shapes ****/
 .play-button {
   display: block;
   margin: 0 auto;
   border-left: 100px solid #94111e;
   border-top: 60px solid transparent;
   border-bottom: 60px solid transparent;
}

Что дает мне это:

введите здесь описание изображения

Я ищу это:

введите здесь описание изображения

Я мог бы просто дать ему поле сверху/слева, чтобы центрировать его, но контейнер .element имеет переменную высоту и ширину.

Кто-нибудь знает, как этого добиться? :-)

Заранее спасибо!


person bomortensen    schedule 26.12.2012    source источник
comment
Вы можете опубликовать сгенерированный CSS?   -  person Zoltan Toth    schedule 27.12.2012
comment
Конечно, @ZoltanToth :-) Только что обновил свой вопрос.   -  person bomortensen    schedule 27.12.2012


Ответы (2)


Вам нужно сделать .element-content равным position:relative, а затем

добавлять

   position:absolute;
   top:50%;
   left:50%;
   margin-top:-60px;
   margin-left:-50px;

к .play-button

Демо на http://jsfiddle.net/jKs6F/

person Gabriele Petrioli    schedule 26.12.2012

Я изменил ваш класс .play-button следующим образом:

.play-button {
   display: block;
   margin: 0 auto;
   border-left: 100px solid #94111e;
   border-top: 60px solid transparent;
   border-bottom: 60px solid transparent;

   margin-left: -50px;  /* half border-left value */
   margin-top: -60px; /* border-top value */
   position: relative; left: 50%; top: 50%;
}​​​​​​​​​​​​​​​​​​

Посмотреть демо

person mVChr    schedule 26.12.2012