私は次のHTMLを持っています:
<div class="top_buttons">
<div class="top_button">
<img src="img/image1.png">
</div>
<div class="top_button">
<a href="#">
<img src="img/image2.png">
</a>
</div>
<div class="top_button">
<a href="#">
<img src="img/image3.png">
</a>
</div>
</div>
そして、完全に機能する次のCSS:
.top_buttons{
width: 100%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
.top_button{
float: left;
width: 33.333%;/*Because I have 3 images with the same width, I want each to have 1/3 of the total width space available (mobile website)*/
}
問題は、内側の div (つまり、画像の親) にマージンやパディングを追加したいときに発生します。これらの div に境界線/パディング/マージンを追加すると、設定した上記の 33.333% は機能しなくなります。明らかに、各「top_button」div には画像だけでなく、div に追加された境界線/パディング/マージンも含まれるためです。
したがって、私の一時的な解決策は、その割合を 31% 程度に減らすことでした。ただし、携帯電話によっては、多かれ少なかれピクセルが画面の右側に残ります。パーセンテージの観点から、追加の境界線/パディング/マージンを使用して div の長さを推測しようとしているだけです。私が欲しいのは、ボーダー/パディング/マージンを内側の div に設定しても 33.333% を使用できるソリューションであり、ピクセルに完全な水平方向の配置を実現できます。
要するに、 divにもボーダー/パディング/マージンがあり、「top_button * s *」divの合計幅がわからないことを知って、「n」divを水平に配置するにはどうすればよいですか(表示の幅が異なるため)電話画面によって異なります)。