2

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コンテナの高さと幅は可変です。

これを達成する方法を知っている人はいますか?:-)

前もって感謝します!

4

2 に答える 2

3

あなたはする必要が.element-contentありposition:relativeます

追加

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

.play-button

http://jsfiddle.net/jKs6F/のデモ

于 2012-12-26T22:14:51.930 に答える
0

.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%;
}​​​​​​​​​​​​​​​​​​

デモを見る

于 2012-12-26T22:18:54.297 に答える