2017-02-14 9 views
1

私は望む結果を達成しました。しかし、正しい方法ではありません。たとえば、親コンテナの幅が変わった場合、このハックは機能しません。しかし、私はブラウザで正しい方法を試して解決するために画面に表示するだけでした。私の奇抜な間隔については申し訳ありません相対親コンテナ内に絶対ボタンを中央に配置する適切な方法

See screenshot here

HTML

<div class="container"> 
       <div class="row"> 
        <div class="col-md-4"> 
         <div class="product-wrapper"> 
          <div class="product-card"> 
           <a href="lathes-single.html" class="product-img-wrapper"><img src="../assets/img/46-455.jpg" alt=""></a> 
           <h4> 46-460 12 1/2 in. Variable Speed MIDI-LATHE® </h4> 
           <p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.</p> 
           <a href="lathes-single.html" class="btn btn-lg btn-primary">View Product</a> 
          </div> 
         </div> 
        </div> 
       </div> 
</div> 

。何らかの理由でSublime Text 3を貼り付けると、ここに来るとすべてがすべて上に上がります。

関連CSS

.product-img-wrapper { 
    text-align: center; 
} 

.product-img-wrapper img { 
    width: 200px; 
    height: 200px; 
} 

.product-wrapper { 
    position: relative; 
    margin: 50px 0; 
} 

.product-card { 
    position: relative; 
    max-width: 330px; 
    height: 450px; 
    border: 1px solid #eee; 
    margin: 25px auto 0 auto; 
    text-align: center; 
    padding-left: 20px; 
    padding-right: 20px; 
    box-shadow: 7px 7px 5px #838485; 
} 

.product-card .btn { 
    position: absolute; 
    min-width: 200px; 
    bottom: 15px; 
    left: 60px; 
} 
+0

? –

+0

商品のタイトルリンクと商品説明が異なりますが、必ずしも同じ文字数であるとは限りません。もし私がちょうど.btn要素の上のマージンをするならば。すべてのボタンがレイアウトに並んでいるわけではありません。ボタンを絶対的に配置すると、コピーとタイトルの長さに関係なく移動しません。 –

+0

次に、ボタン用のコンテナを絶対配置し、そのコンテナに 'text-align:center;'を適用します。 –

答えて

0

私は一番下にいることを、ボタンやposition:absolute;のラッパーを作り、私のコメントで言ったように。ラッパーにtext-align:center;があるため、ボタンからスタイルを削除している間は、スタイル自体が中心になります。あなたは絶対に配置されるように、これを必要な理由

.product-img-wrapper { 
 
    text-align: center; 
 
} 
 

 
.product-img-wrapper img { 
 
    width: 200px; 
 
    height: 200px; 
 
} 
 

 
.product-wrapper { 
 
    position: relative; 
 
    margin: 50px 0; 
 
} 
 

 
.product-card { 
 
    position: relative; 
 
    max-width: 330px; 
 
    height: 450px; 
 
    border: 1px solid #eee; 
 
    margin: 25px auto 0 auto; 
 
    text-align: center; 
 
    padding-left: 20px; 
 
    padding-right: 20px; 
 
    box-shadow: 7px 7px 5px #838485; 
 
} 
 

 
.product-card .card-bottom { 
 
    position: absolute; 
 
    bottom: 15px; 
 
    width:100%; 
 
    left:0; 
 
}
<div class="container"> 
 
       <div class="row"> 
 
        <div class="col-md-4"> 
 
         <div class="product-wrapper"> 
 
          <div class="product-card"> 
 
           <a href="lathes-single.html" class="product-img-wrapper"><img src="../assets/img/46-455.jpg" alt=""></a> 
 
           <h4> 46-460 12 1/2 in. Variable Speed MIDI-LATHE® </h4> 
 
           <p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.</p> 
 
           <div class="card-bottom"><a href="lathes-single.html" class="btn btn-lg btn-primary">View Product</a></div> 
 
          </div> 
 
         </div> 
 
        </div> 
 
       </div> 
 
</div>

+0

それはうまくいきました。それは私が幅:100%を除いて持っていた正確なコードでしたか?それはどのようにしてコンテナ内の中心の位置決めに影響しますか? –

+0

これは、コンテナをカードの全幅に収めるようにします。そして、コンテナの中心とカードの中心は、同じ幅であるため、内部のものはすべてコンテナの中心となります。受け入れられた答えとしてマークすることを忘れないでください! –

0

代わりに.btnでこれを使用しています。これはあなたのbtnを水平にします。 css3: translateX to center element horizontally

left: 50%; 
-webkit-transform: translateX(-50%); 
-moz-transform: translateX(-50%); 
transform: translateX(-50%); 
+1

私はむしろこの問題を解決するために別のハックを使用したいと思います。 CSSトランスフォーメーションは、位置付けの問題を解決する方法であってはなりません。結果を達成したとしても。あなたの入力をありがとう! –

+0

あなたはleft:50%とmargin-left:-100pxを使用することもできます。あなたの.btnを中心にしてください。 – Robert

関連する問題