La conversion de la largeur de pourcentage de pixels
J'ai une table à l'intérieur d'un <div>
:
<div id="fixeddiv">
<table id="fixedtable">
<tr class="firstrow">
<td class="td11"></td>
<td class="td12"></td>
<td class="td13"></td>
</tr>
<tr class="secondrow">
<td class="td21" style="width:10%"></td>
<td class="td22" style="width:20%"></td>
<td class="td23" style="width:70%"></td>
</tr>
</table>
</div>
CSS:
#fixeddiv
{
overflow:auto;
margin:0px;
padding:0px;
position: relative;
text-align:left;
width: 48%;
}
#fixedtable
{
background-color: White;
border-spacing:0px;
cursor: pointer;
width: 100%;
height: 100%;
font-family: Calibri !important;
color: Black;
font-size: 14px;
}
.firstrow
{
position: absolute;
margin: 0px;
left: 0;
top: 0;
background: url(../Content/Images/header.jpg) repeat-x center top;
color: White;
font-weight: bold;
text-align: center;
}
#fixedtable tr td
{
padding: 5px !important;
border: 1px solid #FFFFFF;
text-align: center;
}
Je suis calcul de la largeur de td21
avec $('.td21').width()
et de l'affectation de la largeur de td11
comme $('td11').width($('.td21').width())
.
Le problème est que les largeurs d'application ne sont pas les mêmes, ils varient en fonction de 1px
et je ne pouvais pas trouver comment cette 1px
différence se produire. Le .td21
largeur est 1px
plus de .td11
.
Quelqu'un peut-il m'aider à trouver la solution?
est-il toujours plus sur 1 px? Pourquoi ne pas simplement de -1 à la valeur)
OriginalL'auteur Swetha Bindu | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Nikola K.
Essayez d'utiliser .outerWidth() au lieu de
.width()
OriginalL'auteur Chin
Ce qui se passe lorsque vous utilisez % + rembourrage. Pixel est de type int et donc, il sera arrondi.
Dans votre exemple: 10%, 20% et 70% de la largeur du conteneur et que vous devez ajouter le remplissage et la bordure.
Avec ce nombre de décimales, va se produire et que doivent être arrondis.
EXEMPLE:
Votre page est 900px largeur. Sans rembourrage, en marge ou à la frontière, vous aurez des largeurs de 630px (70%), 160px (20%), 90px (10%).
Mais lorsque vous ajoutez la frontière + padding les pourcentages doivent être calculés à partir de 900 (3 tds * 10px rembourrage (à gauche et à droite)) - (3 tds * 2px frontière(gauche et droite)) = 864px.
Avec 864px largeur, vous obtiendrez: 604,8 px (70%), 172,8 px (20%), 86,4 px (10%).
Et c'est là que la 1px différence se fait.
OriginalL'auteur WolvDev